取得したTweetsから必要なものを抽出するための仕組みとして、Tuitter_Filterがあります。
頻繁に使うようなものは、自分でカスタムフィルタを作ってしまうと便利です。
カスタムフィルタは、Tuitter_Filter_Interfaceを実装することで作成できます。
フィルタは、checkという1つのメソッドを実装するだけで作成可能です。
このメソッドにはTuitter_Tweetオブジェクトが渡されるので、抽出対象とするのであれば TRUE、そうでなければ FALSE を返すだけです。
例として、Tuitter_Filter_HashTagの実装を見てみます。
コンストラクタで複数のタグを受け取り、その時点で正規表現を作ってしまっています。
その後、checkメソッドで評価をして返すだけの仕組みであることが、わかると思います。
Tuitter::load('Filter/Interface.php');
class Tuitter_Filter_HashTag implements Tuitter_Filter_Interface { private $_exp;
public function __construct() { $tags = func_get_args(); if(!$tags) trigger_error('Missing arguments.'); $esc = array(); foreach($tags as $tag){ $esc[] = preg_quote($tag); } $this->_exp = '/#('.implode('|', $esc).')\W/i'; }
public function check(Tuitter_Tweet $tweet) { return (preg_match($this->_exp, $tweet->text.' ') ? true : false); } }