parent
a70803e209
commit
ca28f34ce1
@ -0,0 +1,70 @@
|
||||
import os
|
||||
import json
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
import telebot
|
||||
|
||||
global USERS_BALANCE
|
||||
TEA_PRICE = 0.2 # цена чашки чая
|
||||
USERS_BALANCE = {} # баланс пользователей (user_id: [balance, last_time_teapot])
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
BASE_NAME = 'data.json'
|
||||
|
||||
DB_PATH = os.path.join(BASE_DIR, BASE_NAME)
|
||||
|
||||
# если базы данных нет, то создаем новую
|
||||
if not os.path.exists(DB_PATH):
|
||||
with open(DB_PATH, 'w') as f:
|
||||
json.dump({}, f)
|
||||
|
||||
# загружаем базу данных
|
||||
with open(DB_PATH, 'r') as f:
|
||||
USERS_BALANCE = json.load(f)
|
||||
|
||||
#Загружаем токен из базы
|
||||
bot = telebot.TeleBot(USERS_BALANCE['token'])
|
||||
|
||||
@bot.message_handler(commands=['start'])
|
||||
def start_message(message):
|
||||
bot.reply_to(message, 'Привет, я бот для чаепитий! '
|
||||
'Чтобы выпить чашку чая напиши /tea. '
|
||||
'Для проверки баланса напиши /bal.')
|
||||
|
||||
@bot.message_handler(commands=['tea'])
|
||||
def tea_message(message):
|
||||
global USERS_BALANCE
|
||||
user_id = str(message.from_user.id)
|
||||
user_name = message.from_user.username
|
||||
|
||||
# проверяем, можно ли выпить чай
|
||||
if user_id in USERS_BALANCE:
|
||||
last_teapot_time = datetime.strptime(USERS_BALANCE[user_id][1], '%Y-%m-%d %H:%M:%S')
|
||||
print(last_teapot_time)
|
||||
time_delta = datetime.now() - last_teapot_time
|
||||
if time_delta.seconds < 1800:
|
||||
bot.reply_to(message, f'Ты уже пил чай {time_delta.seconds//30} минут назад. \n'
|
||||
f'Чай будет готов через {(30 - time_delta.seconds//30)} минут. ☕️')
|
||||
return
|
||||
|
||||
# обновляем баланс пользователя
|
||||
balance = USERS_BALANCE[str(user_id)]
|
||||
balance[0] += TEA_PRICE
|
||||
balance[1] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
USERS_BALANCE[user_id] = balance
|
||||
|
||||
with open(DB_PATH, 'w') as f:
|
||||
json.dump(USERS_BALANCE, f) # записываем изменения в базу данных
|
||||
|
||||
bot.reply_to(message, f'Ты выпил чашку чая. ☕️')
|
||||
|
||||
@bot.message_handler(commands=['bal'])
|
||||
def balance_message(message):
|
||||
user_id = message.from_user.id
|
||||
|
||||
# проверяем баланс пользователя
|
||||
user_balance = USERS_BALANCE.get(user_id, [0, ''])[0]
|
||||
|
||||
bot.reply_to(message, f'Твой баланс: {user_balance} литров. ☕️')
|
||||
|
||||
bot.polling(none_stop=True)
|
Loading…
Reference in new issue