Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2021 18:17:01

Anton_Kozlov
Зарегистрирован: 2021-04-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает register_next_step_handler в While true

Здравствуйте! Есть простой код для телеграм бота:

 def sendm(message):
    print('Так сработало')
while True:
    msg = bot.send_message(chat_id, 'Вы сегодня выпили?')
    bot.register_next_step_handler(msg, sendm)
    time.sleep(60)

По какой-то странной причине “bot.register_next_step_handler(msg, sendm)” не работает в цикле while true.
Если этот код вынести из While True, то “bot.register_next_step_handler(msg, sendm)” будет работать. И я не знаю в чем проблема. Уже пятый день не могу ее решить!

Офлайн

#2 Апрель 12, 2021 19:42:41

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1308
Репутация: +  112  -
Профиль   Отправить e-mail  

Не работает register_next_step_handler в While true

Anton_Kozlov
По какой-то странной причине “bot.register_next_step_handler(msg, sendm)” не работает в цикле while true.
полный код нужен
а так цикл должен быть в функции которая обрабатывает сообщения,через каждые 60 секунд будет спрашивать выпили ли вы,среагирует на ответ столько раз сколько задавался вопрос

Отредактировано xam1816 (Апрель 12, 2021 20:25:51)

Офлайн

#3 Апрель 13, 2021 11:54:19

Anton_Kozlov
Зарегистрирован: 2021-04-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает register_next_step_handler в While true

xam1816
Это и есть полный код!
Ну если хотите прям полный
 import telebot
import json
import time
from telebot import types
API_TOKEN = "token"
chat_id='89221080'
def sendm(message):
    print('Так сработало')
while True:
    msg = bot.send_message(chat_id, 'Вы сегодня выпили?')
    bot.register_next_step_handler(msg, sendm)
    time.sleep(60)
bot.polling()

Офлайн

#4 Апрель 13, 2021 15:24:07

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1308
Репутация: +  112  -
Профиль   Отправить e-mail  

Не работает register_next_step_handler в While true

Домой приду посмотрю,а так не пойму логики,вот отправил ты сообщение “вы сегодня выпили?”,в переменную msg сохранится ответное сообщение,но чтобы это сообщение принять нужен декоратор @message_handler с функцией которая принимает message.,если в переменной msg придет сообщение,сработает строчка которая запускает функцию sendm(msg),вчера твой цикл я запускал в декораторе и он работал

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version