Как создать Twitter-бота, который отвечает, как только другой человек пишет в Твиттере? - PullRequest
0 голосов
/ 14 июня 2019

Вчера я написал бота-твиттера с Python, который берет последний твит от Дональда Трампа, переводит его 45 раз в Google Translate и отправляет ему окончательный перевод на английском языке. Все работает, за исключением того факта, что мне теперь нужно добавить своего рода «слушатель» в начале кода, чтобы автоматически определять, когда он пишет в Твиттере, чтобы остальная часть кода могла творить свою магию. Я уже некоторое время просматриваю Интернет и не могу найти какой-либо обработчик событий, который позволял бы сценарию определять, когда он пишет в Твиттере. Вот почему я пришел к вам, ребята. Есть ли способ использовать Tweepy или другие библиотеки Python для активного обнаружения, когда кто-то пишет в Твиттере? Я включу свой код, чтобы вы, ребята, могли видеть, чего я хочу, именно тогда, когда он делает твит. Это аннотировано так, надеюсь, это не слишком сложно понять. Спасибо!


import tweepy
from googletrans import Translator

#Keys for accessing the Twitter API

consumer_key = 'PLACEHOLDER'
consumer_secret = 'PLACEHOLDER'
access_token = 'PLACEHOLDER'
access_token_secret = 'PLACEHOLDER'

#Setting up authentification

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

#Scrapes my timeline for DT's latest tweet. I want this to be done AUTOMATICALLY when he tweets.

tweet = api.user_timeline(screen_name = 'realDonaldTrump', count = 1, include_rts = False, tweet_mode = 'extended')

#Translates the text from the .json file that is pulle from the previous line using the Google translate library.

for status in tweet:
    translator = Translator()
    translation = translator.translate(translation.text, 'mn')
    translation = translator.translate(status._json["full_text"], 'ja')

#There are more translations in the actual code, but to reduce the length and complexity, I've taken those out. They don't matter to the specific question.   

#Include his handle in a message so that the tweet is tweeted back at him once the translation is complete.

message = ('@realDonaldTrump', translation.text)

#Tweets the message back at him under that specific tweet using it's ID.

send = api.update_status(message, status._json["id"])

Я просто хочу, чтобы код мог очищать мои временные рамки для одного из твитов DT в режиме реального времени. Спасибо!

...