LDRizeのミニバッファにreblogコマンドを追加するスクリプト LDRize_tumbler_dashboard_reblog.user.js

このページのスクリプトは最新のLDRizeでは動かなくなっているので LDRizeのminibuffer用reblogコマンド LDRize_tumblr_reblog.user.js 8.28版対応バージョン にあるものをご利用ください。

LDRizeというGreasemonkeyのスクリプトがあります。AutoPagerize – Userscripts.orgと同様にページごとにXPathでルールを記述することで任意のサイトを Livedoor Reader と同じようにjで次、pでピンをつけてoで全部開けるというUIを実現するものです。

自分は Livedoor Reader を使っていないので、ヘーくらいにしか思ってなかったんですが昨日試してみて感動。jkpoだいぶんいいかんじになってきたところですが、それ以前にいちいちみためがかっこよくて、さらにピンを立てたものに対して任意のコマンドを実行できるというところにまだ見ぬ何かが見えてくるはずだというわけで、試しにピンを立てたものをreblogする長い名前のGreasemonkeyスクリプトをつくりました。

つかいかた

まず下のスクリプトをインストールします。

LDRize_tumbler_dashboard_reblog.user.js

LDRizeよりも後に実行されるように設定してください。(後からインストールしたスクリプトが後に実行されるので、もうLDRizeが入っていればインストールするだけで、順番は気にしなくてokです)

そうするとダッシュボードのLDRizeのminibufferに tumblr_dashboard_reblogreblog というコマンドが追加されます。

まずページのロードが完了したら tumblr_dashboard_reblog を実行します。いまのLDRizeのsiteinfoではdashboardでピンを立てることができないので、そのsiteinfoを変更してピンを立てられるようにするために実行します。

あとはふつうにjで進めてreblogしたいとおもったものをpでピンを立てていきます。ふつうは右にピンを立てたページの名前が表示されていくのですがLDRizeの仕様上reblogのアイコンが並んでいきます。

最後にminibufferを開いてreblogコマンドを実行すると、実際にreblogが行われます。

tumblrにやさしく2秒おきにreblogするので時間がかかります。
Firebugが入っていればFirebugのコンソールにreblogが完了したときにURLが表示されます。

なのですが、なんかLDRizeが悪いのか自分のスクリプトが悪いのかfirefoxのXPath実装に問題があるのか、たくさんreblogしようとするとダッシュボードの一番上にあるものがピンを立てた個数分reblogされるという問題が出たりするのでおきをつけください。paragraphをコンテキストにしてlinkが評価されるはずなのがなぜかdocumentをコンテキストにして評価されてしまうのが原因なところまでわかりましたが、なぜそうなるときがあるのかはわかっていません。

でもLDRizeでなにができるか、ちょっと体験してみるにはよいと思います。

おわび

reblogする部分のコードはライセンスについて特に書かれていなかったけど、みんな ShareOnTumblr.js からreblogみたいなもんだろくらいでちぎって持ってきています。すいません。


About this entry