@kayourockというアカウントを運営しているのですが、 ここ1年以上、ツイートの内容も更新できないし、自分の力で音楽をdigる時間も少なくなってきてしまいました。
歌謡曲のようなノスタルジックなメロディーのロック/ポップスを紹介。日本ならではの音楽を応援します。
歌謡ロックbotの特徴は以下の通りです。
・一定時間ごとに楽曲のYoutube動画とAmazon.jp(または公式サイト等)へのリンクをツイート。
・関連する最新情報をリツイートします。
・常時リクエストを受け付けています。
そこで、「歌謡ロック」他、アカウントに関係のある情報を検索して自動でリツイートする機能を付けてみました。
本当はPython3系を使いたかったのですが、今まで使って慣れているpython-twitterが3系に非対応のため、ひとまず2系で実装しました。 oauth tokenを別ファイル(secret.py)にしてimportする等、こちらの記事を参考にしています。 今考えるとjsonとかを読み込む形で書けば良かったですが。
# -*- coding: utf-8 -*- import time from datetime import datetime import twitter import secret api = twitter.Api( consumer_key = secret.twDict['consumer_key'], consumer_secret = secret.twDict['consumer_secret'], access_token_key = secret.twDict['access_token_key'], access_token_secret = secret.twDict['access_token_secret'] ) def get_search(term): return api.GetSearch(term=term, count=100, result_type='recent') def post_retweet(tweetid): try: api.PostRetweet(tweetid) except: print(u'既にリツイートされています') # って書いてるけど、相手にブロックされている場合もこちら def search_and_retweet(term, rm_nonurl=False): for t in get_search(term): nowtime = int(time.mktime(datetime.now().timetuple())) # ツイート内容及びscreen nameにbotが含まれる場合、除外する if u'bot' in t.text or u'bot' in t.user.screen_name: break # urlが含まれないツイートを排除する(引数で設定) if rm_nonurl is True and len(t.urls) == 0: break # 1時間以内のツイートをリツイートする if t.created_at_in_seconds in range(nowtime-60*60, nowtime): post_retweet(t.id) search_and_retweet(u'歌謡ロック') search_and_retweet(u'和ロック', True) search_and_retweet(u'歌謡メタル', True)