2023-04-26 18:03:05 +00:00
|
|
|
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
|
|
|
|
|
2023-04-26 18:22:34 +00:00
|
|
|
if not user_id in USERS_BALANCE:
|
|
|
|
USERS_BALANCE[user_id] = [0.0, '']
|
|
|
|
|
2023-04-26 18:03:05 +00:00
|
|
|
# проверяем, можно ли выпить чай
|
2023-04-26 18:22:34 +00:00
|
|
|
try:
|
|
|
|
last_teapot_time = datetime.strptime(USERS_BALANCE[user_id][1], '%Y-%m-%d %H:%M:%S')
|
2023-04-26 18:03:05 +00:00
|
|
|
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
|
2023-04-26 18:22:34 +00:00
|
|
|
except:
|
|
|
|
pass
|
2023-04-26 18:03:05 +00:00
|
|
|
|
|
|
|
# обновляем баланс пользователя
|
2023-04-26 18:22:34 +00:00
|
|
|
balance = USERS_BALANCE[user_id]
|
|
|
|
print(balance)
|
2023-04-26 18:03:05 +00:00
|
|
|
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):
|
2023-04-26 18:22:34 +00:00
|
|
|
user_id = str(message.from_user.id)
|
2023-04-26 18:03:05 +00:00
|
|
|
|
|
|
|
# проверяем баланс пользователя
|
2023-04-26 18:22:34 +00:00
|
|
|
user_balance = USERS_BALANCE[user_id][0]
|
2023-04-26 18:03:05 +00:00
|
|
|
|
|
|
|
bot.reply_to(message, f'Твой баланс: {user_balance} литров. ☕️')
|
|
|
|
|
|
|
|
bot.polling(none_stop=True)
|