@thekiwi

Как соединить модуль time с модулем telebot?

Как сделать так чтобы бот работал только в прописанные часы, а в не прописанные отправлял сообщение сообщение о том, что бот сейчас не работает. Я понимаю, что надо задействовать модуль time, но как его соединить с telebot - я без понятия.
Заранее спасибо!
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Как вариант, написать кастомный фильтр

from datetime import datetime

works_from = datetime.strptime('00:00','%H:%M')
works_to = datetime.strptime('15:00','%H:%M')

class TimeBlock(telebot.custom_filters.SimpleCustomFilter):
    key='time_block'
    @staticmethod
    def check(message: telebot.types.Message):
        current_time = datetime.strptime(datetime.fromtimestamp(message.date).strftime('%H:%M'), '%H:%M')
        return current_time > works_from and current_time < works_to

@bot.message_handler(time_block=True, content_types=['text'])
def send_text(message):
    bot.send_message(message.chat.id, 'Hello, world!')

bot.add_custom_filter(TimeBlock())


Вроде как-то так. Преобразование времени не оч по-моему, но всё равно
Ответ написан
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Просто проверяйте текущее время.
Если в нужном промежутке - выполняйте нужный код
В противном случае - отправляйте сообщение.
Ответ написан
Ваш ответ на вопрос

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

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