@Jfr0s

Проблема с schedule, что делать?

У меня есть бот который отправляет некоторое сообшение каждые 5 секунд. Если зайти в раздел, ну запустить команду и включить напоминание, то оно будет работать. Потом если зайти и выключить то она выключиться. потом когда еще раз зайти и включить то уже нельзя выключить. Не выполняеться команда ни /start ни /remind. Помогите, возможно проблема в schedule.clear(), если это так то подскажите другой способ выключение напоминания.
Вот код:
import telebot
from telebot import types
import schedule
import time

bot = telebot.TeleBot('токен')


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
    but1 = types.KeyboardButton('/☁️remind☁️')
    markup.add(but1)
    n = f"<b>Привіт {message.from_user.first_name}!</b>\nВиберіть що вам потрібно:\n/☁️remind☁️ - нагадування."
    bot.send_message(message.chat.id, n, parse_mode='html',
                     reply_markup=markup)


@bot.message_handler(commands=['remind'])
def remind_start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
    but1 = types.KeyboardButton("Включити нагадування")
    but2 = types.KeyboardButton("Виключити нагадування")
    markup.add(but1, but2)
    r_mes = bot.send_message(
        message.chat.id, "Виберіть:", parse_mode='html', reply_markup=markup)
    bot.register_next_step_handler(r_mes, r_check_mes)


def r_check_mes(message):
    def job(message):
        bot.send_message(message.chat.id, "текст", parse_mode='html')
    x = message.text
    if x == 'Включити нагадування':
        bot.send_message(message.chat.id, "Нагадування включені")
        schedule.every(5).seconds.do(lambda: job(message))
        command = start(message)
        while True:
            schedule.run_pending()
            time.sleep(1)
    elif x == 'Виключити нагадування':
        schedule.clear()
        bot.send_message(
            message.chat.id, "Нагадування виключені", parse_mode='html')
        command = start(message)
    else:
        bot.send_message(message.chat.id, "❗️Щось пішло не так❗️",
                         parse_mode='html')
        command = start(message)


bot.polling(none_stop=True)
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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