Opera Mobile用のフィルタ定義を自動生成しよう!

私の愛用スマフォau IS11T。発売は2011年の夏ですから、もうぼちぼち4年が経とうとしている機種


この間、一時root化して余計なアプリを停止したおかげで動きが軽くなり、快適~♪なわけですが、プロセッサパワーが非力であったり、搭載メモリ量が小さいという物理的なスペックは4年前のままなのです。

f:id:vfr750f2:20150403223445j:plain
・【使い回し写真】au IS11T

スマフォでは、もっぱらWebブラウズとメール、そしてテキストエディタで日記書き・・・・ぐらいしか使用していないのですが、Webブラウザで複雑なページを開くとさすがに重い!


同じことはPCにも言えるわけで、Windows 2000/IE時代はNorton AntiSpamで。Windows XP以降のFirefox時代では、アドオンAdBlock Plusを使用して、広告をブロック&余計なJavascriptをブロックすることで、快適度がアップするような対策をしていました。

https://…/2012/02/17/ デフォルトブラウザをfirefoxに乗り換えた後は

f:id:vfr750f2:20120224204736g:plain
・【使い回し画像】自分でフィルター定義を作り、自分自身で購読しています。

文法は、CSSセレクタを書くだけなので簡単。しかもFirefoxだと、調べたい要素で『右クリック-要素を調査』と操作すると、divブロックとかのクラス名とかid名が簡単に調べられるので、気になる広告はかたっぱしからブロックすることが可能です。


さてさて、この広告ブロック機能は、スマフォ上のブラウザ・Opera Mobileにも機能があるのですが、ちょっと文法が違うし、記述が面倒なのよね・・・・

  Forefox + AdBlock Plus Opera Mobile
記述する
ファイル
・全サイトで共通の1つのフィルタファイル ・ファイル名を列挙したoverride.iniファイル

・各サイト毎のCSSファイル
文法 ・サイト名#CSSセレクタ ・overrideファイルに、サイト毎のCSSファイル名の列挙

・CSS
調査方法 ・ブラウザで『要素の調査』機能を使用 ・なし

こうやって違いを比べると、一目瞭然

f:id:vfr750f2:20150425231024g:plain
・override.iniファイルの一部。Overrideセクションにサイトの一覧を作成し、各サイトのセクションで参照先ファイル名を定義
f:id:vfr750f2:20150425231025g:plain
・さらに、各サイト別になったファィルに、スタイルシートを記述して、広告等を消しこむ!

AdBlock Plusはそれなりにサクサクとフィルターファイルを記述できるのですが、スマフォ上だとただでさえファイルの編集が大変だというのに、さらに記述そのものが煩雑(泣)


せっかく手軽に広告ブロックが出来るのに、記述が面倒。結局スマフォをFTPサーバにして、PCから各種ファイルを編集するという、非常に面倒な感じ~(泣)
しかも、スマフォ上でWebブラウズ中に、広告がうざいサイトのURLを、その都度テキストエディタに貼り付けておき、後でPCでこのサイトを開いてブロックするセレクタを調べ、そしてファイルを作成してスマフォにアップロードするという、も~~~~非常~~~~に面倒!


便利さを手に入れるために、その何倍も苦労している感じ(笑)


ということで、自動的にAdblock Plusのフィルターファイルから、Opera Mobileのそれを生成するプログラムを作ることにしました。


単純にコンバートするのではなく、現行のOpera Mobile側でしか定義していない広告ブロックの内容を捨てるのは勿体無いので、その都度、現行のOpera Mobileの定義に、Adblock Plusの定義をマージするようにしよう。
すると、FF/Opera双方のフィルターファイルを読み込ませて、メモリ上でサイト別にブロックするCSSセレクタの一覧を構築してバッファリング。それらを一括でファイルに書き込む必要があるなぁ。


メモリ上で、マージとか、処理的には単純でもいろいろ面倒
そこで、フリーのライブラリ・SQLiteを使用してみました。普段、仕事でSQLを使用しているので、DB/SQLの知識は全く問題なしですし、Oracle Pro*Cとかも使用していて、C言語アプリからDBへのアクセスもお手の物

f:id:vfr750f2:20150425231023g:plain
・SQLiteを使用してみました。便利~

自分のやりたい一時的なバッファとして使用する役目には、オーバースペック過ぎるほどだし、簡単な使い勝手小さいフットプリント。これは便利だわ~
今後も愛用しよう、SQLite。


そんなこんなで、FF→Operaに、広告フィルターファイルを自動コンバート/マージする処理完成
PCでバシバシ広告をブロックしておけば、自動的にスマフォも同じルールで広告ブロックされる・・・・


素敵~♪