copyblog.pl

copyblog.pl 是一隻以 GPL 發佈 Perl script,透過 XML::Feed 將 RSS 或 Atom 將某個 blog 的東西擷取下來,再用 WWW::Mechanize 將內容發表到其他的 blog 上。

目前支援的 blog system 有:Blogger無名小站 Blog樂多 Blog

實際已經用在 http://gslin.org/ 送到 http://gslin.blogspot.com/http://www.wretch.cc/blog/darkkillerhttp://blog.roodo.com/gslinn/,每二十分鐘會跑一次這隻程式。

需要裝的 Perl modules 包括:

  • GDBM_File (通常是 compile Perl 的時候要把 GDBM 包進去),如果你不喜歡用 GDBM,可以換用 NDBM 或是其他 tie 有支援的 dbm。
  • WWW::Mechanize
  • XML::Feed

大致講一下內容:

feed 的部分是寫死的,我目前是用 http://gslin.org/wp-atom.php,理論上 XML::Feed 可以接受 RSS 三個版本 (0.91、1.0、2.0) 以及 Atom,不過我沒測過 RSS。

另外你要設定 $pw,記得先把 copyblog.pl 改成 700 再把密碼填進去。如果你不同的 blog 用不同的密碼,那麼乾脆直接寫在 post_blog_blah() 裡面好了…

用法的部分,直接執行不加參數會去 feed 上看看有沒有新的文章,有的話就 post 到其他 blog,通常就是放在 crontab 裡面跑。

參數的部分,-d 表示 debug,-v 表示要看一些 message (想要知道他有沒有在動之類的),-h 則是 show usage。

而 -a 表示 feed all (通常用在第一次要將最新的 n 篇貼上去),而 -i 表示只要 copy 某篇,後面接的參數是 Unique ID,在 WordPress Atom 用的是 URL (反正是 unique),其他家我就不知道了。-u 表示 update only,只更新 local db 紀錄,不會 copy 出去。

有任何問題,您可以寫信問我,或是在這幾個 blog 上留 comment 也可以,理論上這幾個系統都會 mail 給我。(至少 gslin.org 與 roodo 會)

程式寫的亂七八糟,請不要扁我 XD