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

Как сделать таймер для запрета команды?

Я хочу сделать так, чтобы после использования команды, ею нельзя было пользоваться 1 час. Как это сделать?
  • Вопрос задан
  • 80 просмотров
Подписаться Средний Комментировать
Решение пользователя fruktikuza К ответам на вопрос (2)
@fruktikuza Автор вопроса
я нашёл решение сам.
Сделать можно так
1. после срабатывания команды надо текущее время + 1 час положить в конфиг( именно в конфиг, потому что, иначе нельзя задать начальное значение времени, когда только запустили программу и при сравнении будет ошибка)
2. при использовании сравнивать время из конфига с текущем временем( но стоит учесть, что файл из конфига будет string, а для сравнении времён надо использовать файл типа datetime)
вот пример кода
import datetime
time_now = datetime.datetime.now() #получения время сейчас
f = open('your_file.py', 'r') #пример получения значения из конфига и преобразованния в тип datetime
time_hour = f.read()
time_hour_type_new = datetime.datetime.strptime(time_hour, '%Y-%m-%d %H:%M:%S.%f') #тут указан вид datetime который нам нужен
f.close()
#сравнение времён будет таким же как и другое любое сравнение т.е
if time_hour_type_new > time_now:
    print('Доступ к команде заблокирован')
else:
    print('Вывод команды')
    f = open('your_file.py', 'w')#блокировка команды
    f.write(str(time_now + datetime.timedelta()))#в значении timedelta указываем на сколько вы хотите заблокировать команду, для часа это будет так timedelta(hours=+1). Для других единиц измерения времени информацию можно посмотреть в конфиге timedata
    f.close()
Ответ написан
Комментировать