Как сделать, что бы определенную функцию можно было ввести раз в определенное время?

Здравствуйте, я начинающий программист, я пишу своего бота в ВК (vk_api) на Python3
Я бы хотел задать вопрос.
Я хочу добавить команду "Бонус", но мне надо, что бы пользователи могли ввести эту команду раз в 24 часа, как это сделать?..
Я использовал модуь time, и функцию time.sleep() в модуле, но как вы понимаете, это останавливает всю программу, возможно ли сделать, что бы пользователь мог ввести команду раз в определенное время (к примеру 24 часа)?
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 2
@yamudaqq
Переводи время последнего получения бонуса в unixtime, записывай это значение для каждого юзера в базу данных, и при последующем сообщении "Бонус" пусть программа получает настоящее значение времени и так же переводит в unixtime. Дальше
if (unixtime_currently - unixtime_old) >  86400:
  givebonus()
else:
  sendmessage('Для получения бонуса нужно подождать ещё'+need_time) # и здесь отправить время, которое нужно подождать для получения бонуса. узнать его можно так же через разницу во времени и потом делением на 60 итд.
Ответ написан
HemulGM
@HemulGM
Delphi Developer, сис. админ
У каждого пользователя должна быть своя переменная "дата последнего получения бонуса".
Желательно хранить в бд, но можно и в озу, но дата сбросится после перезапуска и в целом будет нагружать озу.

При запуске ставим нейтральную дату. При вызове команды проверяем дату, если дата + 24 часа больше текущей, то можно выполнить команду, если меньше - нет. Всё просто.
Ответ написан
Ваш ответ на вопрос

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

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