ネットサービスの開発に役立ちそうな話題を中心にお届けします。
F.Ko-Jiの「一秒後は未来」 > Greasemonkey > 「z」で本文を取得するGoogle Reader用Greasemonkeyスクリプト
2008年01月12日 18:00

「z」で本文を取得するGoogle Reader用Greasemonkeyスクリプト

スポンサード リンク

(追記 2008-01-13) バージョン0.3までは、SITE_INFOのurlとサイト or フィードのURLが一致する場合のみ動作するようにしていましたが、バージョン0.4から記事のURLと一致する場合も動作するようにしてみました。

自分で修正する場合は、

        if (source.match(reg)) {

とある行を、

        if (source.match(reg) || link.match(reg)) {

と書き換えてください。

----------------

フィードの登録数が増えてくると livedoor Reader では最新の情報を追いきれないと最近思うようになっていたので、Google Readerに乗り換えることにしました。

ということで、Google Reader用に例の本文取得のGreasemonkeyスクリプトを移植しました。

スクリプトはこちらからどうぞ。
» google reader full feed changer – Userscripts.org

今回は正規表現ではなく XPath で本文箇所を指定できるようにしました。これについては、AutoPagerizeのソースコードを参考にさせていただきました。

gキーにすでにショートカットが割り当てられているので、「z」キーを割り当てるようにしています。

Google Readerでは記事ひとつずつを開いて読む形式なので、フォーカスのあたっている記事についてのみ本文を取得します。なので、「j → z → j → z ・・・」といった感じで操作することになります。

また、Google Readerのインタフェースでは必ずしもフィード配信元サイトのURLを取得できるわけではないので、ブログのドメインとRSSフィードのドメインが異なる場合には、SITE_INFOに両方のドメインを書く必要があります。

以下がSITE_INFOの例です。

var SITE_INFO = [
    {
        url:    'http://(rssblog.ameba.jp|ameblo.jp)/',
        xpath:  '//div[@class="subContents"]'
    },
    {
        url:    'http://(www|rss).itmedia.co.jp',
        xpath:  '//div[@class="newart"]',
        conv:   true
    },
];

文字コードがUTF-8でないサイトの場合は、2個目のように「conv: true」というオプションをつけます。

相対パスの画像については表示されません。取得してきた本文にJavaScriptが混入していても阻止しません。ですので、悪意のないサイトの本文を取得するようにしてください。

スポンサード リンク

Subscribe with livedoor Reader Add to Google Subscribe with Fastladder My Yahoo!に追加 Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録


トラックバック

このエントリーのトラックバックURL:

この一覧は、次のエントリーを参照しています: 「z」で本文を取得するGoogle Reader用Greasemonkeyスクリプト:

» Googleリーダー内で、はてなブックマークのコメントを読むためのGreasemonkeyを書いてみた。 from ねねとまつの小部屋
livedoor readerでは、この手のgreasemonkeyは複数種類あるのですが、 (探した限りでは)Google Readerには、無いみたい... [詳しくはこちら]

コメント

大変便利に使わせていただいています。ありがとうございます。
ただ、導入直後、当方、GoogleReaderへの接続をhttpsで行っていたため、スクリプトが動きませんでした。

スクリプトのincludeがhttp://www.google.*/reader/*になっていますが、https://も含めたほうが良いかと思います。

自分で足せば済むことですが、念のためご報告を。

>> ねねとまつの小部屋さま
httpsがあるとは知りませんでした。
Userscripts.org のほうで、@include に https:// を追加しました。
ありがとうございます。

大変便利に使わせていただいております。
しかし、昨日(?)から機能しなくなってしまいました。
私だけの現象でしょうか?
Google Reader のほうで少々仕様改定があったのでそのせいかもしれません。

もしそうだとしたら修正していただけると大変助かります。
よろしくお願いいたします。

すみません、自分の家と会社で使わせてもらっていたんですが、昨日からなぜか動作しなくなりました。
もしかしてGoogleReaderが仕様変更でもしたのでしょうか?
alert挿入して確認してみたところzキーのイベントすらキャッチできていないみたいなのですが・・・
何か情報がありましたらお願いします。

>> みうさん、egaさん

ご報告ありがとうございました。
先ほど調べて修正完了しました。

http://blog.fkoji.com/2008/03080250.html

修正版の動作を確認しました。
素早い対応ありがとうございました。
これからも愛用させていただきます。

素早い対応ありがとうございます。
今後も愛用させていただきます。

大変便利です。ありがとうございます。
LDR Full Feedのように外部サイトからSITEINFOを取得する計画はありますか?
可能であれば対応いただけると幸いです。
http://wedata.net/databases/LDRFullFeed/items
http://constellation.jottit.com/siteinfo

>>tkさん
ありがとうございます。
私もそうしたいなぁと思いつつ、手をつけていない状態です。。

こんにちは。
欲しかった機能そのものなのでとても嬉しいです。

で、ちょっと気になったのを一つ。
はてなキーワードをRSS登録して読んでいるんですが、SITE_INFO に
{
url: 'http://d.hatena.ne.jp/keyworddiary',
xpath: '//div[@class="section"]',
charset: 'euc-jp'
}
を登録しても拾ってくれません。これは中身が無い場合はクラス属性が「entry-body entry-body-empty」となるからです。
そこで修正案を書いてみました。

#77行目
var body = getFirstElementByXPath('//div[@id="current-entry"]//div[@class="entry-body"]');
if(body == null) {
body = getFirstElementByXPath('//div[@id="current-entry"]//div[@class="entry-body entry-body-empty"]');
}

何かの機会があればご参考願います。

>> basyuraさん
修正案をバージョン0.60に反映いたしました。
今後ともよろしくお願いいたします!

便利ですね。ありがとうございます。

if (imgs.length) {

ここで、imgsがnullの場合例外出ますね。

if (imgs != null && imgs.length) {

これで回避しました。

function addTargetAttr(node, link) {
var anchors = getElementsByXPath('//a', node);
if (!anchors) {
return false;
}
for (var i = 0; i < anchors.length; i++) {
anchors[i].setAttribute('target', '_blank');

var href = anchors[i].getAttribute('href');
if(href)
anchors[i].setAttribute('href', toAbsolutePath(href, link));
}
return node;
}

あと、こんな感じで、hrefが相対パスな場合にいけるようにしてみました。

コメントを投稿

(承認されるまでコメントは表示されません。)

Greasemonkey / RSS

English version

前のエントリー: « 広告系ブロガー新年会ってのが開催されたらしい
次のエントリー: 渋谷ギャルが付き合いたい企業ランキングトップ10@ランク王国 »

タイトル:

URL:

リンク用HTMLタグ:

Agile Media Network

AMN Partner Blog

広告掲載について

東京ナイロンガールズ
持っているガジェット
powered by Gadget Party
ブログクラブ

最近のつぶやき
このブログの読者になる

F.Ko-Jiの「一秒後は未来」 - RSSフィード

クマでもわかるこのブログの便利な更新チェック方法

DailyFeed

あわせて読みたいブログパーツ

フィードメーター - F.Ko-Jiの「一秒後は未来」

メンバー by Friend Connect

月別アーカイブ


<< September 2010
SuMoTuWeThFrSa
 1234
567891011
12131415161718
19202122232425
2627282930 
人気エントリー
TopHatenar
携帯からのアクセスは
QRコード
http://mob.fkoji.com/