twicliにID/発言内容抽出タブを追加するプラグイン

あけましておめでとうございます。
というわけで正月プログラミング。


要望があったようなので、Twitterクライアントtwicli向けに、タイムライン(TL)からユーザIDや発言内容を元に発言を抽出するプラグインを書きました。→コード

動作イメージ:


使い方

0. (デフォルトでは不要) twicliの「+」タブのPreferences→Pluginsに「regexp.js」を追加。Saveをクリックすると保存したというダイアログが出るので、再読み込み。


1.「+」タブの「抽出条件」(Pickup Pattern)という欄に、検索条件を書く。

  • タブ名:ID検索パターン:発言内容検索パターン:TLから除外(0/1) というコロン区切りの書式で抽出条件を記述。各パターンは正規表現が使えます。
  • ID/発言内容のどちらかだけを使う場合は、使わない方は省略します。両方指定するとOR条件です AND指定になります。(1/21変更)
  • 1/22追加: 複数の検索条件は改行区切りで。同じ名前で複数指定すればOR指定(マッチしたものが全て一つのタブに入る)になります。
  • 1/22追加: 各パターンには、/で区切って否定条件を書くことができます。詳細は下記例を参考に。


2. Applyをクリックすると即座にタブに抽出条件が反映されます。("TLから除外"はリロード後に反映されます)


3. タブをクリックするとTLから指定条件の発言を抽出して表示します。


4. 指定条件にヒットする発言が流れてくると該当タブが赤くなります。タブをクリックすると戻ります。

指定の例

ID指定でbotを抽出する:*1

bot:bombtter|buzztter|chigatter|sudori|LinaCafe

追記:正規表現らしく以下でもわりと良いかも?

bot:tter$|sudori|LinaCafe


発言内容から挨拶を抽出:

hello::おはよう|おかえり|お帰り|おやすみ|お休み


アイコン/発言内容がうさみみな人を抽出(1/23変更):

「「:mickey24|syou6162
「「::「「

以下だとID/発言内容が両方一致したときだけ抽出されます。

「「:mickey24::「「


:区切りの4つ目"TL非表示"の指定を使うと、マッチしたものをTLタブでは非表示にすることができます。
詳しくは id:NeoCat:20090101:1230913660 を参照してください。


1/22追加:抽出した結果から除外する条件(否定条件)を、/区切りで指定できます。

neko::猫|ねこ|ネコ/ねこむ|ねこんだ

この例では、「ねこむ」という文字列は、「ねこ」という条件にマッチしますが、「ねこむ」という否定条件にもマッチするため、抽出されなくなります。


5/5追記:"via 〜"という条件をキーワードに指定することで、クライアント名にもヒットさせることができるようにしました。
例えばfoursquareからのtweetを拾い出すには

4sq::via foursquare
(TLに非表示にするには 4sq::via foursquare:1 )

のようにします。最後の :1 については次のエントリを参照して下さい。

※上記、長らく「from 〜」と誤記されていましたが、正しくは「via 〜」でした。


11/2/9追記: "{〜}"という条件をキーワードに指定すると、JSON表現に対して〜部分に指定したスクリプトを評価し、その結果がtrueなら抽出する、という機能を追加しました。スクリプトの評価時にはAPIで取得したJSON表現がthisとなります。
例えばお気に入り(fav)に入っているtweetを抽出するには

fav::{ return this.favorited }

などとします。いわゆるラムダ。*2 あ、間違ってthisの中身を書き換えると意味不明なことになると思うので気をつけて下さい。

*1:厳密には ^bombtter$|^buzztter$| ... 等とした方が誤抽出が減ります。

*2:こんなマニアックな機能誰が使うんだろう…