What have you found for these years?

2009-06-15

手工到此

之前「0rz index」都是手工更新...
然後文章則手動備份到 phpbb.godfat.org
天啊,那真的是超累的。聽首歌好嗎? ...
現在講到天啊,忍不住後面都要接這句話 =_=b

anyway... 反正就是終於心血來潮決定,放棄備份過去。
因為 blogger 匯出和 feed 功能齊全,我剛剛才發現他的 feed,
是可以往前爬的... 甚至連單篇文章的 feed 都有。
這樣手工備份根本就是白痴... (我居然做了兩年多!)

所以手工備份不做了,索引的話,就做到這:
940. 06-14 bakuman (2)

接著我要用程式自動更新了。暫定工具:
ruby1.9
nokogiri
open-uri
抓 feed 和 index html 做比對,自動輸出 diff
接著我再貼到索引那頁就好了,認證什麼的當然不做。

這篇拿來測試用...

寫好的會放到 github 上,godfat.github.org 那個專案裡。


updated:
http://github.com/godfat/godfat.github.com/blob/master/0rz-index.rb

   1  
2 require 'nokogiri'
3 require 'open-uri'
4
5 # http://www.blogger.com/feeds/4013660499115623904/posts/default/8669382733745187064
6 index = Nokogiri::XML.parse(open('http://blogger.godfat.org/2007/03/index-by-date.html').read)
7 current = index.css('.post-body p')[0].children.find{ |n| n.to_s =~/^(\d+)\./ }
8 number, last = $1.to_i, current.next['href']
9
10 atom = Nokogiri::XML.parse(open('http://blogger.godfat.org/feeds/posts/default').read)
11 result = []
12 atom.css('entry').each{ |entry|
13 href = entry.css('link').find{ |link|
14 link['rel'] == 'alternate' &&
15 link['type'] == 'text/html'
16 }['href'].sub(%r{.*//[^/]*}, '')
17
18 break if href == last
19 result << [Time.parse(entry.css('published').inner_text).strftime('%m-%d') + ' ' +
20 entry.css('title').inner_text, href]
21 }
22
23 result.each.with_index{ |post, index|
24 puts "#{number + result.size - index}. <a href=\"#{post.last}\">#{post.first}</a>"
25 }

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0