Oct 20, 2006
livedoor Readerに何かくっつけるGreasemonkeyの書き方
何かくっつける系のGreasemonkeyが作りやすくなってます。エントリごとに表示
投稿日時が出てる箇所に追加されます。window.entry_widgets.add("name", generator , "description");generatorはfunction(feed,item){ ... }のように無名関数で記述できます。feedはフィードに関する情報、itemはその記事のリンクや記事本文が取れます。データ構造はまるごとPerlに書いてあります。
descriptionは省略可能ですが、将来的に何か気の利いたUIでも作ろうかと考えていたりするので入れておくと良いかも知れません。今のところtitle属性に使うようになってます。Greasemonkeyだと日本語が通らないのでエスケープする必要があります。
エントリにくっつけるサンプル
エントリごとにlivedoorクリップの件数表示http://la.ma.la/misc/userjs/ldr_with_livedoor_clip_count_images.user.js
エントリごとにはてなブックマークの件数表示
http://la.ma.la/misc/userjs/ldr_with_hatena_bookmark_count_images.user.js
元ネタ:http://d.hatena.ne.jp/tnx/20060716/1152998347
フィードごとに表示
新着数、購読者数の隣の部分に表示されます。window.channel_widgets.add("name", generator, "description");generatorはfunction(feed,items){ ... }のように無名関数で記述できます。feedはフィードに関する情報、itemsはitemの配列です。データ構造はまるごとPerlに書いてあります。
フィードにくっつけるサンプル
はてなブックマークの合計数のカウンタ表示をくっつけるやつhttp://la.ma.la/misc/userjs/ldr_with_hbcounter.user.js
元ネタ:http://yoshiori.org/blog/2006/10/ldrfeedgreasemonkey.php
feedburnerのやっているfeedflareみたいな感じで、いくつかサービス側でプリセットを持っておいて選べるようにしようかな、とか、まあそんなことを考えてます。
保証はしませんが、なるべく後方互換性を保つようにするつもりです。
変更点
それと、結構色々変えたので、いくつか動かなくなってると思います。フック関数は直接さわれないようになりました。こんな感じで書き換えるようにしてください。
after_init.add(function(){ ... })
↓
register_hook("after_init", function(){ ... })
PlaggerLDRで使う奴はここにおいてあります。
http://ma.la/tmp/hackldrapi.user.js
ご意見ご要望などあれば、IRCの#livedoor@freenodeとか常駐してるので、お気軽にどうぞ。あとJavaScriptプログラマーも募集しているのでお気軽にどうぞ。
----
追記:2006-10-20
widgetsの中でエラーが起きるとフィードが全部表示できなくなってしまうので例外処理を入れるようにしました。開発しやすくなったはず。
あと、デフォルトで付いてるやつも同じ仕組みを使って表示していて、外すこともできるようになってます。
entry_widgets.remove('created_on'); // 投稿日時を消す
Edit this entry...
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.