@russ_lan_nop

Как отправлять сообщения в телеграмм канал с периодом?

@bot.message_handler(content_types=['photo','text','sticker'])
def send(message):
    bot.copy_message(chat_id=channel_1_id , from_chat_id=message.chat.id,message_id=message.id )
    time = datetime(datetime.now().year, datetime.now().month, datetime.now().day, datetime.now().hour, datetime.now().minute)
    
    if время сейчас + period[-1] наступило:
        bot.send_message(message.from_user.id, f'Время: {time.hour}:{time.minute}')
    else:
        pass

bot.polling()


period[-1] - это период с которым нужно отправлять посты в канал.
Пытался решить через
while True:
    time.sleep(1)
    if current_time == '19:40':#Выставляете ваше время
        print('pass')
        bot.send_message(message.chat.id, otv)


но тогда бот будет спать все время из-за вайла. Есть ли какое-то адекватное решение при котором бот не будет спать ? (cпать - не отвечать после начала поиска времени для поста )
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ответы на вопрос 2
@utsiye
Попробуйте запускать отдельный процесс, через threading.
Что-то по типу этого:
def send_message(chat_id,text,time_to_send):
    while True:
        if datetime.datetime.now()>=time_to_send:
            bot.send_message(chat_id,text)
            break
        else:
            time.sleep(5)
Ответ написан
Комментировать
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы