2022-10-11 14:15:47 +00:00
import telebot
2023-06-05 09:13:28 +00:00
#Last CTIME
from datetime import datetime , timedelta
LCTIME = datetime . now ( )
2022-10-11 14:15:47 +00:00
#Keyboard
from telebot . types import ReplyKeyboardMarkup , KeyboardButton
2022-11-13 11:03:01 +00:00
#0.00000000009 output
from numpy import format_float_positional
2022-11-05 11:02:59 +00:00
#VAR import
import var
var . init ( )
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
#FUNC import
from func import *
2022-10-11 14:19:05 +00:00
2022-11-05 11:02:59 +00:00
API_TOKEN = var . API_MAIN
2022-10-11 14:19:05 +00:00
2022-11-05 11:02:59 +00:00
bot = telebot . TeleBot ( API_TOKEN )
2022-10-11 14:19:05 +00:00
2022-10-11 14:15:47 +00:00
@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 , """
2022-11-05 11:02:59 +00:00
Используя данный банк , вы соглашаетесь с следующими положениями в ссылке - https : / / t . me / cryptodm_bank / 8
2022-10-11 14:15:47 +00:00
""" ,reply_markup=markup)
@bot.message_handler ( commands = [ ' help ' ] )
def help ( message ) :
bot . reply_to ( message , """
2022-11-05 11:02:59 +00:00
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ Помощь ─ ─ ─ ─ ─ ─ ─ ─ ─
├ [ Основная информация ] ( https : / / t . me / cryptodm_bank / 5 )
├ [ Спец . команды ] ( https : / / t . me / cryptodm_bank / 4 )
├ [ Соглашения ] ( https : / / t . me / cryptodm_bank / 8 )
│
├ Разработчик / Администратор
├ @kirill638355
├ Ник : \_SAN5 \_SkeLet0n \_
│
2023-06-05 09:18:31 +00:00
├ [ Исходный код ] ( https : / / gitea . gulyaipole . fun / justuser / dm_moneybot )
2022-11-05 11:02:59 +00:00
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
""" ,parse_mode= ' Markdown ' )
2022-10-11 14:15:47 +00:00
2022-10-11 14:19:05 +00:00
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
@bot.message_handler ( commands = [ ' unreg ' ] )
def unregs ( message ) :
unreg ( message )
2022-10-11 14:19:05 +00:00
2023-02-10 15:37:34 +00:00
@bot.message_handler ( commands = [ ' passwd ' ] )
def passwd ( message ) :
if checkauth ( message ) :
bot . reply_to ( message , " Введите старый пароль ➣ " )
var . steps [ message . chat . id ] = " passwd "
2022-10-11 14:15:47 +00:00
@bot.message_handler ( commands = [ ' balance ' ] )
def balance ( message ) :
2023-02-10 15:37:34 +00:00
read ( )
2023-06-05 09:13:28 +00:00
readtime ( )
try :
fix = ' \x1b [0m '
# time = int(list({var.dbtime[var.db[str(message.chat.id)] + fix]})[0])
time = int ( var . dbtime [ var . db [ str ( message . chat . id ) ] + fix ] )
hours = time / / 3600
minutes = ( time - hours * 3600 ) / / 60
seconds = time - ( hours * 3600 + minutes * 60 )
except :
hours = 0 ; minutes = 0 ; seconds = 0
2022-10-11 14:15:47 +00:00
2023-02-10 15:37:34 +00:00
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 } CDM
2023-06-05 09:13:28 +00:00
Наиграно ➣ { hours } : { minutes } : { seconds }
2022-11-05 11:02:59 +00:00
""" )
2022-10-11 14:15:47 +00:00
2023-06-05 09:13:28 +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 } " )
2022-11-05 11:02:59 +00:00
@bot.message_handler ( commands = [ ' change ' ] )
def change ( message ) :
if checkauth ( message ) :
var . steps [ message . chat . id ] = " change "
2022-10-11 14:15:47 +00:00
bot . reply_to ( message , """
2023-02-10 15:37:34 +00:00
1 CDM = 1 алмаз
2022-11-05 11:02:59 +00:00
┌ ─ ─ ─ ─ ─ Расписание ─ ─
│ 17 : 00 - 22 : 00 ( По Москве )
├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
└ ➣ Введите время или напишите " отмена "
""" )
else :
err ( message )
2022-10-11 14:15:47 +00:00
2022-10-11 14:19:05 +00:00
2022-10-11 14:15:47 +00:00
@bot.message_handler ( commands = [ ' pay ' ] )
def pay ( message ) :
if checkauth ( message ) :
2022-11-05 11:02:59 +00:00
bot . reply_to ( message , " Сумма ➣ " )
var . steps [ message . chat . id ] = " pay_num "
2022-10-11 14:15:47 +00:00
2023-06-05 09:13:28 +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 , " Счёта с таким именем не существует " )
@bot.message_handler ( commands = [ ' ctime ' ] )
def ctime ( message ) :
readtime ( )
read ( )
global LCTIME
time_delta = datetime . now ( ) - LCTIME
#print(time_delta)
if time_delta . seconds > 5 :
fix = ' \x1b [0m '
time = int ( var . dbtime [ var . db [ str ( message . chat . id ) ] + fix ] )
nick = var . db [ str ( message . chat . id ) ]
money = time * 0.0001
var . dbtime [ var . db [ str ( message . chat . id ) ] + fix ] = 0
var . db [ var . db [ str ( message . chat . id ) ] ] = var . db [ var . db [ str ( message . chat . id ) ] ] + money
bot . reply_to ( message , f " ➣ Ваше время успешно конвертированно в { money } CDM " )
writetime ( )
write ( )
LCTIME = datetime . now ( )
else :
bot . reply_to ( message , f " ➣ Превышено ограничение частоты запросов " )
2022-10-11 14:15:47 +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 )
2022-10-11 14:19:05 +00:00
else :
try :
2022-11-05 11:02:59 +00:00
print ( var . steps [ message . chat . id ] )
2022-10-11 14:19:05 +00:00
except :
2022-11-05 11:02:59 +00:00
var . steps [ message . chat . id ] = None
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
if var . steps [ message . chat . id ] == " reg " :
reg ( message )
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
elif var . steps [ message . chat . id ] == " pass " :
2023-02-10 15:37:34 +00:00
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
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
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
2022-10-11 14:15:47 +00:00
2022-11-05 11:02:59 +00:00
elif var . steps [ message . chat . id ] == " pay_num " :
2022-10-11 14:19:05 +00:00
try :
2022-11-05 11:02:59 +00:00
# if True:
2022-10-11 14:19:05 +00:00
read ( )
2022-11-05 11:02:59 +00:00
#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 "
2022-10-11 14:19:05 +00:00
else :
2022-11-05 11:02:59 +00:00
err ( message )
2022-10-11 14:15:47 +00:00
else :
2022-11-05 11:02:59 +00:00
print ( 1 )
err ( message )
2022-10-11 14:19:05 +00:00
except :
2022-11-05 11:02:59 +00:00
err ( message )
elif var . steps [ message . chat . id ] == " pnick " :
2023-02-10 15:37:34 +00:00
if message . text == " sans " :
var . pnick [ message . chat . id ] = " _SAN5_SkeLet0n_ "
else :
var . pnick [ message . chat . id ] = message . text
2022-11-13 11:03:01 +00:00
if var . pnum [ message . chat . id ] < 1 :
sum = format_float_positional ( var . pnum [ message . chat . id ] )
else :
sum = str ( var . pnum [ message . chat . id ] )
2022-11-05 11:02:59 +00:00
bot . reply_to ( message , f """
Ник ➣ { var . pnick [ message . chat . id ] }
2022-11-13 11:03:01 +00:00
Сумма ➣ { sum }
2022-11-05 11:02:59 +00:00
Для подтверждения напишите ' да ' """ )
var . steps [ message . chat . id ] = " pay_valid "
elif var . steps [ message . chat . id ] == " pay_valid " :
2022-10-11 14:19:05 +00:00
if message . text == ' да ' :
try :
2022-11-05 11:02:59 +00:00
# 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 ]
2022-10-11 14:19:05 +00:00
#Date
today = date . today ( )
2022-11-05 11:02:59 +00:00
payer = var . db [ str ( message . chat . id ) ]
# payer_bill=str(message.chat.id)
2022-11-13 11:03:01 +00:00
# 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 ] )
2022-10-11 14:19:05 +00:00
dttm = today . strftime ( " %d . % m. % Y_ " + time . strftime ( " % H: % M " , time . localtime ( ) ) )
2022-11-05 11:02:59 +00:00
signstr = payer + var . pnick [ message . chat . id ] + dttm
sign = str ( hashlib . sha1 ( str . encode ( signstr ) ) . hexdigest ( ) )
2022-10-11 14:19:05 +00:00
bot . reply_to ( message , " Успешно " )
bot . reply_to ( message , f """
2022-11-05 11:02:59 +00:00
- - - - - ЧЕК - - - -
Плательщик : { payer }
Сумма : { sum } CDM
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Получатель : { var . pnick [ message . chat . id ] }
Время & Дата : { dttm }
- - - - - - - - - - - -
~ CryptoDM ~
ПОДПИСЬ : { sign }
___________
""" )
2022-10-11 14:19:05 +00:00
f = open ( ' signs.sha256 ' , ' a ' )
2022-11-05 11:02:59 +00:00
f . write ( sign + " - " + dttm + " \n " )
2022-10-11 14:19:05 +00:00
f . close ( )
2022-11-05 11:02:59 +00:00
try :
getid = list ( var . db . keys ( ) ) [ list ( var . db . values ( ) ) . index ( var . pnick [ message . chat . id ] ) ]
bot . send_message ( getid , f """
╔ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═
║ Вам перевели ➣ { sum } CDM
╚ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═
""" )
2023-06-05 09:13:28 +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
2022-11-05 11:02:59 +00:00
except :
pass
2022-10-11 14:19:05 +00:00
write ( )
except :
2022-11-05 11:02:59 +00:00
err ( message )
2022-10-11 14:19:05 +00:00
else :
2022-11-05 11:02:59 +00:00
var . steps [ message . chat . id ] = None
2022-10-11 14:19:05 +00:00
bot . reply_to ( message , " Вы отменили операцию " )
2022-10-11 14:15:47 +00:00
bot . infinity_polling ( )