Задать вопрос

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

пишу телеграм бота на telebot для рп проекта.Можете помочь сделать команду /obtain,которая можно будет использовать пользователем раз в 4 часа для получения виртуальной валюты.Как сделать команду я знаю,а вот как сделать интервал я не знаю.Можете помочь пожалуйста
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
AlexNest
@AlexNest
Работаю с Python/Django
Хранить данные user_id (или иной идентификатор пользователя) и time в базе данных. При использовании - проверять, есть ли данные о пользователе и в зависимости от наличия/отсутствия и значения времени выполнять соответствующие действия.
Ответ написан
Комментировать
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
Как-то так это будет выглядеть (словарь можно заменить на БД):
from datetime import datetime, timedelta
...
user_cooldowns = {}
...
def obtain(...) -> None:
    user_id = # тут получаем id пользователя
    current_time = datetime.now()

    # Проверяем, есть ли у пользователя запись о последнем использовании команды
    if user_id in user_cooldowns:
        last_used_time = user_cooldowns[user_id]
        # Проверяем, прошло ли 4 часа с момента последнего использования
        if current_time - last_used_time < timedelta(hours=4):
            reply_text("Вы можете использовать эту команду только раз в 4 часа") # вместо reply_text используйте чего у вас там
            return

    # Обновляем время последнего использования команды
    user_cooldowns[user_id] = current_time

    # Тут чего-то делаем
    reply_text("Вы получили виртуальную валюту!")  # вместо reply_text используйте чего у вас там
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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