Geza420
@Geza420

Как реализовать «таймер неактивности функции» после использования функции?

Бот где при нажатии на кнопку - публикуется сообщение на канал.

И так, мне надо чтоб публикацию можно было сделать не чаще чем раз в час. Если час с последней публикации не прошел- прислать сообщение о том, сколько именно осталось ждать.

Мне не нужен автопостинг, мне нужен лишь ручной постинг с таймером по интервалу между сообщениями.

Python | pyTelegramBotApi (telebot)
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Из вашего вопроса не ясно многопользовательский у вас планируется бот или однопользовательский. То есть будут ли одним инстансом бота пользоваться больше одного человека?
Также не понятно в случае нескольких пользователей, у каждого своё ограничение раз в час, или на всех одно сообщение в час.
В любом случае ваш бот должен хранить некоторую информацию - это называется хранить состояние.
Вам нужно звранить дату последнего сообщения для каждого пользователя или для всех, в зависимости от постановки задачи. В общем случае для этого лучше всего использовать какую-то БД вроде монги или sqlite. В случае SQLite ничего ставить не нужно, всё. что требуется, уже есть в комплекте с питоном.
Я бы рекомендовал сделать при запуске создать в ней, если еще не создана, таблицу с идентификатором пользователя и датой последнего сообщения. В последствии можно будет реализовать оба варианта функциональности.

В итоге дату последнего сообщения достаете из таблицы, прибавляете к ней час, если получилось более позднее время, чем текущее, значит постить нельзя. В случае поста просто обновляем время в БД.
Ответ написан
Ваш ответ на вопрос

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

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