Reminiscence

感情の残骸

Javatter Advent Calendar 2013/12/11

今回はTLから特定のワードを含むツイートを抽出して別のタブに表示するプラグインを作ったので解説します。

 

プラグインの作り方等細かい所は端折るので詳しくは3日の分とかを見てください。

 

まずはメインクラスのinit内で

ExtractTab tab = new ExtractTab(Main.getMainView(), JavatterPluginLoader.getTweetObjectBuilder());

this.addUserStreamTab("Extract", tab);

としてやることでタブを作成し本体に追加します。

次に

this.addUserStreamListener(new ExtractListener(this.getSaveData(), tab));

としてやることでツイートを受信できるようにします。

最後に

this.getSaveData().setDefaultValue("Query", "");

としてやることで設定を初期化します。

 

コンフィグ画面とタブはそれぞれおみくじプラグインと本体のTLタブからコピペして少しいじっただけなので省略します、設定は抽出したい単語を改行区切りで入力です。

 

ストリーム部分はこのようになっています。

public void onStatus(Status stat)
{
    for(String q : data.getString("Query").split("\n"))
    {
        if(!q.equals("") && stat.getText().contains(q))
        {
            tab.onStatus(stat);
            return;
        }
    }
}

 設定で登録した単語がツイートに含まれていたらタブにツイートを流しそうでなかったらそのまま終了するといった感じです。

!q.equals("")としているのは最後に改行をしていると""が全てのツイートにあてはまるので除外しています。

 

ソースを貼っておくので興味ある方は覗いてみてください。

https://www.dropbox.com/s/uxm63u95winzbev/ExtractPlugin.zip