Python Bot Бот не отправляет сообщения по расписанию
Хочу сделать бота, который каждый день по 3 раза напоминает делать запись в дневнике.
Начал с простого: бот по команде "/start" должен отправлять приветственное сообщение и начинать отправлять напоминание клиентку каждую минуту. Приветственное сообщение бот отправляет нормально, в консоль напоминания тоже приходят нормально (каждую минуту), но бот напоминания не отправляет.
import telebot
import schedule
bot = telebot.TeleBot("***", parse_mode=None)
# Функция напоминания
def remind():
print("Пора сделать запись!")
@bot.message_handler(commands=['start']) # обработчик команд
def send_welcome(message):
bot.reply_to(message, "Привет! Я бот напоминалка.")
bot.reply_to(message, schedule.every(1).minutes.do(remind)) # вызов напоминания
while True:
schedule.run_pending() # цикл для повторения напоминания
bot.infinity_polling()
Мне кажется, что я могу использовать неправильный метод телегарама, потому что "reply_to" как будто бы должен отвечать на команду строго 1 раз. Возможно, мне следует сделать отдельную функцию, которая будет смотреть по базе данных, задал ли юзер расписание или нет, и если задал, то в нужное время отправлять ему напоминание. Если так, то как тогда заставить функцию саму отправлять сообщение, без команды? C помощью Webhook?
Ответы (1 шт):
from datetime import datetime
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)
def test_send_message():
text = 'CI Test Message'
tb = telebot.TeleBot(TOKEN)
ret_msg = tb.send_message(CHAT_ID, text)
assert ret_msg.message_id
Чтобы сравнить время, вы можете использовать:
if current_time=='17:30:00':
test_send_message()