Создаем Telegram бота
Отправка сообщений в произвольное время
Ваш телеграм бот может писать пользователю в произвольное время, если пользователь хоть раз с ним контактировал и вы запомнили id чата с ним.
В примере ниже после команды /spam
бот будет отправлять пользователю сообщение каждые несколько секунд. Для этого используется многопоточность - в одном потоке осуществляется обновление сообщений с сервера телеграма, а во втором - отправка сообщений всем пользователям каждые несколько секунд.
import telebot
import time
from threading import Thread
token = "ТОКЕН"
bot = telebot.TeleBot(token=token)
users = []
@bot.message_handler(commands=['start', 'help'])
def start(message):
user = message.chat.id
bot.send_message(user, "https://www.youtube.com/watch?v=rdg4lkgsQ04")
@bot.message_handler(commands=['spam'])
def add_user(message):
global user
user = message.chat.id
if user not in users:
users.append(user)
bot.send_message(user, "Берем сироп вишневый!")
@bot.message_handler(commands=['stop'])
def remove_user(message):
user = message.chat.id
users.remove(user)
bot.send_message(user, "Все, все.")
def spam():
global users
while True:
for user in users:
bot.send_message(user, "Затем сироп вишневый!")
time.sleep(2)
def polling():
bot.polling(none_stop=True)
polling_thread = Thread(target=polling)
spam_thread = Thread(target=spam)
polling_thread.start()
spam_thread.start()