tweepyを常時稼働させるための外側。
ツイッターAPIを利用しようと思ったから、とりあえず外側だけ作ったぜ。
デフォルトの設定で毎時59分00秒に落ちる。以前while True
やったときにおもらしで困ったのでちゃんと落とす。
OSの設定で毎時0分0秒にキックする前提。
アクセスキーとかトークンとかの設定は他の方のを参考にしてください。
from datetime import datetime import time import tweepy ''' ツイッターAPIを利用しようと思ったから、とりあえず外側だけ作ったぜ。 デフォルトの設定で毎時59分00秒に落ちる。以前`while True`やったときにおもらしで困ったのでちゃんと落とす。 OSの設定で毎時0分0秒にキックする前提。 アクセスキーとかトークンとかの設定は他の方のを参考にしてください。 ''' # アクセスキーとトークン KEY = '*********************************' KEY_SECRET = '*************************************' TOKEN = '*******************************************' TOKEN_SECRET = '****************************************' # このapiにログインしたやつが入る api = None # 各行動回数の1時間あたりの限界値。余裕を殆ど見てないので凍結されたくないなら下げる。 # 以下のサイトを元に上限値を設定した。 # https://www.itmedia.co.jp/news/articles/1807/26/news079.html#:~:text=%E3%82%AD%E3%83%A3%E3%83%AA%E3%82%A2-,Twitter%E3%80%81API%E4%BD%BF%E7%94%A8%E6%9D%A1%E4%BB%B6%E3%82%92%E5%8E%B3%E6%A0%BC%E5%8C%96%20%E3%80%8C%E5%8E%B3%E3%81%97%E3%81%99%E3%81%8E%E3%82%8B%E3%80%8D,%E9%96%8B%E7%99%BA%E8%80%85%E3%81%8B%E3%82%89%E6%82%B2%E9%B3%B4%E3%82%82&text=%E7%B1%B3Twitter%E3%81%AF7%E6%9C%88,%E3%81%AA%E3%81%A9%E5%88%B6%E9%99%90%E3%81%8C%E5%8E%B3%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8B%E3%80%82 FAV_LIMIT = 41 # 0.666の余裕あり FLW_LIMIT = 41 # 0.666の余裕あり TWT_LIMIT = 100 # 余裕なし。ツイートとリツイートの合算。 MSG_LIMIT = 625 # 余裕なし。 # 回数の初期化 fav_count = 0 flw_count = 0 twt_count = 0 msg_count = 0 def favorite() -> None: '''この関数を編集してね。編集されていないと何もしないよ。''' return def follow() -> None: '''この関数を編集してね。編集されていないと何もしないよ。''' return def tweet() -> None: '''この関数を編集してね。編集されていないと何もしないよ。''' return def message() -> None: '''この関数を編集してね。編集されていないと何もしないよ。''' return def login() -> None: '''tweepyで使うapiを設定する。名前変えるときはグローバルの変数も変えてね。''' global api auth = tweepy.OAuthHandler(KEY, KEY_SECRET) auth.set_access_token(TOKEN, TOKEN_SECRET) api = tweepy.API(auth) def routine() -> None: '''限界値に達していなければfavorite, follow, tweet, messageを呼び出す。''' global fav_count, flw_count, twt_count, msg_count if fav_count < FAV_LIMIT: favorite() fav_count += 1 if flw_count < FLW_LIMIT: follow() flw_count += 1 if twt_count < TWT_LIMIT: tweet() twt_count += 1 if msg_count < MSG_LIMIT: message() msg_count += 1 return def is_endtime(min_limit=59, sec_limit=0) -> bool: nowtime = datetime.now() '''指定時間を過ぎたらTrueを返す。今回は59分00秒を過ぎた場合に落とすために利用。''' if nowtime.minute < min_limit: return False if nowtime.second < sec_limit: return False return True def test(): public_tweets = api.home_timeline() for tweet in public_tweets: print(tweet.text) print('TEST SUCCESSFUL!') if __name__ == "__main__": login() test() while True: # 59分00秒を過ぎていたら落とす if is_endtime(): exit() # メインの関数呼び出し。time.sleep(1)はご自由に。なくてもいいかも。 routine() time.sleep(1)