import telebot #Last CTIME from datetime import datetime, timedelta LCTIME = datetime.now() #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 золото ├[Спец.команды](https://t.me/cryptodm_bank/4) ├[Соглашения](https://t.me/cryptodm_bank/8) │ ├Разработчик/Администратор ├@kirill638355 ├Ник: \_SAN5\_SkeLet0n\_ │ ├[Исходный код](https://gitea.gulyaipole.fun/justuser/arb_moneybot) └───────────────────────── """,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 """) @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])) != "": gbal = gbal + var.db[i] bot.reply_to(message,f"Общий баланс ➣ {gbal}") @bot.message_handler(commands=['change']) def change(message): if checkauth(message): var.steps[message.chat.id]="change" bot.reply_to(message,""" ┌──── │1 ARB = 1 золото └➣Введите время или напишите "отмена" """) 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,"Счёта с таким именем не существует") @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") 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 ~~~~~~~~~~ Получатель: {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 ╚════════════════════════ """) 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 except: pass write() except: err(message) else: var.steps[message.chat.id] = None bot.reply_to(message,"Вы отменили операцию") bot.infinity_polling()