[PYTHON] Créer un bot pour retweeter les informations sur le virus corona

Livrables

Twitterbot qui retweete automatiquement les tweets liés au virus corona envoyés par les institutions publiques japonaises

https://twitter.com/CovidJaGovRT

Contexte et objectif

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.

Principales technologies utilisées

Aperçu

Source applicable

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

en conclusion

J'espère sincèrement que le virus corona s'installera et reviendra à la paix dès que possible.

Recommended Posts

Créer un bot pour retweeter les informations sur le virus corona
Créer un bot slack
Étapes pour créer un bot Twitter avec Python
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
J'ai essayé de créer un bot pour annoncer un événement Wiire
Étapes pour créer un projet Django
Comment créer un bot slack
Comment créer un package Conda
Comment créer un pont virtuel
Comment créer un Dockerfile (basique)
5 façons de créer un chatbot Python
Comment créer un fichier de configuration
Créer un bot LINE avec Django
J'ai essayé de créer un linebot (implémentation)
Comment créer un clone depuis Github
Comment créer un dossier git clone
J'ai essayé de créer un linebot (préparation)
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Différentes façons de créer un dictionnaire (mémoires)
Comment créer un référentiel à partir d'un média
Script pour créer un fichier de dictionnaire Mac
Créez un bot qui stimule les tendances Twitter
Créez un bot qui publie sur Slack le nombre de personnes positives pour le nouveau virus corona à Tokyo
[Python] Compréhension de liste Différentes façons de créer une liste
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Je souhaite créer facilement un modèle de bruit
Comment créer un objet fonction à partir d'une chaîne
Créer un LINE BOT avec Minette pour Python
Je veux créer une fenêtre avec Python
Créer un ensemble de données en échantillonnant au hasard les données MNIST
Comment créer un fichier JSON en Python
[Note] Discord Bot ① Créer une réponse de bot à un contenu spécifique
Si vous souhaitez créer Word Cloud.
Créez une sous-sous-commande à l'aide de la commande click --netsted sub-sub -
Essayez de créer une nouvelle commande sous Linux
Je souhaite créer un type d'implémentation pouvant être branché
[Note] Comment créer un environnement de développement Ruby
Comment créer une boîte de saisie Kivy 1 ligne
Procédure de création d'application multi-plateforme avec kivy
Comment créer une API Rest dans Django
[LINE WORKS version Trello Bot] Comment créer un salon de discussion privé comprenant un robot de discussion
Créez une commande pour obtenir le journal de travail
[Note] Comment créer un environnement de développement Mac
J'ai essayé de créer un cadre de données pandas en grattant les informations de rappel d'aliments avec Python
Lire la source Python-Markdown: Comment créer un analyseur
Créer un ensemble de données d'images à utiliser pour la formation
Créer un bot de collecte de données en Python à l'aide de Selenium
Créer une fonction pour visualiser / évaluer le résultat du clustering
Comment créer un sous-menu avec le plug-in [Blender]
Essayez de créer un Checkbutton dynamiquement avec Tkinter en Python
Racler votre article Qiita pour créer un nuage de mots
Créer un plugin pour exécuter Python Doctest sur Vim (2)
[Go] Comment créer une erreur personnalisée pour Sentry
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Comment créer un référentiel local pour le système d'exploitation Linux
Je souhaite créer manuellement une légende avec matplotlib