07/16(Sun), 2006 mozex+greasemonkeyでFirefoxから直接2chブラウザを起動する
mozex+greasemonkeyでfirefoxから直接2chブラウザを起動する
mozexとは、プロトコル・スキーマ*1ごとにアプリケーションを設定できるFirefoxの拡張機能です。telnetやsshだけではなく、FTPクライアントやダウンローダー、HTML内のTEXTAREA部分でエディタを指定できたりします。また独自のプロトコル・スキーマを設定することも出来ます。
今回はその機能を使って2chのスレッドあるいは板のURIから、2chブラウザを直接起動させたいと思います。
最初に断っておきますが、2chブラウザはJane Doe Styleを使います。Live2chでも何とかならないかと頑張りましたが、できませんでした。その顛末は後述します。ホットゾヌやかちゅ〜しゃなども、おそらく無理だと思います。
まず、mozexをインストールしてください。mozdev.org - mozex: developmentからインストールできます。インストールしたら、再起動して拡張機能の設定を開いてください。そして、Universalタブをクリックし、Comma separated list of protocol schemesに h2chb 、Command (with no arguments)にJaneDoeStyleの実行ファイルの絶対パスを入れてください。*2
これで、mozexの設定は終りです。次はgreasemonkeyスクリプトをインストールします。このスクリプトは、2chの板やスレッドのURIをhttp://...からh2chb://...に変えるものです。また、2chブラウザ起動のためのリンクも生成します。こちら(4718.user.js)からインストールしてください。
// ==UserScript==
// @name hop 2ch for Jane Style
// @namespace http://d.hatena.ne.jp/Koumei_S/
// @description helps to make link to Jane (Doe) Style[2ch browser] at firefox with mozex[firefox extension].
// @include *
// @exclude http://menu.2ch.net/bbsmenu.html
// @version 1.0
// ==/UserScript==
(function(){
if(location.host.match(/([^(info|irc|movie|shop|epg|find)]\.2ch\.net)|(\.bbspink\.com)|(machi\.to)$/)){
var linktojs = document.createElement("a");
var Strboardorthread;
linktojs.setAttribute('href',location.href);
linktojs.protocol='h2chb:';
if(is2chboard(location.pathname)){
Strboardorthread = '\u677f';//板
}
else{
Strboardorthread = '\u30b9\u30ec\u30c3\u30c9';//スレッド
}
linktojs.innerHTML='<span style="color:#000000;font-weight:bold;">\u3053\u306e' + Strboardorthread + '\u3092Jane Style\u3067\u8868\u793a\u3059\u308b</span><br>';
//この(スレッド|板)をJane Styleで表示する
document.body.insertBefore(linktojs,document.body.firstChild);
}
for(i=0;i<document.links.length;i++){
var link = document.links[i];
if(link.host.match(/([^(info|irc|movie|shop|epg|find)]\.2ch\.net)|(\.bbspink\.com)|(machi\.to)$/)){
link.protocol='h2chb:';
link.innerHTML = link.innerHTML.replace(/^http:/,"h2chb:");
}
}
})();
function is2chboard(Strpathname){
return Strpathname.match(/^\/.*\/$/);
}
これで使えるようになります。あとは2chを開けば、左上にリンクが現われるので、それをクリックするとJane Doe Styleが起動します。もしくは2chへのリンクを開いても同じです。スクリーンショットを採りましたので、是非ご覧下さい。
hop 2ch for Live2ch
出来なかったので、気づいたことをメモしておきます。
hop 2ch作成中に気づいたこと
これもメモしておきます。
linkobject.setAttribute('href','2chb://' + location.host + '/');
ならばlinkobjectのhrefパラメータには、2chb://that.2ch.net/が入りそうなものだが、実際はhttp://that.2ch.net/2chb://that.2ch.net/というパラメータが入る。なぜか強制的にhttpから始まるようになる。2chb://ではなく、アルファベッドで始めるならば特に問題はない。RFCに規定があるのか?それともMozilla独自にやっているのか?
- 本当は拡張機能を使わないでやるつもりだった。http://www.xdelta.net/blog/FreeBSD/2006/01/24/p131やMozilla Suite : Issues : Integration - MozillaZine Knowledge Baseを参照しながら、about:configからprefs.jsをいじってやるつもりだったがなぜかできない。network.protocol-handler.appは勿論のこと、network.protocol-handler.expose,network.protocol-handler.external等もtrueにしたのだが。



