全裸botの修正作業

GAEでTwitterのbotを作る「BOTつくろう会」 #3 : ATNDに初参加。
最近めっきり全裸への情熱も冷めてきてしまっているので、この機会に少しでも改良できれば、と思い久々に全裸botのソースを見直してみた。

followの不具合

どうもここ数週間、followerに対しfriendsの数が追いついていなくて、おかしいと思っていたので原因を探る。
デバッグしながら動かしてみたところ、followのcreateをするときに403が返ってきてfollowが失敗することがあるようだ。JSONの中身は以下のようなもの。

{"request":"/friendships/create/*******.json","error":"Could not follow user: This account is currently suspended and is being investigated due to strange activity."}

これまでのソースでは「followerになっているけどfriendsになっていないidを1つだけ選択し、そのidに対しcreateを行う」という仕組みにしていた。
が、この403エラーが起こるとcreateが失敗し、同じ状態が残ってしまう。次のcron実行でも同じ動作をして失敗する、という繰り返しになってしまう。

…というのが原因ではないかと思ったので、create候補を1件だけでなく100件まで取得して毎回ランダムに選ぶように変更してみた。
follow返しが失敗し続ける可能性があるようなので修正 · sugyan/Zenra@0576dbf · GitHub
これでもう少し様子をみてみよう。

フィルタの修正

全裸botのzenrize処理では、上手く「全裸で」を挿入することができたものを投稿するようにするため、変更後のテキストに「全裸で」が含まれているかどうかを判定していた。
ただ、それだと最初から「全裸で××」と発言しているものを拾った場合に、何も挿入できていなくても上手く挿入できたと判断してそのまま投稿してしまう。
さすがにfollowerが増えてきて、素で「全裸で××」とpostするヒトもいるということがわかったので、最初から「全裸で」が含まれている発言はzenrize対象外とした。
既に「全裸で」が含まれている発言もzenrize対象外に · sugyan/Zenra@5f18ec2 · GitHub