2007年2月15日 星期四

堯@部落格: 自己動手做輪播-使用Yahoo!Pipes

堯@部落格: 自己動手做輪播-使用Yahoo!Pipes
我是在黑米上面看到Yahoo!推出pipes的服務。對熟悉unix的人來說,pipe是非常實用的作法,他可以用很快的方式組合出自己所需要的服務,就像是玩樂高積木一般的簡單。
Yahoo!推出這個服務真的是造福網民,讓網路內容有更高的整合性,更容易而清晰的整理出真正讀者想要的訊息。例如過去最常看到聯播機制,也可以用這種方式達成,真的是太棒了。
下面將直接動手製作聯播機制,可以讓自己親朋好友的部落格統統透過這個聯播,一次顯示出來,非常的方便。
第一步,先到pipes網頁,登入後,點選my pipes->Create New pipes。


第二步,當編輯畫面出來以後,可以從旁邊的物件裡面把模組拉出來,首先,我們先拉出source模組裡面的fetch。fetch這個source模組, 可以讓你從外部讀入RSS,而且按下+號,可以一直新增RSS Feeds。請在這裡把要加入聯播的RSS Link把他加進來。但這裡有一點要很小心的是,pipes本身並不會幫你把RSS或是ATOM統一,他只是提供一個聚合的工具,因此,我們必須先把大家 的RSS Feeds轉換成我們所需要的。因此,我使用feedsburner的工具,作法是到feedsburner把朋友的RSS產生進去,然後再到 Optimize選項裡面的Convert Format,把要聯播的RSS轉換程atom 1.0的選項。至於為甚麼要使用atom 1.0呢?因為目前pipes的排序物件sort對於日期的排序還有問題,他會使用字母的排序為優先,因此RSS 2.0或1.0的日期格式,會變成"Wed, 11,Feb,2007 .."這種格式,而按照日期排序下來就整個亂掉了。而atom1.0的日期格式2007-02-11的格式,則按照字元順序下來,剛好可以排出時間,所以 在Yahoo!pipes還沒更新之前,就只能使用atom1.0的格式囉。

第三步,在把所有的rss都抓進來以後,則要把聚合後的結果,輸出到排列工具Sort。sort可以在operator模組裡面找到。把他拉到編輯區裡 面,同時把fetch模組下面有個小圓點,把他link到sort上方。當連結產生以後,Sort的欄位則會改變,例如我們希望所有聯播文章近來以後,能 夠按照日期排序,因此我們在Sort by的地方選則updated,而在排序選descending降冪,這樣就會按照更新時間,越新的在越前面了。

第四步,當產生出來以後,我們就要考慮,因為所有的RSS都近來以後,會不會變得又臭又長,檔案變得很大,因此,再從operator裡面拉出 truncate模組出來,擷取我們需要的部份即可。按照上面的作法,把pipes繼續延伸出去。我在truncate裡面打入20,表示我只要輸出20 筆資料就可以了。這部份數字可以自己調整。 最後,就是將truncate的結果link到output裡面了。最後看一下整個結果,就可以存檔了。

存 檔以後,則可以到檢視最後的結果,並且看到subscribe裡面,可以訂閱這個新的RSS,甚至還有json的格式可以使用。然而我找了一下資料,發現 暫時並沒有提供json callback的功能,因此要作成cross-domain還有一些困難要克服。不過我想之後應該還是會有call-back功能,因此就耐心等待啦。

各位也可以用這些功能整合,製作出幾個好朋友的聯播功能唷。有興趣的人也可以直接看看我做出來的聯播內容

沒有留言: