Twitterbot qui retweete automatiquement les tweets liés au virus corona envoyés par les institutions publiques japonaises
https://twitter.com/CovidJaGovRT
Est-ce que je peux faire quelque chose par moi-même face à l'anxiété croissante au sujet du virus corona chaque jour? J'ai pensé. Par conséquent, j'ai récemment créé une application qui utilise l'API Twitter et je pense qu'elle peut être utilisée pour diffuser des informations correctes sur le virus corona. Cependant, comme je n'ai pas connaissance des virus, je ne peux pas juger de ce qui est une information correcte, encore moins diffuser et confondre des informations incorrectes, je veux donc l'éviter. Parmi eux, j'ai eu l'idée que je pourrais utiliser les informations sur le virus corona envoyées par les gouvernements locaux et les ministères qui sont des institutions publiques. Je veux que vous soyez précis et que vous en sachiez davantage sur les informations fournies par les personnes qui travaillent pour les résidents des institutions publiques. Dans cet esprit, j'ai créé un bot qui retweete des tweets sur les informations sur le virus corona des institutions publiques.
serverless.yml
service: gov-info-COVID-19
plugins:
- serverless-python-requirements
provider:
name: aws
runtime: python3.8
stage: prod
region: ap-northeast-1
custom:
defaultStage: prod
profiles:
prod: sls
otherfile:
environment:
prod: ${file(env.yml)}
functions:
RT_bot:
handler: handler.main
events:
- schedule: cron(*/20 * * * ? *)
environment:
CONSUMER_KEY: ${self:custom.otherfile.environment.${self:provider.stage}.CONSUMER_KEY}
CONSUMER_SECRET: ${self:custom.otherfile.environment.${self:provider.stage}.CONSUMER_SECRET}
ACCESS_TOKEN: ${self:custom.otherfile.environment.${self:provider.stage}.ACCESS_TOKEN}
ACCESS_TOKEN_SECRET: ${self:custom.otherfile.environment.${self:provider.stage}.ACCESS_TOKEN_SECRET}
handler.py
import configparser
import json
import os
import sys
import re
import logging
import traceback
sys.path.append(os.path.join(os.path.dirname(__file__), 'lib'))
from lib import tweepy
#Pour le développement local
OAUTH_INI = configparser.ConfigParser()
OAUTH_INI.read('oauth.ini', encoding='utf-8')
CONSUMER_KEY = os.environ['CONSUMER_KEY']
CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
ACCESS_TOKEN = os.environ['ACCESS_TOKEN']
ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET']
def main(event, context):
tweepy_api = tweepy_oath()
retweet(tweepy_api)
#authentification API Twitter
def tweepy_oath():
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
return tweepy.API(auth)
#Retweeter des tweets contenant le mot cible de votre chronologie
def retweet(tweepy_api):
exclude_exp_obj = re.compile(r'.*(couronne|COVID)(.|\s)*$')
for tweet in tweepy_api.home_timeline(count=200):
if exclude_exp_obj.match(tweet.text):
id = tweet.id
try:
tweepy_api.create_favorite(id)
tweepy_api.retweet(id)
#L'occurrence d'exception laisse uniquement le journal et n'arrête pas le traitement
except:
logging.error(traceback.format_exc())
pass
J'espère sincèrement que le virus corona s'installera et reviendra à la paix dès que possible.
Recommended Posts