Как сделать кд на использование команды бота тг на python?
Бот на Aiogram
Как реализовать задержку на использование команды в 1 час? У меня юзеры зарегистрированы в БД, работает через СУБД pgAdmin.
Если через бд делать, то как лучше? Либо может другими методами?
Сохраняешь в бд время когда вызвана команда. При следующем вызове проверяешь сколько времени прошло. Если меньше часа - пишешь чтобы попробовали позже. Если больше - пишешь нужный результат
Вот пример кода. только вам в переменной start нужно брать данные из БД, а в условии if нужно в эту самую БД записывать datetime.datetime.now() чтобы там была актуальная запись о времени вызова команды.
import datetime
import time # модуль только для sleep
start = datetime.datetime.now() # Тут нужно взять время из БД
time.sleep(5) # Ждем 5 секунд для примера
end = datetime.datetime.now() # берем текущее время для сравнения
delta = end - start # Вычисляем разницу между двумя датами
print(delta.seconds) # выводим сколько прошло в секундах
if delta.seconds > 1 * 60 * 60 or not start: # Если прошло секунд больше чем 3600 или нет записи в БД
pass # тут собственно ваша логика
Elvis, теперь проблема в том, что когда скрипт отработал, проверил время и сделал основную логику, он на следующий вызов команды продолжает работать, но уже несмотря на время, а просто в моем случае выдает бонус без кд на команду, при следующем вводе снова просто дает бонус без кд
после использование команды новое время записывается в БД, но все равно та же проблема
Ну тактооварищь и так вам помог, продолжайте его логику. Раз бот реагирует, значит необходимо сделать условие, что если в ожидании бонуса - не реагировать, если нет реагировать и т.п. опять же какой вопросы такой и ответ