[PYTHON] Erstellen Sie einen Bot, um Corona-Virus-Informationen zu retweeten

Ergebnisse

Twitterbot, der automatisch Tweets im Zusammenhang mit Koronaviren retweetet, die von japanischen öffentlichen Institutionen gesendet wurden

https://twitter.com/CovidJaGovRT

Hintergrund und Zweck

Kann ich mit wachsender Angst vor dem Corona-Virus jeden Tag etwas alleine tun? Ich dachte. Deshalb habe ich kürzlich eine App erstellt, die die Twitter-API verwendet, und ich denke, sie kann verwendet werden, um korrekte Informationen über Koronaviren zu verbreiten. Da ich jedoch keine Kenntnisse über Viren habe, kann ich nicht beurteilen, was die richtigen Informationen sind, geschweige denn die falschen Informationen verbreiten und verwirren. Deshalb möchte ich sie vermeiden. Unter anderem kam mir die Idee, die von lokalen Regierungen und Ministerien, die öffentliche Einrichtungen sind, gesendeten Informationen zum Koronavirus zu verwenden. Ich möchte, dass Sie genau sind und mehr über die Informationen erfahren, die von Personen bereitgestellt werden, die für Anwohner in öffentlichen Einrichtungen arbeiten. Vor diesem Hintergrund habe ich einen Bot erstellt, der Tweets über Coronavirus-Informationen von öffentlichen Institutionen retweetet.

Haupttechnologien verwendet

Überblick

Anwendbare Quelle

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

#Für die lokale Entwicklung
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)

#Twitter API-Authentifizierung
def tweepy_oath():
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
    return tweepy.API(auth)

#Retweet-Tweets mit dem Zielwort aus Ihrer Timeline
def retweet(tweepy_api):
    exclude_exp_obj = re.compile(r'.*(Corona|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)
            #Das Auftreten einer Ausnahme hinterlässt nur ein Protokoll und beendet die Verarbeitung nicht
            except:
                logging.error(traceback.format_exc())
                pass

abschließend

Ich hoffe aufrichtig, dass sich das Koronavirus so schnell wie möglich beruhigt und zum Frieden zurückkehrt.

Recommended Posts

Erstellen Sie einen Bot, um Corona-Virus-Informationen zu retweeten
Erstellen Sie einen Slack Bot
Schritte zum Erstellen eines Twitter-Bots mit Python
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Ich habe versucht, einen Bot für die Ankündigung eines Wiire-Ereignisses zu erstellen
Schritte zum Erstellen eines Django-Projekts
Wie man einen lockeren Bot macht
So erstellen Sie ein Conda-Paket
So erstellen Sie eine virtuelle Brücke
Wie erstelle ich eine Docker-Datei?
5 Möglichkeiten zum Erstellen eines Python-Chatbots
So erstellen Sie eine Konfigurationsdatei
Erstellen Sie mit Django einen LINE-Bot
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
So erstellen Sie einen Klon aus Github
So erstellen Sie einen Git-Klonordner
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Verschiedene Möglichkeiten, ein Wörterbuch zu erstellen (Erinnerungen)
So erstellen Sie ein Repository aus Medien
Skript zum Erstellen einer Mac-Wörterbuchdatei
Erstellen Sie einen Bot, der Twitter-Trends verstärkt
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Ich möchte einfach ein Rauschmodell erstellen
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
Erstellen Sie mit Minette für Python einen LINE BOT
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie einen Datensatz, indem Sie zufällig MNIST-Daten auswählen
So erstellen Sie eine JSON-Datei in Python
[Hinweis] Discord Bot ① Erstellen Sie eine Bot-Antwort auf einen bestimmten Inhalt
Wenn Sie Word Cloud erstellen möchten.
Erstellen Sie einen Sub-Sub-Befehl mit dem Klick --netsted-Sub-Sub-Befehl -
Versuchen Sie, einen neuen Befehl unter Linux zu erstellen
Ich möchte eine Art von Implementierung erstellen, die angeschlossen werden kann
[Hinweis] So erstellen Sie eine Ruby-Entwicklungsumgebung
So erstellen Sie ein 1-zeiliges Kivy-Eingabefeld
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
So erstellen Sie eine Rest-API in Django
[LINE WORKS-Version Trello Bot] So erstellen Sie einen privaten Gesprächsraum mit einem Gesprächsbot
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
[Hinweis] So erstellen Sie eine Mac-Entwicklungsumgebung
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Lesen Sie die Python-Markdown-Quelle: So erstellen Sie einen Parser
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen Sie eine Funktion zur Visualisierung / Auswertung des Clustering-Ergebnisses
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
Verschrotten Sie Ihren Qiita-Artikel, um eine Wortwolke zu erstellen
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
[Go] So erstellen Sie einen benutzerdefinierten Fehler für Sentry
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
So erstellen Sie ein lokales Repository für Linux
Ich möchte manuell eine Legende mit matplotlib erstellen