Day: April 18, 2016

便利にMac:Ghosteryが広告ブロック

あらま!

Appleの方針が変わったことを受けてのことか、いつの間にか、Ghosteryが広告ブロック機能を追加しましたね。最低限のレベルがGhosteryだけでOKになるのは、いいことです。

しかし、トラッキングは犯罪の一部を構成するという考えが定着するまでの間、一部の企業はネット上で得られる個人情報によって営利追求をし続けるのでしょうね。

Screenshot 2016-04-18 23.10.31

Swift:正規表現オブジェクトを生成

サンプルプログラムを参考にして以前作成したフィルタの一部を配列にして正規表現オブジェクトを生成してみました。

495フィルタのうち、21個エラーがありました。エラーを見つけることが目的ではなかったのですが、生成手順はこれでよさそうです。LT.filtersはフィルタが定義されているNSArrayです。

生成したものをどう使えばいいかは、次の課題。それによっては、regexfiletersにsaveする。

var wErrorCount:Int = 0
var regex: NSRegularExpression = NSRegularExpression()
let fileters:NSMutableArray = []
for inx in 0 ..< LT.filters.count {
  do {
    let pattern = LT.filters[inx]
    regex = try NSRegularExpression(pattern: pattern as! String, options:.CaseInsensitive)
 } catch let error as NSError {
    wErrorCount += 1
    print(inx, wErrorCount, error)
 }
    print(inx)
    fileters.addObject(LT.filters[inx])
 }
 print(“\(regex)”)

ここまでは、いい線行っているのですが、このあとが続きません。マッチングで滞っています。そのあとの置換は前に書いた通り、文字列での確認はできていますが、正規表現は未了です。

Swift:正規表現による置換?

コンテンツ・ブロックをするのに正規表現による置換が使えれば、きわめて簡単にコンテンツ・ブロックを実現できます。

まだ調査段階です。

Swift (2.1)で一通り正規表現を触ってみた – Qiita

Swift 文字列 – Qiita

URLを読み込んだ文字列データを検索して特定の文字列を変換し、URL表示を行うところまでは確認できました。このあと、正規表現の文字列を変換できるか試し、OKならフィルタを配列で登録して処理すれば、コンテンツブロックが実現できるはずです。