Latest version

main
justuser31 2 years ago
parent 06defb20dc
commit 780096b691

@ -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,"""
Вы успешно вышли из своего аккаунта.
ВНИМАНИЕ: ВАШ НИК БОЛЬШЕ НЕ ПРИВЯЗАН НИ К ОДНОМУ ТЕЛЕГРАМ АККАУНТУ.
""")

@ -1,43 +1,18 @@
import telebot import telebot
API_TOKEN = ''
bot = telebot.TeleBot(API_TOKEN)
#Keyboard #Keyboard
from telebot.types import ReplyKeyboardMarkup, KeyboardButton from telebot.types import ReplyKeyboardMarkup, KeyboardButton
#SHA256 for sign #VAR import
import hashlib import var
#Date&Time var.init()
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 = ""
#FUNC import
from func import *
API_TOKEN = var.API_MAIN
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(commands=['start']) @bot.message_handler(commands=['start'])
@ -50,218 +25,180 @@ def welcome(message):
markup.add('Помощь') markup.add('Помощь')
bot.reply_to(message, """ bot.reply_to(message, """
Start message Используя данный банк, вы соглашаетесь с следующими положениями в ссылке - https://t.me/cryptodm_bank/8
""",reply_markup=markup) """,reply_markup=markup)
@bot.message_handler(commands=['help']) @bot.message_handler(commands=['help'])
def help(message): def help(message):
bot.reply_to(message, """ bot.reply_to(message, """
Help message Помощь
""") [Основная информация](https://t.me/cryptodm_bank/5)
[Спец.команды](https://t.me/cryptodm_bank/4)
[Соглашения](https://t.me/cryptodm_bank/8)
def err_reg(message):
bot.reply_to(message,""" Разработчик/Администратор
Пожалуйста,авторизуйстесь. @kirill638355
Для этого введите свой игровой ник.""") Ник: \_SAN5\_SkeLet0n\_
global steps
steps[message.chat.id]="reg" [Исходный код](https://gitlab.com/justuser31/dm_moneybot)
""",parse_mode='Markdown')
@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=['unreg'])
def unregs(message):
unreg(message)
@bot.message_handler(commands=['balance']) @bot.message_handler(commands=['balance'])
def balance(message): def balance(message):
read() read()
if checkauth(message): if checkauth(message):
name=db[str(message.chat.id)] name=var.db[str(message.chat.id)]
bot.reply_to(message,"Ваш баланс >> "+str(db[name])+" dM") bot.reply_to(message,f"""
Баланс {var.db[name]} CDM
""")
@bot.message_handler(commands=['unreg'])
def unreg(message):
try:
id=str(message.chat.id)
print(id)
db.pop(id,None)
print(db)
write()
@bot.message_handler(commands=['change'])
def change(message):
if checkauth(message):
var.steps[message.chat.id]="change"
bot.reply_to(message,""" bot.reply_to(message,"""
Вы успешно вышли из своего аккаунта. Пока моментальный ввод/вывод недоступен, извините.
ВНИМАНИЕ: ВАШ НИК БОЛЬШЕ НЕ ПРИВЯЗАН НИ К ОДНОМУ ТЕЛЕГРАМ АККАУНТУ.
ЕГО МОГУТ УКРАСТЬ,РЕКОМЕНДУЕМ ПРИВЯЗАТЬ ОБРАТНО.""") Расписание
except: 17:00 - 22:00 (По Москве)
bot.reply_to(message,"Что-то пошло не так.")
Введите время или напишите "отмена"
""")
else:
err(message)
@bot.message_handler(commands=['pay']) @bot.message_handler(commands=['pay'])
def pay(message): def pay(message):
if checkauth(message): if checkauth(message):
bot.reply_to(message,"Введите сумму,которую хотите перевести") bot.reply_to(message,"Сумма ➣")
global steps var.steps[message.chat.id]="pay_num"
steps[message.chat.id]="pay_num"
@bot.message_handler(func=lambda message: True) @bot.message_handler(func=lambda message: True)
def checks(message): def checks(message):
global steps
if message.text == 'Баланс': if message.text == 'Баланс':
balance(message) balance(message)
db['breakme']
elif message.text == 'Ввести/Вывести': elif message.text == 'Ввести/Вывести':
change(message) change(message)
db['breakme']
elif message.text == 'Перевод': elif message.text == 'Перевод':
pay(message) pay(message)
db['breakme']
elif message.text == 'Помощь': elif message.text == 'Помощь':
help(message) help(message)
db['breakme']
else: else:
print(111111111111111111111111)
try: try:
print(steps[message.chat.id]) print(var.steps[message.chat.id])
except: 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: if var.steps[message.chat.id] == "reg":
getid = list(db.keys())[list(db.values()).index(nick)] reg(message)
except:
getid=None
if not getid in db: elif var.steps[message.chat.id] == "pass":
print(nick) passwd(message)
db[id]=nick elif var.steps[message.chat.id] == "change":
if nick in db: if (message.text).lower() != "отмена":
pass try:
else: read()
db[nick]=0 bot.send_message(2057834471,"#######################\nИгрок "+str(var.db[str(message.chat.id)])+" (@"+message.from_user.username+")"+" просит встречу в "+message.text+"\n#######################\n")
bot.reply_to(message,"Запрос успешно отправлен!")
write() var.steps[message.chat.id]=None
except:
err(message)
elif (message.text).lower() == "отмена":
bot.reply_to(message,"Операция отменена.")
var.steps[message.chat.id]=None
bot.reply_to(message,"Поздравляю,Вы успешно авторизовались.")
#elif nick in db:
elif getid in db:
bot.reply_to(message,"""Вы пытаетесь зайти под именем другого игрока или с нового аккаунта?
Поддержка больше чем 1 аккаунта не реализована,напишите администратору - @kirill638355""")
steps[message.chat.id]=None elif var.steps[message.chat.id] == "pay_num":
elif steps[message.chat.id] == "pay_num":
global pnum
try: try:
# if True:
read() read()
pnum = int(message.text) #FLOAT
if int(pnum) > 0: var.pnum[message.chat.id] = float(message.text)
if db[db[str(message.chat.id)]] > int(pnum): if var.pnum[message.chat.id] > 0.00000000001:
bot.reply_to(message,"Введите ник адресата") if float(var.db[var.db[str(message.chat.id)]]) >= var.pnum[message.chat.id]:
steps[message.chat.id]="pnick" bot.reply_to(message,"Ник адресата ➣")
var.steps[message.chat.id]="pnick"
else: else:
bot.reply_to(message,"Что-то пошло не так,отмена операции") err(message)
steps[message.chat.id]=None
else: else:
bot.reply_to(message,"Что-то пошло не так,отмена операции") print(1)
steps[message.chat.id]=None err(message)
except: except:
bot.reply_to(message,"Что-то пошло не так,отмена операции") err(message)
steps[message.chat.id]=None
elif var.steps[message.chat.id] == "pnick":
elif steps[message.chat.id] == "pnick": var.pnick[message.chat.id] = message.text
global pnick bot.reply_to(message,f"""
pnick = message.text Ник {var.pnick[message.chat.id]}
bot.reply_to(message,"Ник: "+pnick+"\nСумма: "+str(pnum)+"\nВы уверены? Для подтверждения напишите 'да'(без ковычек и маленькими буквами)") Сумма {str(var.pnum[message.chat.id])}
steps[message.chat.id] = "pay_valid" Для подтверждения напишите 'да' """)
elif steps[message.chat.id] == "pay_valid": var.steps[message.chat.id] = "pay_valid"
elif var.steps[message.chat.id] == "pay_valid":
if message.text == 'да': if message.text == 'да':
try: try:
read() # if 1 == 1:
var.db[var.pnick[message.chat.id]] = var.db[var.pnick[message.chat.id]]+var.pnum[message.chat.id]
print(db) var.db[var.db[str(message.chat.id)]] = var.db[var.db[str(message.chat.id)]]-var.pnum[message.chat.id]
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
#Date #Date
today = date.today() today = date.today()
payer=db[str(message.chat.id)] payer=var.db[str(message.chat.id)]
payer_bill=str(message.chat.id) # payer_bill=str(message.chat.id)
sum=str(pnum) sum=str(var.pnum[message.chat.id])
dttm=today.strftime("%d.%m.%Y_"+time.strftime("%H:%M", time.localtime())) dttm=today.strftime("%d.%m.%Y_"+time.strftime("%H:%M", time.localtime()))
signstr=payer+pnick+dttm signstr=payer+var.pnick[message.chat.id]+dttm
sign=str(hashlib.sha256(str.encode(signstr)).hexdigest()) sign=str(hashlib.sha1(str.encode(signstr)).hexdigest())
bot.reply_to(message,"Успешно") bot.reply_to(message,"Успешно")
bot.reply_to(message,f""" bot.reply_to(message,f"""
-----ЧЕК---- -----ЧЕК----
Плательщик: {payer} Плательщик: {payer}
Номер счёта: {payer_bill} Сумма: {sum} CDM
Сумма: {sum}
~~~~~~~~~~ ~~~~~~~~~~
Получатель: {pnick} Получатель: {var.pnick[message.chat.id]}
Время&Дата: {dttm} Время&Дата: {dttm}
------------ ------------
ЧАСТНЫЙ БАНК ИГРОКА _SAN5_SkeLet0n_ ~CryptoDM~
ПОДПИСЬ: {sign} ПОДПИСЬ: {sign}
___________ ___________
""") """)
f=open('signs.sha256','a') f=open('signs.sha256','a')
f.write(sign+" "+dttm+"\n") f.write(sign+"-"+dttm+"\n")
f.close() 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() write()
except: except:
bot.reply_to(message,"Что-то пошло не так,отмена операции") err(message)
else: else:
steps[message.chat.id] = None var.steps[message.chat.id] = None
bot.reply_to(message,"Вы отменили операцию") 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() bot.infinity_polling()

@ -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…
Cancel
Save