湯婆婆の返信
先日こういった投稿をしました。この投稿にコメントすると自動で湯婆婆が返信をくれます。
200以上のコメントがきてありがたいです。
この投稿に「ここで働かせてください」とコメントするとあの人から返信がきます。たまに違う人も出てきます(試行中)
— ジブリまみれ (@ghiblimamire) March 20, 2023
仕組みは簡単でコメントをくれた人のユーザーネームから一文字抜き取って返信をしています。
画像は全てジブリ公式が提供してくれているものになります。
贅沢な名だね。今からお前の名前は"ま"だ。いいかい"ま"だよ。分かったら返事をするんだ"ま"! pic.twitter.com/sr9Rq3Eqmi
— ジブリまみれ (@ghiblimamire) 2023年3月20日
これだけだとおもしろくないので、1/20の確率で違う返信が来るようにしています。
ここへ来てははいけない!すぐ戻れ!私が時間を稼ぐ、川の向こうへ走れ! pic.twitter.com/jBldHUklDC
— ジブリまみれ (@ghiblimamire) 2023年3月20日
改善点
突貫工事で作ったのであまり細かいことは考えていません。
■そもそも名前が一文字の人は変わらない
■半角が入っている人はそれを取ってきてしまう
■みんな特殊な文字を使っている人が多い
■今のプログラムでは2分に一回しか返信できない
■同じ言葉で何回もコメントされるとTwitter側がスパムと認識して自動で削除してくる
■実はこの投稿じゃない場所にコメントしても「働」という文字が入っていると湯婆婆が返信してしまう笑
次は何しようかなぁ。
プログラム
参考と備忘録のために拙いコードを載せておきます。
import tweepy import random import pandas as pd CONSUMER_KEY = '自分の設定に書き換えてください' CONSUMER_SECRET = '自分の設定に書き換えてください' ACCESS_TOKEN = '自分の設定に書き換えてください' ACCESS_TOKEN_SECRET = '自分の設定に書き換えてください' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth)
ここまでの設定は検索すると出てくるのでそれを参考にしてください。
finish_list = pd.read_csv('自分の設定に書き換えてください',header=None, index_col=False, encoding='Shift-JIS').values.tolist() mentions=tweepy.Cursor(api.mentions_timeline).items(100) i = 0 for mention in mentions: i = random.randint(1,99) if i != 50: if "働" in mention.text or "はたらか" in mention.text: if mention.id in finish_list[0]: pass else: new_name = random.choice(mention.user.name) message_yubaba = "贅沢な名だね。今からお前の名前は\"" + new_name + "\"だ。いいかい\"" + new_name + "\"だよ。分かったら返事をするんだ\"" + new_name + "\"!" if len(message_yubaba) < 140: api.update_status_with_media(status='@' + str(mention.user.screen_name) + ' ' + str (message_yubaba), in_reply_to_status_id=mention.id, filename='chihiro016.jpg') finish_list[0].append(mention.id) pd.DataFrame(finish_list).to_csv('自分の設定に書き換えてください' ,header=False, index=False, encoding='Shift-JIS') elif i == 50: if "働" in mention.text or "はたらか" in mention.text: if mention.id in finish_list[0]: pass else: new_name = random.choice(mention.user.name) message_yubaba = 'ここへ来てははいけない!すぐ戻れ!私が時間を稼ぐ、川の向こうへ走れ!' if len(message_yubaba) < 140: api.update_status_with_media(status='@' + str(mention.user.screen_name) + ' ' + str (message_yubaba), in_reply_to_status_id=mention.id, filename='chihiro005.jpg') finish_list[0].append(mention.id) pd.DataFrame(finish_list).to_csv('自分の設定に書き換えてください' ,header=False, index=False, encoding='Shift-JIS')