@Brad_baf

Как зделать бота который надсылает одно и то же сообщение каждые 30 минут?

Как написать бота в тг, который будет каждые 30 минут отправлять сообщение, но чтобы можна было включить и выключить эту функцию. Помогите с основой кода пж, надо для спора с другом.
  • Вопрос задан
  • 284 просмотра
Решения вопроса 2
@pro100chel
Короче. Подскажу только алгоритм. С докой Tg сам разберешься, если тебе надо.
import threading
import time

def sender():
    global last_send
    while True:
        if not stop and (time.time() - last_send) > (30*60):
            ...
            last_send = time.time()
        time.sleep(1)

stop = False
last_send = 0
t = threading.Thread(target=sender)
t.start()

while True:
    inp = input()
    if inp == 'stop':
        stop = True
    elif inp == 'start':
        stop = False
Ответ написан
Andriy_Kosmenyuk
@Andriy_Kosmenyuk
Люблю программировать
Для отправки сообщение через каждых 30 минут используйте библиотеку schedule. Чтобы включать и выключать функцию сделайте переменную для функции, и в том случае если она ровна false - код просто не выполнять. Также этого можно добиться с помощью асинхронности. То есть сделать функцию которая вызывается асинхронно и меняет эту переменную, если это нужно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kicherov_maxim
Нужно скрипт отправки сообщений прописать в планировщике cron. Чтобы включать выключать нужно где то хранить состояние, например в базе данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы