Latest version
This commit is contained in:
parent
06defb20dc
commit
780096b691
145
func.py
Normal file
145
func.py
Normal file
@ -0,0 +1,145 @@
|
||||
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,"""
|
||||
Вы успешно вышли из своего аккаунта.
|
||||
ВНИМАНИЕ: ВАШ НИК БОЛЬШЕ НЕ ПРИВЯЗАН НИ К ОДНОМУ ТЕЛЕГРАМ АККАУНТУ.
|
||||
""")
|
||||
|
311
main.py
311
main.py
@ -1,43 +1,18 @@
|
||||
import telebot
|
||||
API_TOKEN = ''
|
||||
bot = telebot.TeleBot(API_TOKEN)
|
||||
|
||||
#Keyboard
|
||||
from telebot.types import ReplyKeyboardMarkup, KeyboardButton
|
||||
|
||||
#SHA256 for sign
|
||||
import hashlib
|
||||
#Date&Time
|
||||
from datetime import date
|
||||
import time
|
||||
|
||||
#JSON for database
|
||||
import json
|
||||
db = {"Nick":10}
|
||||
def read():
|
||||
#Read db and push
|
||||
global db
|
||||
with open('db.json', 'r') as openfile:
|
||||
db = json.load(openfile)
|
||||
def write():
|
||||
#Read db and write
|
||||
js = json.dumps(db, indent=4)
|
||||
with open("db.json", "w") as outfile:
|
||||
outfile.write(js)
|
||||
|
||||
#Create new table
|
||||
#write()
|
||||
|
||||
|
||||
#Step(reg / pay / other)
|
||||
steps = {}
|
||||
#Pay number
|
||||
pnum = 0
|
||||
#Pay nick
|
||||
pnick = ""
|
||||
#VAR import
|
||||
import var
|
||||
var.init()
|
||||
|
||||
#FUNC import
|
||||
from func import *
|
||||
|
||||
API_TOKEN = var.API_MAIN
|
||||
|
||||
bot = telebot.TeleBot(API_TOKEN)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['start'])
|
||||
@ -50,218 +25,180 @@ def welcome(message):
|
||||
markup.add('Помощь')
|
||||
|
||||
bot.reply_to(message, """
|
||||
Start message
|
||||
Используя данный банк, вы соглашаетесь с следующими положениями в ссылке - https://t.me/cryptodm_bank/8
|
||||
""",reply_markup=markup)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['help'])
|
||||
def help(message):
|
||||
bot.reply_to(message, """
|
||||
Help message
|
||||
""")
|
||||
|
||||
|
||||
def err_reg(message):
|
||||
bot.reply_to(message,"""
|
||||
Пожалуйста,авторизуйстесь.
|
||||
Для этого введите свой игровой ник.""")
|
||||
global steps
|
||||
steps[message.chat.id]="reg"
|
||||
|
||||
|
||||
|
||||
@bot.message_handler(commands=['change'])
|
||||
def change(message):
|
||||
bot.reply_to(message,"""
|
||||
Сейчас недоступен обмен в любое время,приносим извинения за временные неудобства.
|
||||
|
||||
Чтобы продать/купить валюту Вы должны назначить время от 17:00 до 22:00 ПО МОСКВЕ(Оффициальный способ)
|
||||
Или поменять валюту у игроков(Неоффициальный способ,не безопасно)
|
||||
|
||||
Введите время,пожалуйста:
|
||||
""")
|
||||
global steps
|
||||
steps[message.chat.id]="change"
|
||||
|
||||
|
||||
def checkauth(message):
|
||||
read()
|
||||
id=str(message.chat.id)
|
||||
if id in db:
|
||||
return True
|
||||
elif not id in db:
|
||||
err_reg(message)
|
||||
return False
|
||||
|
||||
|
||||
@bot.message_handler(commands=['balance'])
|
||||
def balance(message):
|
||||
read()
|
||||
|
||||
if checkauth(message):
|
||||
name=db[str(message.chat.id)]
|
||||
bot.reply_to(message,"Ваш баланс >> "+str(db[name])+" dM")
|
||||
┌─────────Помощь─────────
|
||||
├[Основная информация](https://t.me/cryptodm_bank/5)
|
||||
├[Спец.команды](https://t.me/cryptodm_bank/4)
|
||||
├[Соглашения](https://t.me/cryptodm_bank/8)
|
||||
│
|
||||
├Разработчик/Администратор
|
||||
├@kirill638355
|
||||
├Ник: \_SAN5\_SkeLet0n\_
|
||||
│
|
||||
├[Исходный код](https://gitlab.com/justuser31/dm_moneybot)
|
||||
└─────────────────────────
|
||||
""",parse_mode='Markdown')
|
||||
|
||||
|
||||
|
||||
@bot.message_handler(commands=['unreg'])
|
||||
def unreg(message):
|
||||
try:
|
||||
id=str(message.chat.id)
|
||||
def unregs(message):
|
||||
unreg(message)
|
||||
|
||||
print(id)
|
||||
db.pop(id,None)
|
||||
print(db)
|
||||
write()
|
||||
@bot.message_handler(commands=['balance'])
|
||||
def balance(message):
|
||||
read()
|
||||
|
||||
if checkauth(message):
|
||||
name=var.db[str(message.chat.id)]
|
||||
bot.reply_to(message,f"""
|
||||
Баланс ➣ {var.db[name]} CDM
|
||||
""")
|
||||
|
||||
|
||||
@bot.message_handler(commands=['change'])
|
||||
def change(message):
|
||||
if checkauth(message):
|
||||
var.steps[message.chat.id]="change"
|
||||
bot.reply_to(message,"""
|
||||
Вы успешно вышли из своего аккаунта.
|
||||
ВНИМАНИЕ: ВАШ НИК БОЛЬШЕ НЕ ПРИВЯЗАН НИ К ОДНОМУ ТЕЛЕГРАМ АККАУНТУ.
|
||||
ЕГО МОГУТ УКРАСТЬ,РЕКОМЕНДУЕМ ПРИВЯЗАТЬ ОБРАТНО.""")
|
||||
except:
|
||||
bot.reply_to(message,"Что-то пошло не так.")
|
||||
Пока моментальный ввод/вывод недоступен, извините.
|
||||
|
||||
┌─────Расписание──
|
||||
│17:00 - 22:00 (По Москве)
|
||||
├────────────────
|
||||
└➣Введите время или напишите "отмена"
|
||||
""")
|
||||
else:
|
||||
err(message)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['pay'])
|
||||
def pay(message):
|
||||
if checkauth(message):
|
||||
bot.reply_to(message,"Введите сумму,которую хотите перевести")
|
||||
global steps
|
||||
steps[message.chat.id]="pay_num"
|
||||
bot.reply_to(message,"Сумма ➣")
|
||||
var.steps[message.chat.id]="pay_num"
|
||||
|
||||
|
||||
@bot.message_handler(func=lambda message: True)
|
||||
def checks(message):
|
||||
global steps
|
||||
|
||||
if message.text == 'Баланс':
|
||||
balance(message)
|
||||
db['breakme']
|
||||
elif message.text == 'Ввести/Вывести':
|
||||
change(message)
|
||||
db['breakme']
|
||||
elif message.text == 'Перевод':
|
||||
pay(message)
|
||||
db['breakme']
|
||||
elif message.text == 'Помощь':
|
||||
help(message)
|
||||
db['breakme']
|
||||
else:
|
||||
print(111111111111111111111111)
|
||||
|
||||
try:
|
||||
print(steps[message.chat.id])
|
||||
print(var.steps[message.chat.id])
|
||||
except:
|
||||
steps[message.chat.id] = None
|
||||
var.steps[message.chat.id] = None
|
||||
|
||||
if steps[message.chat.id] == "reg":
|
||||
id=message.chat.id
|
||||
nick=message.text
|
||||
|
||||
print(type(not nick in db))
|
||||
#Check id(get id by nick owner) in db
|
||||
|
||||
try:
|
||||
getid = list(db.keys())[list(db.values()).index(nick)]
|
||||
except:
|
||||
getid=None
|
||||
if var.steps[message.chat.id] == "reg":
|
||||
reg(message)
|
||||
|
||||
if not getid in db:
|
||||
print(nick)
|
||||
elif var.steps[message.chat.id] == "pass":
|
||||
passwd(message)
|
||||
|
||||
db[id]=nick
|
||||
if nick in db:
|
||||
pass
|
||||
else:
|
||||
db[nick]=0
|
||||
|
||||
write()
|
||||
|
||||
bot.reply_to(message,"Поздравляю,Вы успешно авторизовались.")
|
||||
#elif nick in db:
|
||||
elif getid in db:
|
||||
bot.reply_to(message,"""Вы пытаетесь зайти под именем другого игрока или с нового аккаунта?
|
||||
Поддержка больше чем 1 аккаунта не реализована,напишите администратору - @kirill638355""")
|
||||
|
||||
steps[message.chat.id]=None
|
||||
elif steps[message.chat.id] == "pay_num":
|
||||
global pnum
|
||||
try:
|
||||
read()
|
||||
pnum = int(message.text)
|
||||
if int(pnum) > 0:
|
||||
if db[db[str(message.chat.id)]] > int(pnum):
|
||||
bot.reply_to(message,"Введите ник адресата")
|
||||
steps[message.chat.id]="pnick"
|
||||
else:
|
||||
bot.reply_to(message,"Что-то пошло не так,отмена операции")
|
||||
steps[message.chat.id]=None
|
||||
else:
|
||||
bot.reply_to(message,"Что-то пошло не так,отмена операции")
|
||||
steps[message.chat.id]=None
|
||||
except:
|
||||
bot.reply_to(message,"Что-то пошло не так,отмена операции")
|
||||
steps[message.chat.id]=None
|
||||
|
||||
elif steps[message.chat.id] == "pnick":
|
||||
global pnick
|
||||
pnick = message.text
|
||||
bot.reply_to(message,"Ник: "+pnick+"\nСумма: "+str(pnum)+"\nВы уверены? Для подтверждения напишите 'да'(без ковычек и маленькими буквами)")
|
||||
steps[message.chat.id] = "pay_valid"
|
||||
elif steps[message.chat.id] == "pay_valid":
|
||||
if message.text == 'да':
|
||||
elif var.steps[message.chat.id] == "change":
|
||||
if (message.text).lower() != "отмена":
|
||||
try:
|
||||
read()
|
||||
bot.send_message(2057834471,"#######################\nИгрок "+str(var.db[str(message.chat.id)])+" (@"+message.from_user.username+")"+" просит встречу в "+message.text+"\n#######################\n")
|
||||
bot.reply_to(message,"Запрос успешно отправлен!")
|
||||
var.steps[message.chat.id]=None
|
||||
except:
|
||||
err(message)
|
||||
elif (message.text).lower() == "отмена":
|
||||
bot.reply_to(message,"Операция отменена.")
|
||||
var.steps[message.chat.id]=None
|
||||
|
||||
print(db)
|
||||
print(str(db[pnick])+" "+str(db[pnick]))
|
||||
db[pnick] = db[pnick]+pnum
|
||||
db[db[str(message.chat.id)]] = db[db[str(message.chat.id)]]-pnum
|
||||
|
||||
elif var.steps[message.chat.id] == "pay_num":
|
||||
try:
|
||||
# if True:
|
||||
read()
|
||||
#FLOAT
|
||||
var.pnum[message.chat.id] = float(message.text)
|
||||
if var.pnum[message.chat.id] > 0.00000000001:
|
||||
if float(var.db[var.db[str(message.chat.id)]]) >= var.pnum[message.chat.id]:
|
||||
bot.reply_to(message,"Ник адресата ➣")
|
||||
var.steps[message.chat.id]="pnick"
|
||||
else:
|
||||
err(message)
|
||||
else:
|
||||
print(1)
|
||||
err(message)
|
||||
except:
|
||||
err(message)
|
||||
|
||||
elif var.steps[message.chat.id] == "pnick":
|
||||
var.pnick[message.chat.id] = message.text
|
||||
bot.reply_to(message,f"""
|
||||
Ник ➣ {var.pnick[message.chat.id]}
|
||||
Сумма ➣ {str(var.pnum[message.chat.id])}
|
||||
Для подтверждения напишите 'да' """)
|
||||
var.steps[message.chat.id] = "pay_valid"
|
||||
|
||||
elif var.steps[message.chat.id] == "pay_valid":
|
||||
if message.text == 'да':
|
||||
try:
|
||||
# if 1 == 1:
|
||||
var.db[var.pnick[message.chat.id]] = var.db[var.pnick[message.chat.id]]+var.pnum[message.chat.id]
|
||||
var.db[var.db[str(message.chat.id)]] = var.db[var.db[str(message.chat.id)]]-var.pnum[message.chat.id]
|
||||
|
||||
#Date
|
||||
today = date.today()
|
||||
|
||||
payer=db[str(message.chat.id)]
|
||||
payer_bill=str(message.chat.id)
|
||||
sum=str(pnum)
|
||||
payer=var.db[str(message.chat.id)]
|
||||
# payer_bill=str(message.chat.id)
|
||||
sum=str(var.pnum[message.chat.id])
|
||||
dttm=today.strftime("%d.%m.%Y_"+time.strftime("%H:%M", time.localtime()))
|
||||
|
||||
signstr=payer+pnick+dttm
|
||||
sign=str(hashlib.sha256(str.encode(signstr)).hexdigest())
|
||||
signstr=payer+var.pnick[message.chat.id]+dttm
|
||||
sign=str(hashlib.sha1(str.encode(signstr)).hexdigest())
|
||||
|
||||
bot.reply_to(message,"Успешно")
|
||||
bot.reply_to(message,f"""
|
||||
-----ЧЕК----
|
||||
Плательщик: {payer}
|
||||
Номер счёта: {payer_bill}
|
||||
Сумма: {sum}
|
||||
~~~~~~~~~~
|
||||
Получатель: {pnick}
|
||||
Время&Дата: {dttm}
|
||||
------------
|
||||
ЧАСТНЫЙ БАНК ИГРОКА _SAN5_SkeLet0n_
|
||||
ПОДПИСЬ: {sign}
|
||||
___________
|
||||
""")
|
||||
-----ЧЕК----
|
||||
Плательщик: {payer}
|
||||
Сумма: {sum} CDM
|
||||
~~~~~~~~~~
|
||||
Получатель: {var.pnick[message.chat.id]}
|
||||
Время&Дата: {dttm}
|
||||
------------
|
||||
~CryptoDM~
|
||||
ПОДПИСЬ: {sign}
|
||||
___________
|
||||
""")
|
||||
f=open('signs.sha256','a')
|
||||
f.write(sign+" "+dttm+"\n")
|
||||
f.write(sign+"-"+dttm+"\n")
|
||||
f.close()
|
||||
|
||||
try:
|
||||
getid = list(var.db.keys())[list(var.db.values()).index(var.pnick[message.chat.id])]
|
||||
bot.send_message(getid,f"""
|
||||
╔════════════════════════
|
||||
║Вам перевели ➣ {sum} CDM
|
||||
╚════════════════════════
|
||||
""")
|
||||
except:
|
||||
pass
|
||||
write()
|
||||
except:
|
||||
bot.reply_to(message,"Что-то пошло не так,отмена операции")
|
||||
err(message)
|
||||
else:
|
||||
steps[message.chat.id] = None
|
||||
var.steps[message.chat.id] = None
|
||||
bot.reply_to(message,"Вы отменили операцию")
|
||||
|
||||
elif steps[message.chat.id] == "change":
|
||||
try:
|
||||
read()
|
||||
#print(message)
|
||||
bot.send_message(2057834471,"#######################\nИгрок "+str(db[str(message.chat.id)])+" (@"+message.from_user.username+")"+" просит встречу в "+message.text+"\n#######################\n")
|
||||
bot.reply_to(message,"Запрос успешно отправлен!")
|
||||
steps[message.chat.id]=None
|
||||
except:
|
||||
bot.reply_to(message,"Что-то пошло не так,отмена операции")
|
||||
|
||||
bot.infinity_polling()
|
||||
|
45
send.py
Normal file
45
send.py
Normal file
@ -0,0 +1,45 @@
|
||||
import telebot
|
||||
|
||||
import var
|
||||
var.init()
|
||||
|
||||
TOKEN = var.API_MAIN
|
||||
bot = telebot.TeleBot(TOKEN)
|
||||
|
||||
#JSON for database
|
||||
import json
|
||||
db = {"Nick":10}
|
||||
def read():
|
||||
#Read db and push
|
||||
global db
|
||||
with open('db.json', 'r') as openfile:
|
||||
db = json.load(openfile)
|
||||
|
||||
read()
|
||||
|
||||
message = """
|
||||
Технические работы завершены, но система запущена в тестовом режиме.
|
||||
При нахождении уязвимостей, пожалуйста, сообщите их владельцу банка, награду дам.
|
||||
|
||||
Из изменений:
|
||||
- В соглашения добавлен пункт "Уязвимости в системе"
|
||||
- Подменить сумму или ник перевода уже невозможно
|
||||
- Все счета переведены на новый формат
|
||||
|
||||
Курс как и раньше - 1 алмаз - 1 CDM
|
||||
"""
|
||||
|
||||
for i in db:
|
||||
if True:
|
||||
try:
|
||||
id=int(i)
|
||||
except:
|
||||
id=None
|
||||
|
||||
if id != None:
|
||||
try:
|
||||
# bot.send_message(id,message,parse_mode='Markdown')
|
||||
bot.send_message(id,message)
|
||||
print("Pass ", id)
|
||||
except:
|
||||
print("Error ",id)
|
Loading…
Reference in New Issue
Block a user