TwitterクライアントをJanetterにした

TwitterクライアントはずっとTweenを使っていた。Tweenがオープンソースではなくなって、フォークしたOpenTweenが出てからはOpenTweenを。僕はタイムラインを基本的に全部読むので、未読のものから順に次々読めるクライアントがほしかった。たったそれだけの要件なのに、初めてクライアントをいろいろ試したときはTweenしかなかった。

最近、僕がフォローしている人にJanetterを使い始めた人が増えてきたので、僕も試してみたら、なんと僕がほしかったものそのものだった。Tweenになかった未読管理もある。Tweenは起動したときに前回どこまで読んだかわからないけど、Janetterなら前回の続きを読める。Tweenの一行に収まる範囲だけツイートを並べて、フォーカスしたツイートだけ全文を読むというスタイル(こんな感じ)を気に入っていたけど、慣れたら普通にツイートをずらずら並べるスタイルでもぜんぜん問題なかった。
日本語ハッシュタグを含むツイートを消す設定の移植が少し面倒だった。日本語ハッシュタグを含むツイートを僕は面白いとは思わなかったので、Tweenでは読まないタブに全部捨てていた。Janetterでは最初は読んでいたんだけど、やっぱり面白くないのでNGワードで消すことにした。

Tweenで使える正規表現.NET Frameworkのものなので、Unicode Character Propertyを使って、ひらがなかカタカナか漢字にマッチする式を書けた。Janetterの正規表現は基本的にはPCREだけど、Unicode Character Database抜きらしく、同じ式を持ってきてもマッチしなかった。しかたないので、ASCIIコード以外を含むハッシュタグにマッチするようにした。

[##][0-9A-Za-z_]*[^ -~ ]

NGワードに引っ掛かったツイートを見る方法がJanetterにはないので、Tweenでしばらく確認した限りでは、これでうまくいっているように見える。Tweenの場合にはURLに#が含まれているときに、APIのdisplay_urlの…と合わせて日本語ハッシュタグと誤認識する場合があるので、以下のようにしないといけない。Janetterは上のやつで平気。

[##][0-9A-Za-z_]*[^ -~ …]