Попытка выяснить, как заставить моего бота в Твиттере твитить пользователей на основе запрошенных дат - PullRequest
0 голосов
/ 20 сентября 2019

Мне удалось заставить моего бота разобрать, что он упоминает правильный метод запроса даты.Например, если пользователь упоминает моего бота с «Напоминанием от 20.09.2009» или с любой другой случайной датой, он ответит датой успешной проверки.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я хочумой бот отвечает только на упоминание (я) в запрошенную дату .Например, если пользователь упоминает моего бота с помощью «Напоминание от 1.10.2009», я хочу, чтобы мой бот ответил «Дата теста успешна» 10 января 2019 года.

Если моя проблема необъяснил достаточно ясно, я могу углубиться.

Код, с которым я сейчас работаю, находится здесь:

> # Extended tweet mode is for showing longer tweets in mentions
    mentions = api.mentions_timeline(tweet_mode='extended')
    for tweets in reversed(mentions):
        date_search_match = re.compile(r"(?:reminder|Reminder)\s\d{2}/\d{2}/\d{4}")
        if date_search_match.search(tweets.full_text)
            api.update_status(f"@{tweets.user.screen_name} Date Test Successful")

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете сохранить даты в базе данных, а затем один раз в день запрашивать напоминания, используя пакет планирования Python, например, такой: github.com/dbader/schedule.

Например:

import schedule
import time

def job():
    print("I'm searching the DB for today's reminders...")
    <logic for querying the DB>
    print("and tweeting out the reminders...")
    <logic for tweeting the reminders with tweepy>

schedule.every().day.at("10:30").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Или вы можете запустить скрипт Python для задания cron.

...