146 lines
3.3 KiB
Python
146 lines
3.3 KiB
Python
|
import var
|
||
|
|
||
|
import telebot
|
||
|
|
||
|
#FUNC import
|
||
|
from func import *
|
||
|
|
||
|
API_TOKEN = var.API_MAIN
|
||
|
|
||
|
bot = telebot.TeleBot(API_TOKEN)
|
||
|
|
||
|
#Work with JSON
|
||
|
import json
|
||
|
def read():
|
||
|
with open('db.json', 'r') as openfile:
|
||
|
var.db = json.load(openfile)
|
||
|
def write():
|
||
|
js = json.dumps(var.db, indent=4)
|
||
|
with open("db.json", "w") as outfile:
|
||
|
outfile.write(js)
|
||
|
|
||
|
#SHA256 for sign
|
||
|
import hashlib
|
||
|
#Date&Time
|
||
|
from datetime import date
|
||
|
import time
|
||
|
|
||
|
|
||
|
|
||
|
def err(message):
|
||
|
bot.reply_to(message,"Что-то пошло не так, отмена операции.")
|
||
|
var.steps[message.chat.id] = None
|
||
|
|
||
|
def err_reg(message):
|
||
|
bot.reply_to(message,"""
|
||
|
Пожалуйста, авторизуйстесь.
|
||
|
Для этого введите свой ник (желательно игровой).""")
|
||
|
var.steps[message.chat.id]="reg"
|
||
|
|
||
|
def checkauth(message):
|
||
|
read()
|
||
|
id=str(message.chat.id)
|
||
|
if id in var.db:
|
||
|
return True
|
||
|
elif not id in var.db:
|
||
|
err_reg(message)
|
||
|
return False
|
||
|
|
||
|
def reg(message):
|
||
|
read()
|
||
|
|
||
|
id=(message.chat.id)
|
||
|
nick=message.text
|
||
|
|
||
|
try:
|
||
|
getid = list(db.keys())[list(db.values()).index(nick)]
|
||
|
except:
|
||
|
getid=None
|
||
|
|
||
|
if not getid in var.db:
|
||
|
bot.reply_to(message,"Пожалуйста, введите пароль для аккаунта банка.")
|
||
|
var.steps[message.chat.id]="pass"
|
||
|
var.anick[message.chat.id]=nick
|
||
|
elif getid in var.db:
|
||
|
bot.reply_to(message,"""Вы пытаетесь зайти под именем другого игрока или с нового аккаунта?
|
||
|
Поддержка больше чем 1 аккаунта не реализована, напишите администратору - @kirill638355""")
|
||
|
var.steps[message.chat.id]=None
|
||
|
|
||
|
|
||
|
def passwd(message):
|
||
|
read()
|
||
|
id=str(message.chat.id)
|
||
|
|
||
|
pas = hashlib.sha256(str.encode(message.text)).hexdigest()
|
||
|
|
||
|
try:
|
||
|
deb=var.db[var.anick[message.chat.id]+"_pas"]
|
||
|
except:
|
||
|
deb=None
|
||
|
|
||
|
try:
|
||
|
mon=var.db[var.anick[message.chat.id]]
|
||
|
except:
|
||
|
mon=None
|
||
|
|
||
|
if pas == deb:
|
||
|
bot.reply_to(message,"Поздравляю, Вы успешно авторизовались.")
|
||
|
var.steps[message.chat.id]=None
|
||
|
var.db[id]=var.anick[message.chat.id]
|
||
|
if var.anick[message.chat.id] in var.db:
|
||
|
pass
|
||
|
else:
|
||
|
var.db[var.anick[message.chat.id]]=0
|
||
|
|
||
|
write()
|
||
|
elif deb == None:
|
||
|
|
||
|
var.steps[message.chat.id]=None
|
||
|
var.db[id]=var.anick[message.chat.id]
|
||
|
if mon == None:
|
||
|
var.db[var.anick[message.chat.id]]=0
|
||
|
|
||
|
today = date.today()
|
||
|
dttm = today.strftime("%d.%m.%Y_"+time.strftime("%H:%M", time.localtime()))
|
||
|
|
||
|
signstr=message.text+dttm
|
||
|
sign=str(hashlib.sha256(str.encode(signstr)).hexdigest())
|
||
|
|
||
|
f=open('reg.sha256','a')
|
||
|
f.write(sign+"-"+dttm+"\n")
|
||
|
f.close()
|
||
|
|
||
|
bot.reply_to(message,"Поздравляю, Вы успешно зарегестрировались.")
|
||
|
bot.reply_to(message,f"""
|
||
|
Ваш ключ восстановления пароля - {sign}
|
||
|
#REG
|
||
|
НИКОМУ НЕ ПЕРЕСЫЛАЙТЕ ЕГО, КРОМЕ - @kirill638355
|
||
|
ИНАЧЕ ВАШУ ЗАПИСЬ МОГУТ УКРАСТЬ.
|
||
|
""")
|
||
|
var.db[var.anick[message.chat.id]+"_pas"]=pas
|
||
|
|
||
|
write()
|
||
|
else:
|
||
|
err(message)
|
||
|
|
||
|
|
||
|
|
||
|
def unreg(message):
|
||
|
read()
|
||
|
|
||
|
print(var.db)
|
||
|
|
||
|
id=str(message.chat.id)
|
||
|
print(id)
|
||
|
|
||
|
var.db.pop(id)
|
||
|
write()
|
||
|
|
||
|
print(var.db)
|
||
|
|
||
|
bot.reply_to(message,"""
|
||
|
Вы успешно вышли из своего аккаунта.
|
||
|
ВНИМАНИЕ: ВАШ НИК БОЛЬШЕ НЕ ПРИВЯЗАН НИ К ОДНОМУ ТЕЛЕГРАМ АККАУНТУ.
|
||
|
""")
|
||
|
|