Как задать телеграм боту на питоне сообщение, которое он будет выдавать раз в неделю?

Решил сделать друзьям телеграм бота для квиза и хочу чтобы он по понедельникам сам выдавал напоминание типа: "Будем ли играть в квиз в пятницу?"

вот код:

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()

Только имейте ввиду, что список хранится в памяти, а значит при перезапуске бота список очистится. Чтоб список пережил перезапуск бота нужно хранить его в файле или БД.

→ Ссылка