Как сделать что бы бот в тг раз в n секунд отправлял сообщение? Через TeleBot
Это нужно сделать типа бесконечный цикл и там написать time.sleep(n) и после этого код в цикле писать?
Типа вот код после 30 сек отправляет смс, но мне нужно что б он после одноразового ввода команды, он работал постоянно, а не заново вводить команду
@bot.message_handler(commands="st")
def st(message: types.Message):
while True:
time.sleep(30)
title = str(old_new())
if title == "new":
title = str(get_title())
price = str(get_price())
photo = get_img()
link = get_link()
caption = f"Назва: \n {title} \nЦіна: \n {price}\nПосилання: \n {link}"
bot.send_photo(message.chat.id, photo, caption)
else:
bot.send_message(message.chat.id, "old")
if __name__ == '__main__':
bot.polling(none_stop=True, interval=0)
Но мне нужно чтобы после ввода команды бот работал постоянно, типа что б уже не нужно было заново вводить команду.
Я думаю это нужно что-то в
if __name__ == '__main__':
bot.polling(none_stop=True, interval=0)
нужно сменить. Да?
Ответы (1 шт):
Автор решения: Pigeoncatcher
→ Ссылка
Вот в таком виде должен работать так, как и нужно. Попробуйте его, если не получится напишите что не так
@bot.message_handler(commands="st")
def st(message: types.Message):
while True:
title = str(old_new())
if title == "new":
title = str(get_title())
price = str(get_price())
photo = get_img()
link = get_link()
caption = f"Назва: \n {title} \nЦіна: \n {price}\nПосилання: \n {link}"
bot.send_photo(message.chat.id, photo, caption)
else:
bot.send_message(message.chat.id, "old")
time.sleep(30)
if __name__ == '__main__':
while True:
try:
bot.polling(none_stop=True)
except Exception as ex:
print(ex)