Twitpress を twicco に力業で対応させてみる

2009年5月21日

Twitter の日本語版向けサービスとして立ち上がった、twicco は特定の話題を扱うコミュニティを作ることができるサービス。

さっそく私も興味があるところに登録してみました。

で、それに関連する話題をブログにポストしたときに、コミュニティ向けに reply してやれると便利じゃね? と短絡的に考えた結果、またしても Twitpress をちょっとだけカスタマイズしてみました。

具体的な動作は、指定したカテゴリに属するポストがされたとき、指定したコミュニティ宛に reply 用の文字列 @~ を付けてやるという単純なものです。

既存のソースに数行追加するだけの簡単なものなので、ご参考までに。

ソースコード

twitpress.php の関数、twitpress_publish を以下で置き換えます。

//Publishes a tweet given only the postID
function twitpress_publish( $postID ){	
	//get the post
	$post = get_post( $postID );
	
	//Now redundant check to make sure the post has been published

	if ( $post->post_status == "publish" ){
		//特定のカテゴリに属する投稿はtwicco宛に送る
		$twicco_name = array(
			//カテゴリーID と 対応するコミュニティを連想配列に格納する
			"1" => "@hoge", //カテゴリ ID が 1 のときは @hoge へreply
			"2" => "@fuga" //カテゴリ ID が 2 のときは @fuga へreply
			);
		//カテゴリIDを取得・属するカテゴリの数だけループする
		foreach (get_the_category() as $cat) {
			//該当するカテゴリ ID が存在した場合 $twicco に指定文字列(reply 先)を追加する
			$twicco = $twicco.$twicco_name[$cat->cat_ID]." ";
		}

		$message = twitpress_get_message( $postID );
		//送信メッセージに reply 先を追加する。
		$message = $twicco.$message;
		twitpress_postMessage( get_option( 'twitpress_uid' ), get_option( 'twitpress_password' ), $message );
	}
}

$twicco_name = array() 内に、直接カテゴリ ID とリプライ先の対応を書いてやるというなんとも力業ですが、使えればいいやという気持ちですね。

とりあえず、動くは動いてますが、カテゴリ ID の確認方法が、カテゴリ管理メニューで表示される、各カテゴリの編集用リンクを見るという、これまた力業なのですが、我慢我慢。