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