取得全文 Greasemonkey scripts

RSS 放全文還是摘要,討論一直沒有停過。我當然最鼓勵大家用全文,但無可奈何地仍然有得多地方仍然是用摘要的,例如香港雅虎新聞的 RSS。最近在研究 Gresemonkey,小試牛刀寫了個 script 來弄個在 Google Reader 內取得全文的 script。

你必需:

安裝

請到 Gresemonkey 取全文

用法

在 Google Reader 單篇全開的時候,如遇上網址是 Yahoo! News 或 MySinaBlog 的文章時,按 ‘g’ 會自動取得全文。

原理與修改

原理很簡單,按 ‘g’ 時會自動偵測網址是否被支援,如果是的話就會先用 greasemonkey 的內建 GM_xmlhttprequest 取得全文,再經 siteParser 取得主要內容,然後貼在 Google Reader 該 entry 內容上。

因為每個網頁結構都不一樣,所以沒有全面的方案,必需為個別網址「拆」內容出來。如果熟悉 Javascript,可以自行修改 Script 裏的 siteParser,預設的是:

JavaScript:
  1. var siteParser = {
  2.     “hk.rd.yahoo.com”: function(syhidden, text){
  3.         text = text.replace(“id=\”ynstory\”,“id=\”hk-rd-yahoo-com-ynstory\”); //just to prevent collision in id.
  4.         syhidden.innerHTML = text;
  5.         var story = document.getElementById(“hk-rd-yahoo-com-ynstory”);
  6.         stripTagsFromNode(story,[“table”,“script”]);
  7.         return story.innerHTML;
  8.     },
  9.     “mysinablog.com”: function(syhidden, text){
  10.         text = text.replace(“class=\”post_content\”,“class=\”post_content\” id=\”mysinablog-com-post-content\”); //add id for easy retrieval
  11.         syhidden.innerHTML = text;
  12.         var content = document.getElementById(“mysinablog-com-post-content”);
  13.         stripTagsFromNode(content,[“script”]);
  14.         return content.innerHTML;
  15.     }
  16.  };

  • Object key (如 ‘hk.rd.yahoo.com’) – 用以分辨網址,必需是 unique。
  • Ojbect: function(syhidden, text)
    • syhidden 是一隱藏的空白 div,用來方便「拆」內容
    • text 就是該 entry link 的全張網頁內容
    • return 將會代替該 entry 內容的 HTML
  • stripTagsFromNode 用來除去 node 內的 tags 的 Helper function

限制

如果該 RSS 用 feedburner 燒過的話,因為不能從網址辨認,所以也不會有取全文功能。

後記

此 scripts 的靈感源自於 Google Reader Quick Links 。歡迎大家試用和提供意見!

更新

  • 2007-05-30 加入了幾個自己常去的網站:blog.xuite.net, blog.yam.com, zonaeuropa.com, 小奧、hang、Mr6 的 feedburner…
  • 2007-06-01 加入 Y!blog HK 和 roodo
  • 2007-07-10 加入了案內人隨筆,他是全文的,但排版難看所以加了
  • 2007-07-11 加入了 Hompy, wretch.cc
  • 2007-10-28 將 scripts 移到 google code

“取得全文 Greasemonkey scripts” - 22 個回應

  1. gr fafa99 說:

    呢個正喎,可唔可以整個比bloglines用呢?因為我唔鍾意用google reader,佢太樣衰lu.

  2. gr 大雄 說:

    真係造福萬民! 請受小弟一拜! :)

  3. gr sidekick 說:

    更新了~
    我又一拜~~~ o

  4. gr 天佑 說:

    有新的版本太好了。

  5. gr 天佑 說:

    能否加入使用了 tag 的 WordPress.com blog 呢?

  6. gr 取全文 Greasemonkey Bloglines 版 - 網絡暴民 Jacky’s Blog 說:

    […] 的 RSS 圖片問題又引來一些聲音,因此我快速地將原本用在 Google Reader 的 取全文 Greasemonkey Scripts Port 了一個 Bloglines […]

  7. gr sidekick 說:

    失效了!
    在twitter 問過大家, 大雄跟cow 都說已用不到,
    特此通知. (我們都是用greader 的)
    :)

  8. gr Jacky 說:

    已修正,請到 http://rssget.googlecode.com/ 更新

  9. gr 小兔黑黑 說:

    可以在Firefox 3 Kick-off Party – Hong Kong介紹你的大作嗎?

  10. gr Jacky 說:

    這 script 太雞了,不宜介紹

  11. gr 小兔黑黑 說:

    我個extension夠雞la
    好多野要改我又冇時間( http://forum.moztw.org/viewtopic.php?t=14870&postdays=0&postorder=asc&start=15#115148 )
    阿Chris個GMap都會出呀!

    一齊黎la, 鼓勵本地創作la

  12. gr Jacky 說:

    點介紹?

  13. gr 小兔黑黑 說:

    建議:

    1. 介紹function(即打開Reader示範)
    2. 進入新profile install Greasemonkey + script

  14. gr Jacky 說:

    Any other details? Format? Duration? etc

  15. gr 小兔黑黑 說:

    只需簡介Greasemonkey和介紹功能,因為用家多。以Demo形式present即可。
    如果你用自己的電腦,要上網要給我MAC Addr,我要交給CityU的IT
    也可以錄起要上網的Demo以防萬一。
    時間不太趕,想present長一點也可 _

  16. gr 小兔黑黑 說:

    MAC Addr是wifi的
    你也可以用我的電腦,XP+Ubuntu dual boot

  17. gr Jacky 說:

    我想 present 短一點..

  18. gr 小兔黑黑 說:

    冇問題,大家都成日都Information overload,無謂拖長…
    我的Firefox已安裝了最新Angusdev版,good improvement呀 ^^

  19. gr Tino 說:

    你好,我發現使用這個script,會讓某些影像內容在google reader中消失,
    例如以下這篇文章:
    http://neue-angeleggroll.blogspot.com/2008/07/blog-post_27.html
    文章下方的影片即不會直接出現在google reader畫面中,需按 “Popout” 才能看。

  20. gr Jacky 說:

    @Tino 這個 script 不支持 blogspot 啊~ 是 google reader 自己會自動將影片變成 popup link

  21. gr wenjie 說:

    今天google reader 改版後又不能用了…

  22. gr Jacky 說:

    其實只是 icon 沒有了

    請更新到 1.8
    http://code.google.com/p/rssget/

回覆

*必需
*必需 (不會公開)