@vakonyakhin19

Как сделать обратный таймер в телеграмм?

Всем привет. Есть 2 метода для обновления полученного сообщения и обратного отсчета:
def update_message(self, chat_id, message_id, new_message):
        self.logger.debug(f'Update message {message_id}: {new_message}')
        self.bot.edit_message_text(chat_id=chat_id, message_id=message_id, text=new_message)

    def create_timer(self, timeout_secs, callback, *args, **kwargs):
        if not callable(callback):
            raise TypeError('Ожидаем функцию на вход')
        if not timeout_secs:
            raise TypeError("Не могу запустить таймер на None секунд")
        if args:
            raise TypeError(f"create_timer() takes 2 positional arguments but {len(args) + 2} were given")

        def wrapper(context):
            callback(**kwargs)

        self.job_queue.run_once(wrapper, timeout_secs)

    def create_countdown(self, timeout_secs, callback, *args, **kwargs):
        if not callable(callback):
            raise TypeError('Ожидаем функцию на вход')
        if not timeout_secs:
            raise TypeError("Не могу запустить таймер на None секунд")
        if args:
            raise TypeError(f"create_countdown() takes 2 positional arguments but {len(args) + 2} were given")

        def wrapper(context):
            job = context.job
            job.context -= 1
            try:
                callback(job.context, **kwargs)
            except Exception as error:
                traceback.print_exception(type(error), error, error.__traceback__, file=sys.stderr, limit=-3)
                job.schedule_removal()
            if job.context <= 0:
                job.schedule_removal()

        first_callback = lambda context: callback(timeout_secs, **kwargs)
        self.job_queue.run_once(first_callback, 0)
        self.job_queue.run_repeating(wrapper, 1, context=timeout_secs)

Требуется первоначальное сообщение, заменить на таймер, при этом секунды таймера должны также обновляться.
Своих мозгов не хватило для решения задачи. НЕ могу понять как В обратном отсчете менять сообщение
  • Вопрос задан
  • 11734 просмотра
Пригласить эксперта
Ответы на вопрос 2
yupiter7575
@yupiter7575
Python программист
Заверните код в тег code.
НЕ могу понять как В обратном отсчете менять сообщение

Я не могу понять чего вы щас написали. Это можно сделать простым циклом while.
Ответ написан
Комментировать
shabelski89
@shabelski89
engineer
Вот тут отвечал, а примере прямой и обратный отсчёт
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы