You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

376 lines
10 KiB

1 year ago
import telebot
#Last CTIME
from datetime import datetime, timedelta
LCTIME = datetime.now()
1 year ago
#Keyboard
from telebot.types import ReplyKeyboardMarkup, KeyboardButton
#0.00000000009 output
from numpy import format_float_positional
#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'])
def welcome(message):
markup = ReplyKeyboardMarkup(resize_keyboard=True)
markup.add('Баланс')
markup.add('Ввести/Вывести')
markup.add('Перевод')
markup.add('Помощь')
bot.reply_to(message, """
Используя данный банк, вы соглашаетесь с следующими положениями в ссылке - https://t.me/cryptodm_bank/8
""",reply_markup=markup)
@bot.message_handler(commands=['help'])
def help(message):
bot.reply_to(message, """
Помощь
Курс: 1 ARB = 1 золото
1 year ago
[Спец.команды](https://t.me/cryptodm_bank/4)
[Соглашения](https://t.me/cryptodm_bank/8)
Разработчик/Администратор
@kirill638355
Ник: \_SAN5\_SkeLet0n\_
[Исходный код](https://gitea.gulyaipole.fun/justuser/arb_moneybot)
1 year ago
""",parse_mode='Markdown')
@bot.message_handler(commands=['unreg'])
def unregs(message):
unreg(message)
@bot.message_handler(commands=['passwd'])
def passwd(message):
if checkauth(message):
bot.reply_to(message, "Введите старый пароль ➣")
var.steps[message.chat.id]="passwd"
@bot.message_handler(commands=['balance'])
def balance(message):
read()
if checkauth(message):
name=var.db[str(message.chat.id)]
sum = format_float_positional(var.db[name])
bot.reply_to(message,f"""
ID/Имя {var.db[str(message.chat.id)]}
Баланс {sum} ARB
1 year ago
""")
@bot.message_handler(commands=['gbal'])
def global_balance(message):
if checkauth(message):
read()
gbal = 0
for i in var.db:
if str(type(var.db[i])) != "<class 'str'>":
gbal = gbal + var.db[i]
bot.reply_to(message,f"Общий баланс ➣ {gbal}")
1 year ago
@bot.message_handler(commands=['change'])
def change(message):
if checkauth(message):
var.steps[message.chat.id]="change"
bot.reply_to(message,"""
1 ARB = 1 золото
1 year ago
Введите время или напишите "отмена"
""")
else:
err(message)
@bot.message_handler(commands=['pay'])
def pay(message):
if checkauth(message):
bot.reply_to(message,"Сумма ➣")
var.steps[message.chat.id]="pay_num"
@bot.message_handler(commands=['fpadd'])
def createfastpay(message):
if checkauth(message):
#try:
readfp()
ets = message.text.split()
#parse all elements
name=var.db[str(message.chat.id)] ; id=ets[1] ; cost=float(ets[2])
#parse text message
ets.pop(0) ; ets.pop(0) ; ets.pop(0) ; text=''
for i in ets:
text=text+' '+i
#print('name: ',name,' id: ',id,' cost: ',cost,' text: ',text)
if id not in var.fp:
var.fp[id] = [name, cost, text]
writefp()
bot.reply_to(message,f"""
Счёт успешно создан.
~~~~~~~~~~
Имя/id: {id}
Сумма: {cost}
Сообщение: {text}
""")
else:
bot.reply_to(message,"Счёт с таким именем уже существует.")
@bot.message_handler(commands=['fpdel'])
def deletefastpay(message):
if checkauth(message):
readfp()
id = message.text.split()[1]
if id in var.fp:
if var.fp[id][0] == var.db[str(message.chat.id)]:
var.fp.pop(id)
writefp()
bot.reply_to(message,"Счёт успешно удалён")
else:
bot.reply_to(message,"У Вас нету прав на удаление этого счёта")
else:
bot.reply_to(message,"Счёта с таким именем не существует")
@bot.message_handler(commands=['fp'])
def fastpay(message):
if checkauth(message):
readfp()
read()
id = message.text.split()[1]
if id in var.fp:
name=var.fp[id][0] ; sum=var.fp[id][1] ; mes=var.fp[id][2]
bot.reply_to(message,f"""
Ник {name}
Сумма {sum}
Для подтверждения напишите 'да' """)
var.steps[message.chat.id]='pay_valid'
var.pnick[message.chat.id] = name
var.pnum[message.chat.id] = sum
var.pmes[message.chat.id] = mes
var.tpmes[message.chat.id] = True
write()
else:
bot.reply_to(message,"Счёта с таким именем не существует")
@bot.message_handler(commands=['fplist'])
def fastpaylist(message):
if checkauth(message):
readfp()
tmes = '' ; name=var.db[str(message.chat.id)]
for i in var.fp:
if var.fp[i][0] == name:
tmes=tmes+' '+i
bot.reply_to(message,f"Ваши счета: \n {tmes}")
@bot.message_handler(commands=['fpinfo'])
def fastpayinfo(message):
if checkauth(message):
readfp()
id = message.text.split()[1]
name=var.fp[id][0] ; cost=var.fp[id][1]
if id in var.fp:
bot.reply_to(message,f"""
Информация о счёте.
~~~~~~~~~~
Имя/id: {id}
Ник: {name}
Сумма: {cost}""")
else:
bot.reply_to(message,"Счёта с таким именем не существует")
1 year ago
@bot.message_handler(func=lambda message: True)
def checks(message):
if message.text == 'Баланс':
balance(message)
elif message.text == 'Ввести/Вывести':
change(message)
elif message.text == 'Перевод':
pay(message)
elif message.text == 'Помощь':
help(message)
else:
try:
print(var.steps[message.chat.id])
except:
var.steps[message.chat.id] = None
if var.steps[message.chat.id] == "reg":
reg(message)
elif var.steps[message.chat.id] == "pass":
passs(message)
elif var.steps[message.chat.id] == "passwd":
read()
oldpas = var.db[var.db[str(message.chat.id)]+"_pas"]
enteredpas = hashlib.sha256(str.encode(message.text)).hexdigest()
if str(oldpas) == str(enteredpas):
bot.reply_to(message, "Введите новый пароль ➣")
var.steps[message.chat.id] = "newpass"
else:
bot.reply_to(message, "Неверный пароль.")
var.steps[message.chat.id] = None
elif var.steps[message.chat.id] == "newpass":
newpass = hashlib.sha256(str.encode(message.text)).hexdigest()
var.db[var.db[str(message.chat.id)]+"_pas"] = newpass
write()
bot.reply_to(message, "Пароль успешено изменён.")
var.steps[message.chat.id] = None
elif var.steps[message.chat.id] == "change":
if (message.text).lower() != "отмена":
try:
read()
bot.send_message(5049274301,"#######################\nИгрок "+str(var.db[str(message.chat.id)])+" (@"+message.from_user.username+")"+" просит встречу в "+message.text+"\n#######################\n")
1 year ago
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
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":
if message.text == "sans":
var.pnick[message.chat.id] = "_SAN5_SkeLet0n_"
else:
var.pnick[message.chat.id] = message.text
if var.pnum[message.chat.id] < 1:
sum = format_float_positional(var.pnum[message.chat.id])
else:
sum = str(var.pnum[message.chat.id])
bot.reply_to(message,f"""
Ник {var.pnick[message.chat.id]}
Сумма {sum}
Для подтверждения напишите 'да' """)
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=var.db[str(message.chat.id)]
# payer_bill=str(message.chat.id)
# sum=str(var.pnum[message.chat.id])
if var.pnum[message.chat.id] < 1:
sum = format_float_positional(var.pnum[message.chat.id])
else:
sum = str(var.pnum[message.chat.id])
dttm=today.strftime("%d.%m.%Y_"+time.strftime("%H:%M", time.localtime()))
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}
Сумма: {sum} ARB
1 year ago
~~~~~~~~~~
Получатель: {var.pnick[message.chat.id]}
Время&Дата: {dttm}
------------
~CryptoDM~
ПОДПИСЬ: {sign}
___________
""")
f=open('signs.sha256','a')
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} ARB
1 year ago
""")
try:
if var.tpmes[message.chat.id] == True:
bot.send_message(getid,f"{var.pmes[message.chat.id]}")
var.tpmes[message.chat.id] = False
except:
pass
1 year ago
except:
pass
write()
except:
err(message)
else:
var.steps[message.chat.id] = None
bot.reply_to(message,"Вы отменили операцию")
bot.infinity_polling()