Example #1
0
    def home(self, message, callback_id=None, callback_data=None):
        if Database(table_name='user_db').select_db(
                'role', 'where telegram_id = {}'.format(
                    message.chat.id))['result'][0]['role'] == 0:
            self.register_0(message)
        else:
            self.fsm_db(message, 7, 0, 'None')
            keyboard = self.kb_inline()
            #callback_button_time = self.btn_inline(text="сколько времени?",
            #callback_data="6, 1")
            #keyboard.add(callback_button_time)

            if Database(table_name='user_db').select_db(
                    'ref_acc', 'where telegram_id = {}'.format(
                        message.chat.id))['result'][0]['ref_acc'] == 'None':
                callback_button_ref = self.btn_inline(
                    text="ввести реферальную ссылку",
                    callback_data="9, 10, None")
                keyboard.add(callback_button_ref)
            self.edit_message_text(message=message,
                                   text='домашняя страница\nвремя сервера ' +
                                   datetime.strftime(
                                       datetime.now(),
                                       "%Y-%m-%d %H:%M:%S",
                                   ))
            self.edit_message_reply(message, reply_markup=keyboard)
Example #2
0
def stop_ddos(message, ddos_timer=ddos_timer):
    print('------------check DDoS---------------')
    print(message.json['from']['is_bot'])
    if message.json['from']['is_bot'] == False:
        Database(table_name='user_db').update_db(
            'last_mes_user_id', '{}'.format(message.message_id),
            'where telegram_id = {}'.format(message.chat.id))
        print('/////////////////////////////////////////////////')
    if (datetime.now() - Database(table_name='user_db').select_db(
            'reg_time', 'where telegram_id = {}'.format(message.chat.id))
        ['result'][0]['reg_time']).total_seconds() >= 10:
        if (datetime.now() - Database(table_name='user_db').select_db(
                'last_mes_time', 'where telegram_id = {}'.format(
                    message.chat.id))['result'][0]['last_mes_time']
            ).total_seconds() <= ddos_timer:
            print('------------DDoS---------------')
            Database(table_name='user_db').update_db(
                'last_mes_time', '"{}"'.format(
                    datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S")),
                'where telegram_id = {}'.format(message.chat.id))
            work = False
        else:
            print('------------no DDoS---------------')
            work = True
    else:
        print('------------New User---------------')
        work = True
    return work
Example #3
0
    def edit_message_reply(self,
                           message,
                           text,
                           keyboard_inline,
                           callback_id=None,
                           callback_data=None):
        msg_id = Database(table_name='user_db').select_db(
            '*', 'where telegram_id = {}'.format(message.chat.id))['result'][0]
        if ((message.json['from']['is_bot'] == True)
                and (message.message_id == msg_id['last_mes_bot_inline_id'])
                and
                msg_id['last_mes_bot_inline_id'] > msg_id['last_mes_bot_id']
                and
                msg_id['last_mes_bot_inline_id'] > msg_id['last_mes_user_id']):

            self.bot.edit_message_text(chat_id=message.chat.id,
                                       message_id=message.message_id,
                                       text=text,
                                       reply_markup=keyboard_inline)
        else:
            msg = self.bot.send_message(chat_id=message.chat.id,
                                        text=text,
                                        reply_markup=keyboard_inline)
            Database(table_name='user_db').update_db(
                'last_mes_bot_inline_id', '"{}"'.format(msg.message_id),
                'where telegram_id = {}'.format(message.chat.id))
Example #4
0
    def executor(self, message, callback_id=None, callback_data=None):
        user_db = Database(table_name='user_db').select_db(
            '*', 'where telegram_id = {}'.format(message.chat.id))

        if message.text.lower() in self.commands:
            print(
                '---------------------------------1-------------------------------------'
            )
            x = getattr(self, self.commands[message.text.lower()])
            x(message, callback_id, callback_data)
        elif user_db['result'][0]['fsm_wait'] != 0:
            print(
                '---------------------------------2-------------------------------------'
            )
            print(
                Database('fsm').select_db(
                    '*', 'where track = {}'.format(
                        int(user_db['result'][0]['fsm_wait']))))
            x = getattr(
                self,
                Database('fsm').select_db(
                    '*', 'where track = {}'.format(
                        user_db['result'][0]['fsm_wait']))['result'][0]
                ['point_b'])
            x(message, callback_id, callback_data)

        elif callback_data != None:
            print(
                '---------------------------------3-------------------------------------'
            )
            data = callback_data.split(', ')
            print(data)
            fsm_code = int(data[0])
            fsm_wait = int(data[1])
            fsm_param = str(data[2])
            call_point = Database('fsm').select_db(
                '*', 'where track = {}'.format(fsm_code))
            db_point = Database('fsm').select_db(
                '*',
                'where track = {}'.format(user_db['result'][0]['fsm_code']))
            if (call_point['available'] != 0 and db_point['available'] != 0):

                if (call_point['result'][0]['point_a']
                        == db_point['result'][0]['point_b']
                        or call_point['result'][0]['point_a'] == "all"):
                    x = getattr(self, call_point['result'][0]['point_b'])
                    x(message, callback_id, callback_data)
                else:
                    print(
                        '--------- ошибка последовательности автоматов. автомат проигнорирован ---------'
                    )
            else:
                print(
                    '--------- ошибка наличия автоматов. автомат проигнорирован ---------'
                )
        else:
            print(
                '--------- ошибка обработки запроса. автомат не выполнен ---------'
            )
Example #5
0
 def update_mes(self, message, update_types, update_param='None'):
     Database('update_mes').delete_db('where telegram_id = {}'.format(
         message.chat.id))
     Database('update_mes').insert_db(values=[
         '{}'.format(message.chat.id), '{}'.format(message.message_id),
         '{}'.format(update_types), '"{}"'.format(update_param), '"{}"'.
         format(datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S"))
     ])
Example #6
0
def pass_cheсker(message, pass_timer=pass_timer):
    print('------------check pass---------------')
    print(message)
    if Database(table_name='user_db').select_db(
            'pass', 'where telegram_id = {}'.format(
                message.chat.id))['result'][0]['pass'] != 'None':
        if (datetime.now() - Database(table_name='user_db').select_db(
                'last_mes_time', 'where telegram_id = {}'.format(
                    message.chat.id))['result'][0]['last_mes_time']
            ).total_seconds() >= pass_timer:
            if Database(table_name='user_db').select_db(
                    'pass_count', 'where telegram_id = {}'.format(
                        message.chat.id))['result'][0]['pass_count'] == 0:
                bot.send_message(
                    chat_id=message.chat.id,
                    text=
                    'тебя не было в системе больше 5 минут. введи пароль для дальнейших действий'
                )
                Database(table_name='user_db').update_db(
                    'pass_count', '1',
                    'where telegram_id = {}'.format(message.chat.id))
                print('------------3---------------')
            if message.text == Database(table_name='user_db').select_db(
                    'pass', 'where telegram_id = {}'.format(
                        message.from_user.id))['result'][0]['pass']:

                bot.send_message(chat_id=message.chat.id,
                                 text="пароль верный. доступ открыт")
                Database(table_name='user_db').update_db(
                    'pass_count', '1',
                    'where telegram_id = {}'.format(message.chat.id))
                Database(table_name='user_db').update_db(
                    'last_mes_time', '"{}"'.format(
                        datetime.strftime(datetime.now(),
                                          "%Y-%m-%d %H:%M:%S")),
                    'where telegram_id = {}'.format(message.chat.id))
                print('------------1---------------')
                return True
            else:
                bot.send_message(chat_id=message.chat.id,
                                 text="пароль неверный")
                print('------------2---------------')
                return False
        else:
            Database(table_name='user_db').update_db(
                'last_mes_time', '"{}"'.format(
                    datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S")),
                'where telegram_id = {}'.format(message.chat.id))
            return True
    else:
        Database(table_name='user_db').update_db(
            'last_mes_time', '"{}"'.format(
                datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S")),
            'where telegram_id = {}'.format(message.chat.id))
        print('------------4---------------')
        return True
Example #7
0
    def referal_3(self, message, callback_id, callback_data):
        if callback_data != None:
            data = callback_data.split(', ')
            fsm_code = int(data[0])
            fsm_wait = int(data[1])
            fsm_param = str(data[2])
            if fsm_param != "None":

                if Database(table_name='user_db').select_db(
                        'telegram_id', 'where telegram_id = {}'.format(
                            fsm_param))['available'] != 0:
                    if str(fsm_param) != str(message.chat.id):
                        if Database(table_name='user_db').select_db(
                                'ref_acc', 'where telegram_id = {}'.format(
                                    message.chat.id)
                        )['result'][0]['ref_acc'] == 'None':
                            self.bot.send_message(
                                chat_id=message.chat.id,
                                text=
                                'спасибо за участие в партнёрской программе')
                            Database(table_name='user_db').update_db(
                                'ref_count', 'ref_count+1',
                                'where telegram_id = {}'.format(fsm_param))
                            Database(table_name='user_db').update_db(
                                'ref_acc', '"{}"'.format(fsm_param),
                                'where telegram_id = {}'.format(
                                    message.chat.id))
                            self.fsm_db(message, 11, 0, 'None')
                            self.home(message, callback_id, callback_data)
                        else:
                            self.bot.send_message(
                                chat_id=message.chat.id,
                                text=
                                'вы уже были приглашены другим пользователем')
                            self.home(message, callback_id, callback_data)
                    else:
                        self.bot.send_message(
                            chat_id=message.chat.id,
                            text='нельзя стать своим собственным рефералом')
                        self.home(message, callback_id, callback_data)
                else:
                    self.bot.send_message(chat_id=message.chat.id,
                                          text='такой пользователь не найден')
                    self.home(message, callback_id, callback_data)
            else:
                self.bot.send_message(chat_id=message.chat.id,
                                      text='ошибка ввода')
                self.home(message, callback_id, callback_data)
Example #8
0
def user_checker(message):
    print('------------1==============')
    if Database(table_name='user_db').select_db(
            'telegram_id', 'where telegram_id = {}'.format(
                message.chat.id))['available'] == 0:
        print('------------2==============')
        Fsm().register(message)
        keyboard_test = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
Example #9
0
 def fsm_db(self,
            message,
            fsm_code=None,
            fsm_wait=None,
            fsm_param=None,
            callback_data=None):
     if callback_data != None:
         data = callback_data.split(', ')
         fsm_code = int(data[0])
         fsm_wait = int(data[1])
         fsm_param = str(data[2])
     Database(table_name='user_db').update_db(
         'fsm_code', '{}'.format(fsm_code),
         'where telegram_id = {}'.format(message.chat.id))
     Database(table_name='user_db').update_db(
         'fsm_wait', '{}'.format(fsm_wait),
         'where telegram_id = {}'.format(message.chat.id))
     Database(table_name='user_db').update_db(
         'fsm_param', '"{}"'.format(fsm_param),
         'where telegram_id = {}'.format(message.chat.id))
Example #10
0
    def edit_message_text(self,
                          message,
                          text,
                          callback_id=None,
                          callback_data=None):
        msg_id = Database(table_name='user_db').select_db(
            '*', 'where telegram_id = {}'.format(message.chat.id))['result'][0]
        msg = None
        if msg_id['last_mes_user_id'] < msg_id['last_mes_bot_id']:
            msg = self.bot.edit_message_text(
                chat_id=message.chat.id,
                message_id=msg_id['last_mes_bot_id'],
                text=text)

            print(msg)
        elif msg_id['last_mes_user_id'] > msg_id['last_mes_bot_id']:
            msg = self.bot.send_message(chat_id=message.chat.id, text=text)
            Database(table_name='user_db').update_db(
                'last_mes_bot_id', '"{}"'.format(msg.message_id),
                'where telegram_id = {}'.format(message.chat.id))
        return msg
Example #11
0
 def send_reply(self,
                message,
                reply_markup,
                callback_id=None,
                callback_data=None):
     msg = self.bot.send_message(chat_id=message.chat.id,
                                 text='________________________________',
                                 reply_markup=reply_markup)
     Database(table_name='user_db').update_db(
         'last_mes_bot_inline_id', '"{}"'.format(msg.message_id),
         'where telegram_id = {}'.format(message.chat.id))
     return msg
Example #12
0
 def pass_3(self, message, callback_id, callback_data):
     if callback_data != None:
         data = callback_data.split(', ')
         fsm_code = int(data[0])
         fsm_wait = int(data[1])
         fsm_param = str(data[2])
         if fsm_param != "None":
             self.send_message(message,
                               'пароль установлен'.format(message.text))
             Database(table_name='user_db').update_db(
                 'pass', '"{}"'.format(
                     Database(table_name='user_db').select_db(
                         '*', 'where telegram_id = {}'.format(
                             message.chat.id))['result'][0]['fsm_param']),
                 'where telegram_id = {}'.format(message.chat.id))
             Database(table_name='user_db').update_db(
                 'pass_time', '"{}"'.format(
                     datetime.strftime(datetime.now(),
                                       "%Y-%m-%d %H:%M:%S")),
                 'where telegram_id = {}'.format(message.chat.id))
         Database(table_name='user_db').update_db(
             'role', '1', 'where telegram_id = {}'.format(message.chat.id))
         self.fsm_db(message, 6, 0, 'None')
         self.home(message, callback_id, callback_data)
Example #13
0
 def register(self, message):
     if Database(table_name='user_db').select_db(
             'telegram_id', 'where telegram_id = {}'.format(
                 message.from_user.id))['available'] == 0:
         if len(message.text) > 6:
             ref = message.text[7:]
             print(
                 Database(table_name='user_db').select_db(
                     'telegram_id', 'where telegram_id = {}'.format(ref),
                     1))
             if Database(table_name='user_db').select_db(
                     'telegram_id', 'where telegram_id = {}'.format(
                         ref))['available'] != 0:
                 if Database(table_name='user_db').select_db(
                         'telegram_id',
                         'where telegram_id = {}'.format(ref),
                         1)['result'][0]['telegram_id'] != message.chat.id:
                     Database(table_name='user_db').update_db(
                         'ref_count', 'ref_count+1',
                         'where telegram_id = {}'.format(ref))
         else:
             ref = 'None'
         Database(table_name='user_db').insert_db(values=[
             '{}'.format(message.chat.id),  #telegram_id=
             '"{}"'.format(message.chat.username),  #username
             '"None"',  #pass=
             '******'.format(
                 datetime.strftime(datetime.now(),
                                   "%Y-%m-%d %H:%M:%S")),  #pass_time
             '0',  #pass_count=
             '0',  #role=
             '0',  #dep_status=
             '"0"',  #dep_balance=
             '"0"',  #dept_bet=
             '"{}"'.format(r"https://t.me/bukmekertest_bot?start=" +
                           str(message.chat.id)),  #ref_link=
             '"{}"'.format(ref),  #ref_acc=
             '0',  #ref_count=
             '"{}"'.format(
                 datetime.strftime(datetime.now(),
                                   "%Y-%m-%d %H:%M:%S")),  #reg_time=
             '"{}"'.format(
                 datetime.strftime(datetime.now(),
                                   "%Y-%m-%d %H:%M:%S")),  #last_mes_time=
             '0',  #last_mes_bot_id=
             '0',  #last_mes_bot_inline_id=
             '0',  #last_mes_user_id=
             '2',  #fsm_code=
             '0',  #fsm_wait=
             '"None"'  #fsm_param=
         ])
     self.register_0(message)
Example #14
0
 def referal_2(self, message, callback_id, callback_data):
     if callback_data == None:
         if message.text.find('=') != -1:
             ref = message.text.split('=')[1]
             keyboard = self.kb_inline()
             callback_button = self.btn_inline(
                 text="подтвердить", callback_data="11, 0, {}".format(ref))
             keyboard.add(callback_button)
             user_db = Database(table_name='user_db').select_db(
                 '*', 'where telegram_id = {}'.format(message.chat.id))
             if user_db['available'] != 0:
                 self.bot.send_message(
                     chat_id=message.chat.id,
                     text=
                     'пользователь, рефералом которого вы являетесь: {} \nесли всё верно - нажмите кнопку "подтвердить"\nв случае ошибки нажмите "отмена"'
                     .format(user_db['result'][0]['username']),
                     reply_markup=keyboard)
                 self.fsm_db(message, 10, 0, ref)
             else:
                 self.bot.send_message(chat_id=message.chat.id,
                                       text='такой пользователь не найден')
                 self.home(message, callback_id, callback_data)
Example #15
0
    def register_0(self, message, callback_id=None, callback_data=None):
        keyboard_inline = self.kb_inline()
        callback_button_register = self.btn_inline(text="регистрация",
                                                   callback_data="3, 0, None")
        callback_button_demo = self.btn_inline(text="ДЕМО счёт",
                                               callback_data="1, 0, None")
        keyboard_inline.add(callback_button_register, callback_button_demo)
        keyboard_reply = self.kb_reply(resize_keyboard=True)
        keyboard_reply.add('домой', 'отмена')

        self.send_message(message, 'добро пожаловать в систему!',
                          keyboard_reply)

        msg = self.bot.send_message(
            chat_id=message.chat.id,
            text=
            'хотите открыть основной счёт? \nили потренероваться на ДЕМО счёте?',
            reply_markup=keyboard_inline)
        Database(table_name='user_db').update_db(
            'last_mes_bot_inline_id', '"{}"'.format(msg.message_id),
            'where telegram_id = {}'.format(message.chat.id))
        self.fsm_db(message, 2, 0, 'None')
Example #16
0
import telebot  #весь api tlgrm bot
from db_processor import Database  #самописный модуль
import threading  #многопоточность
import time  #работа со временем
import json
from fsm import Fsm
from datetime import datetime
from pprint import pprint, pformat

bot = telebot.TeleBot('1294566396:AAFB5aer0PWXnVhPHSr0CFX1pElg8t5UCHs')

while True:
    start = time.time()
    update_mes = Database(table_name='update_mes').select_db('*')
    if update_mes['available'] != 0:
        print(len(update_mes['result']))
        for i in range(len(update_mes['result'])):
            print(i)
            bot.edit_message_text(
                chat_id=update_mes['result'][i]['telegram_id'],
                message_id=update_mes['result'][i]['mes_id'],
                text=datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S"))
    time.sleep(5 - (time.time() - start))