LDRizeのminibufferにコマンド追加してみたこと雑感
LDRize(2007.8.24版)のミニバッファにreblogコマンドを追加するスクリプト LDRize_tumbler_dashboard_reblog.user.js を作ってみて感じたことをべつでこっちに書きます。
とりあえず、ほんとに誰も見ていないはてなダイアリーのメモ書き程度な自分の日記にコメントしていただいてありがとうございました。びっくりました。AutoPagerizeと組み合わせたときにちょっと不便だったところのパッチを書いてお送りしようと思ってるのですが、とりあえずミニバッファ用のコマンドを作ってみていくつか気がついたことを書いておきます。
ピンはパラグラフに対してつけたい
現状(8/24バージョン)ではピンはlinkに対してつけるようになっていて tumblr dashboard のようにlinkがsiteinfoに定義されていないときにはピンを立てること自体ができないですが、ミニバッファのコマンドでparagraphもうけとれるようになったし、なにかとlinkがなくてもピンを立てられる方がべんりな気がします。(といってもlinkが定義されていないのはほんのわずかしかないですね)
ただ、linkがないものにピンを立てられるようにすると右側のピンを立てたもの一覧に表示するものがなくなっちゃうので困りそうですが….
setSiteinfoはよくない
おなじく8/24バージョンの追加機能のsetSiteinfoですが、これはよくないと思います。
まず現状では使い勝手がよくなかったです。
tumblr dashboard ではlinkが定義されていないのでsetSiteinfoで定義してピンが立てられるようにしたのですがsetSiteinfoはcommandの中でしか呼び出せないのでsiteinfoを変更するためだけにミニバッファからコマンドを呼び出す必要があって不便でした。ミニバッファにコマンドを追加するスクリプトがロードされたときに書き換えられるようにwindow.LDRize.setSiteinfoで呼び出せると使いやすくなると思います。
ですがsetSiteinfoはXPathをスクリプト本体に書くことになる点で好ましくないと思っています。
siteinfoのよいところは、スクリプトのコードかせページのスクレイピングのためのXPathが分離されたところだと思っています。ページのスクレイピングルールがコードから分離されて誰でも変更できるようになったことで
- スクレイピングルールを他のスクリプトや異なる言語からでも利用できる
- ページのデザインが変わってルールが壊れても、誰かが直してくれれば他のひとは壊れたことにも気づかないで使い続けられる
- ページのデザインが変わるたびに新しいXPathを記述したスクリプトに入れ直す必要がない
という利点ができました。
setSiteinfoでコードの中にXPathを書いてしまうと、これらの利点が全部無くなってしまうのでsetSiteinfoでスクリプト固有のXPathを保持するよりも、それらもsiteinfoに混ぜてしまった方がよいと思います。siteinfoのサイズは大きくなりますが、あるスクリプトで使っているXPathを他のスクリプトでも参照したい、ということがあるでしょうし、それらがべつべつにメンテされるようになっちゃうのはもったいないと思います。
LDRizeでピンを立ててparagraphに対してコマンドを実行できるというのは、なんかFirefoxがOSでその上のシェルでコマンド実行しているみたいな感じがしました。この比喩で言ったらsiteinfoはディスクからビット列を読み出してきて、それを意味のあるかたちに組み立てるデバイスドライバみたいなものなのかなと思います。みんながそれぞればらばらにデバイスドライバを書くよりは、誰かが書いたのをみんなが使う方がハッピーだと思うのでsetSiteinfoではなくsiteinfoに項目を増やす方向で対応してほしいです。
そのほか細かいこと
siteinfoに項目を増やす、というのと同じはなしですが tumblr dashboard のようにlinkの中が画像だったりすることもあるのでURLを取り出すlinkと右側に表示するテキストをべつべつに記述できるようにしてもいいのではないでしょうか。デフォルトlinkのcontentTextで、ルールが記述されていればそれを使う、というような。
あとwindowのloadイベントではなく 実用 – ドキュメントのロード完了に合わせて関数を実行する に書かれているdocumentのDOMContentLoadedで実行されるほうが早く使えるようになるので便利だと思います。自分で書き換えてみたらちゃんと動かせなかったのでできるのかよくわかりませんけど….
感謝!
なんか文句ばかりになってしまいましたが、コマンドを好きに作って何でもできるというのは、ブラウザがOSに近くなったかんじでとても楽しいです。しかもそんなエッジなものにぴかぴかのみためがついていてほんとに感動しました。LDRize上でもっといろんなことができるようになるように、さらに自分もなにかつくっていこうとおもいます。

No comments
Jump to comment form | comments rss [?] | trackback uri [?]