湯婆婆の返信

湯婆婆の返信


先日こういった投稿をしました。この投稿にコメントすると自動で湯婆婆が返信をくれます。
200以上のコメントがきてありがたいです。


仕組みは簡単でコメントをくれた人のユーザーネームから一文字抜き取って返信をしています。
画像は全てジブリ公式が提供してくれているものになります。

これだけだとおもしろくないので、1/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')          
タイトルとURLをコピーしました