ThunderbirdにRSSフィード確認間隔切り替えボタンを設置
ThunderbirdをRSSリーダーとして利用しているのだが、新着記事の確認間隔を8分にしていると、未読の記事を読み終わる前に新着記事の取得が始まって、その間はThunderbirdが重くなるので待つしかないことが多かった。未読記事が多い状態では新着記事の確認間隔を一時的に60分くらいにしておけば、未読記事を読む作業が中断されにくい。オプションウィンドウを開いて設定を変えれば良いのだが、ちょっと面倒なので切り替えボタンが欲しくなり、設置した。
【ThunderbirdにJavaScriptの切り替えボタンを設置】と同様に、Thunderbirdのアドオン【Custom Buttons】を使うことで、新着記事の確認間隔を8分と60分に切り替えることができるようになった。
そのコードは【ThunderbirdにJavaScriptの切り替えボタンを設置】のコードを少し変更しただけである。
まず、文字列、整数値、真偽値の取得と設定はそれぞれ、getCharPref()とsetCharPref()、getIntPref()とsetIntPref()、getBoolPref()とsetBoolPref()を使うらしく、Thunderbirdの新着確認のPrefはmail.server.server#.check_timeで整数値だから、getIntPref()とsetIntPref()を使うらしい。JavaScriptの切り替えではgetBoolPref()とsetBoolPref()だった。そのことを知らずに、getBoolPref()とsetBoolPref()のままで修正しようとして失敗が続いた。他の変更はJavaScriptを使い慣れている人ならば当たり前のようなことばかり。私はネットで調べないと分からなかったが…。
さて、まずは、Codeの部分。
switch(this.PS.getIntPref(this.pref)){
case 8: this.PS.setIntPref(this.pref,60);break;
case 60: this.PS.setIntPref(this.pref,8);break;
}
Initialization codeの部分は次の通り。
this.pref='mail.server.server#.check_time';
this.setState=function(){
var state=this.PS.getIntPref(this.pref);
if (state==8){
this.checked=false;
}else{
this.checked=true;
}
}
this.PS=
Components.classes['@mozilla.org/preferences-service;1']
.getService(Components.interfaces.nsIPrefBranch);
this.ob={};
this.ob.observe=this.setState.bind(this);
this.PS.addObserver(this.pref,this.ob,false);
this.setState();
mail.server.server#.check_time の部分は私は mail.server.server3.check_time だった。オプションの設定エディタで確認できる。
これで新着記事の確認間隔を「8分/60分」に切り替えることができるようになった。
この設定変更が有効になるのは、次の新着記事確認が終了した後のようなので、一度は我慢するしかない。
気になるのは、【ThunderbirdにJavaScriptの切り替えボタンを設置】のボタンと一緒に設置してあって、起動時にInitialization codeを読み込むのだろうが、上記のコードで問題が起こらないかということ。今の所は問題が生じてないようだが…。また、ボタンの設置でThunderbirdが重くならないかということ。重くなるようなら改善する必要があるのだが、極端に重くなっている印象が無いので、しばらくはこのまま利用しようと思う。
コメント 0