Minibuffer + LDRize + ReblogCommand Greasemonkey対応版の作り方
Greasemonkeyにパッチを当てなくても動かす方法はあるのに、なんで誰もコレを言わないのか不思議なんだ。
たしか自分は言ったはず....と思って検索したが日記には見つからず....
はい、GreasemonkeyやScriptishでの問題は、それぞれのスクリプトが独自のコンテキストで動くためオブジェクトが共有されないことだった。そのためwindow.Minibuffer
を参照できない事象が発生していたわけだ。
だったら、同一コンテキストで動くように、concatnatenateしちゃえば良いじゃない
wget http://userscripts.org/scripts/source/11759.user.js -O minibufer.user.js wget http://userscripts.org/scripts/source/11562.user.js -O ldrize.user.js wget http://coderepos.org/share/export/39098/lang/javascript/userscripts/reblogcommand.user.js # reblogcommandにはexcludeがあったので、そのURLを排除するコードを仕込む sed 's/^(function().*$/&\nif(window.location.href.indexOf("http:\/\/www.tumblr.com\/share")===0) return;/' reblogcommand.user.js cat {minibuffer,ldrize,reblogcommand}.user.js > mini_ldrize_reblog.user.js # 最後にE4Xのパッチ当て sed -i 's/<><!\[CDATA\[/""+&/' mini_ldrize_reblog.user.js
これじゃダメ? そうですか...。
まあ僕は使ってないので、じゃじゃ馬のようにしゃしゃり出てるだけですから良いのだけど、個人的には
フォークしたくてもできない現状があるのかもね。
余談
ではGreasemonkeyにパッチを当てる方法を書いたが、これは他のUserScriptでもそういう場面があるかもしれず、汎用性を目指した結果だった。Minibuffer関連に絞るなら、ファイルを連結するだけでOKなのである。まあReblogCommandみたく特定のページでは実行しないみたいのがあると多少の考慮事項が発生するけどね :p