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