Как задать телеграм боту на питоне сообщение, которое он будет выдавать раз в неделю?
Решил сделать друзьям телеграм бота для квиза и хочу чтобы он по понедельникам сам выдавал напоминание типа: "Будем ли играть в квиз в пятницу?"
вот код:
import telebot
from telebot import types
from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()
bot = telebot.TeleBot('...')
def prompt():
print("Executing Task...")
sched.add_job(prompt, 'interval', seconds=10)
# Starts the Scheduled jobs
sched.start()
при таком коде он выдает команду в компилятор, а как сделать чтобы он выдавал ее в нужный мне чат тг и не нарушал остальные функции?
Ответы (1 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
Храните список адресатов, кому нужно рассылать вопрос. Добавляйте идентификатор чата в список, когда новый человек присоединяется к боту:
bot = telebot.TeleBot(...)
list_of_chats = []
@bot.message_handler(commands=['start'])
def send_welcome(message):
list_of_chats.append(message.chat.id)
bot.send_message(message.chat.id, 'Вы подписаны')
def prompt():
for chat_id in list_of_chats:
bot.send_message(chat_id, "Будем ли играть в квиз в пятницу?")
sched.start()
bot.infinity_polling()
Только имейте ввиду, что список хранится в памяти, а значит при перезапуске бота список очистится. Чтоб список пережил перезапуск бота нужно хранить его в файле или БД.