@duzive
Нечего не умею

Как сделать таймер в python?

Написал простого бота, который выдаёт коин валюту. Нужно сделать так, чтобы пользователь не мог получить бонус чаще 1 раза в день. Читал доки модуля time, нашел функцию time.sleep. Но она останавливает работу бота. Нужно сделать так, чтобы пользователь мог пользоваться ботом, но при этом шёл таймер, по окончании которого игрок получит уведомление.
Вот отрывок из кода:
if request == "дай байтов" or request == "дай":
            	if byte == 0:
            		url = 'https://coinbyte.ru/api/service/transfer'
            		payload = {
            		'access_token': 'мой токен'
                        'user_id': event.user_id,
			'sum': 10
            		
}        		
            		headers = {}
            		response = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False)
            		write_msg(event.user_id, "Перевёл тебе 10 байтов")
            		print(response.text)
            		byte = 1
                        #Вот тут должен начаться таймер
            		time.sleep(10)
            		write_msg(event.user_id, "Ты снова можешь получить подарок:)")
            		byte =0
            	else:
            		write_msg(event.user_id, "Ты уже получал подарок")


Сильно не ругайте, я новичок
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn Куратор тега Python
t.me/kshnkvn
Тебе нужно использовать любую базу данных. Принцип такой:
При обращении любого пользователя к боту его ID записывается в БД, как только он получает нужную информацию в таблицу записывается, например time.time() и каждый раз при обращении пользователя к боту происходит примерно такая проверка:
if (time.time() - last_update) >= 86400:
    print('Ты снова можешь получить подарок:)')
else:
    print('Ты уже получал подарок')

Для таких целей подойдет любая БД, можешь попробовать SQLite - она очень простая.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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