Я создал бота в Твиттере, который каждый раз, когда Lil Uzi Vert или Playboi Carti пишут в Твиттере, должен публиковать их в своем субреддите. Проблема, которую я имею, состоит в том, что это продолжает спамить последний твит Лил Узи Верт на обоих subreddits. И из-за этого меня также забанили.
Если я попытаюсь подписаться только на свою учетную запись в твиттере, это работает.
Обнаружил проблему: всякий раз, когда кто-то любит или ретвитит свой твит, он будет считаться другим новый статус и, следовательно, опубликовать его на Reddit. (Неважно, какой это пост, может быть даже старше). Как я могу заставить это работать, только когда один из них пишет в Твиттере или отвечает?
import praw
import tweepy
def submit(status):
r = praw.Reddit(
client_id="",
client_secret="",
username="",
password="",
user_agent=""
)
subreddit = r.subreddit('playboicarti')
subreddit.submit("new tweet", status)
subreddit = r.subreddit('liluzivert')
subreddit.submit("new tweet", status)
# Twitter part
class MyStreamListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
def on_status(self, status):
status = f"https://twitter.com/user/status/{status.id}\nHe said: {status.text}"
submit(status)
def on_error(self, status):
print("Error detected" + str(status))
def twitter():
# Authenticate to Twitter
auth = tweepy.OAuthHandler("", "")
auth.set_access_token("",
"")
# Create API object
api = tweepy.API(auth, wait_on_rate_limit=True,
wait_on_rate_limit_notify=True)
tweets_listener = MyStreamListener(api)
stream = tweepy.Stream(api.auth, tweets_listener)
stream.filter(follow=["101263750", "1599608046"])
if __name__ == "__main__":
twitter()