家賃二万円のブログ

プログラミングできる彼女募集してます。

tweepy使って感情別にアイコンを自動変更するプログラムを作った

中身はシンプル

import tweepy

consumer_key    = ""
consumer_secret = ""
access_key      = ""
access_secret   = ""

auth = tweepy.OAuthHandler(Consumer_key, Consumer_secret)
auth.set_access_token(Access_token, Access_secret)

api = tweepy.API(auth)

print('ok')
id = "あなたのID"

tweet = api.user_timeline(id, count=1)#最新1件のツイートの情報全てを取得

for i in tweet:#中を1つ1つ解析
    #print(i.text)
    tweetText = i.text#text(文章)だけをとって、代入

print(tweetText)

import re
patternHappy = re.findall("ありがとう|嬉しい|最高|好き|笑",tweetText)
patternSad = re.findall("辛い|つらい|悲しい|泣|疲れ", tweetText)
patternAngry = re.findall("クソ|最悪|死ね|ゴミ", tweetText)

#マッチした配列の数をカウントする
print(patternAngry)
print(len(patternAngry))

lenHap = len(patternHappy)
lenSad = len(patternSad)
lenAng = len(patternAngry)

if lenHap > lenSad and lenHap > lenAng:
    #笑顔に
    api.update_profile_image("happy.png")
    print("I changed Happy")
if lenSad > lenHap and lenSad > lenAng:
    #悲しく
    api.update_profile_image("sad.png")
    print("I changed Sad")
if lenAng > lenHap and lenAng > lenSad:
    #怒る
    api.update_profile_image("ang.png")
    print("I changed Angry")


#api.update_status(status="ここにツイート文")

簡単に解説
API登録して、キーとかをゲットして書き込んで
最新のツイートを取ってきて、感情を分類する
一番近い感情のアイコンに変更する
もしかしたら、デフォ(無表情)のアイコンを用意するのもよかったかもしれない。
アイコンを変えるときにちょっとだけ躓いたのでググった。

Twitterアイコンをリプライ画像に変更するPythonスクリプト - kivantium活動日記
Twitterアイコンをリプライ画像に変更する(Tweepy) | こんにゃくの日記
twitterのアイコンをリプライで変更→Herokuにデプロイ - かなで技術日誌
こいつら天才なので俺には分からねえ、クラスとか、分からねえ
俺は公式ドキュメントに頼った。公式ドキュメントが読みやすくて助かった。
API Reference — tweepy 3.5.0 documentation

これ一文でアイコンが変更されるっていい時代になったもんだ
にしても
API.update_profile_image(filename)とか
API.update_profile([name][, url][, location][, description])とか
初見よくわかんなかった。上のやつはちゃんと("")ってダブルクォーテーション書いて、ローカルパス、下のやつはあの順番通りにやればいいよって感じなのねなるほどね。 あとはこれをリアルタイムで動かせたら一番いいなぁ、ストリーミングAPIは廃止されたらしいけど。擬似的に動かせたらいいな
ちなみに自然言語処理の感情分析はまだまだ未完成らしい。さすがにそれを作れるほど天才じゃないし、下手すりゃ感情分析APIの使い方もわからん。悲しい。

3/7追記
cron tabでええやん、どうせ動かすのってPCつけてる時だけやし