def db_queries(message):
    chat_id = str(message.from_user.id)
    change_session_status(chat_id, 'RD')
    bot.send_message(chat_id,
                     'Выбери запрос (RD)',
                     reply_markup=db_queries_keyboard())
    pass
def send_request(message):
    transaction_dict = {
        'Общая информация по товарам': general_product_request(),
        'Общая информация по пользователям': general_user_request()
    }
    chat_id = str(message.from_user.id)
    message_text = str(message.text)

    if message_text in transaction_dict.keys():
        result = transaction_dict[message_text]
        change_session_status(chat_id, '')
        bot.send_message(chat_id, result, reply_markup=main_keyboard(message))
    else:
        change_session_status(chat_id, 'CANC')
        bot.send_message(chat_id,
                         'Отмена (RD)',
                         reply_markup=main_keyboard(message))
def qr_code_registration(message, qr_code, action):
    chat_id = message.chat.id
    if action == 'Зарегистрировать продажу':
        sale_registration(qr_code)
        bot.send_message(chat_id,
                         'Продажа зарегистрирована, спасибо, секси:)',
                         reply_markup=main_keyboard(message))
    elif action == 'Показать информацию':
        product_info = qr_code_check(qr_code)
        product_info = [i for i in product_info[0]]
        bot.send_message(chat_id, f'ID: {product_info[0]}\n'
                         f'Name: {product_info[2]}\n'
                         f'PPrice: {product_info[3]}\n'
                         f'SPrice: {product_info[4]}\n'
                         f'Status: {product_info[5]}',
                         reply_markup=main_keyboard(message))
    change_session_status(chat_id, 'CANC')
    pass
Example #4
0
def change_info(message, code, data):
    transaction_dict = {
        'Никнейм': 'name',
        'Телефон': 'contact',
        'Пароль': 'password'
    }
    chat_id = str(message.from_user.id)
    message_text = str(message.text)

    if message_text in transaction_dict.keys():
        change_session_status(chat_id, '-' + transaction_dict[message_text])
        bot.send_message(chat_id,
                         f'Введите новый {message_text.lower()}',
                         reply_markup=remove_keyboard())
    elif 'PE-' in code and ('name' or 'contact' or 'password' in code):
        code = code.split('-')[1]

        change_session_status(chat_id, 'CANC')
        change_user_inf(chat_id, code, data)
        bot.send_message(chat_id,
                         'Изменения внесены',
                         reply_markup=main_keyboard(message))

    else:
        change_session_status(chat_id, 'CANC')
        bot.send_message(chat_id,
                         'Отмена изменений',
                         reply_markup=main_keyboard(message))

    pass
def QR_code_decryption(message):
    chat_id = message.chat.id
    bot.send_message(chat_id, 'Получил фото.')
    qr_code_pic = download_photo(message)
    answer = decrypt(qr_code_pic)

    if answer == 'Код не распознан.':
        bot.send_message(chat_id, answer)
        return False
    else:
        answer = answer.split()[0]
        if qr_code_check(answer):
            bot.send_message(chat_id,
                             'Код распознан, выбери действие:',
                             reply_markup=qr_code_keyboard())
            change_session_status(chat_id, 'QR', user_data='', qr_code=answer)
        else:
            bot.send_message(
                chat_id,
                f'В базе данных отсутствует информация по этому коду:\n'
                f'{answer}',
                reply_markup=main_keyboard(message))
            change_session_status(chat_id, 'CANC')
        return answer
Example #6
0
def profile_editing(message):
    chat_id = str(message.from_user.id)
    change_session_status(chat_id, 'PE')
    bot.send_message(chat_id,
                     'Что меняем? (PE)',
                     reply_markup=profile_editing_keyboard())
Example #7
0
def message_replier(messages):
    for message in messages:
        chat_id = str(message.from_user.id)
        user_name = str(message.chat.first_name)
        access_level = main_user_info(chat_id)['admitt_level']
        change_session_status(chat_id=chat_id, user_data=message.text)
        session_status = get_session_status(chat_id)

        # Проверка, имеет ли пользователь доступ к боту
        if chat_id not in USER_IDS:
            access_denieded(message)
            return

        main_keyboard(message)

        if message.text in ('/start', '/help'):
            info(message)
            return

        # Функции бота при выборе с главной клавиатуры с проверкой уровня доступа
        if message.text == 'Помощь' and access_level in [
                'demo', 'seller', 'user', 'admin', 'creator'
        ]:
            message.text = '/help'
            info(message)
            return

        if message.text == 'Контакты' and access_level in [
                'demo', 'seller', 'user', 'admin', 'creator'
        ]:
            contacts(message)
            return

        if message.text == 'Редактировать профиль' and access_level in [
                'seller', 'user', 'admin', 'creator'
        ]:
            profile_editing(message)
            return

        if message.text == 'Запросы из БД' and access_level in [
                'user', 'admin', 'creator'
        ]:
            db_queries(message)
            return

        if message.text == 'Редактировать БД' and access_level in [
                'admin', 'creator'
        ]:
            pass

        if message.text == 'Секретные возможности создателя' and access_level in [
                'creator'
        ]:
            pass

        # Если пользователь прислал фото
        # if message.content_type == 'photo' and access_level in ['seller', 'user', 'admin', 'creator']:
        #     decrypted_code = QR_code_decryption(message)
        #     return

        # Если пользователь в процессе получения/изменения хронимых данных
        if session_status[0]:
            if 'PE' in session_status[0]:
                change_info(message, session_status[0], session_status[1])
                return
            # elif 'QR' in session_status[0]:
            #     qr_code_registration(message, action=session_status[1], qr_code=session_status[2])
            elif 'RD' in session_status[0]:
                send_request(message)
        # Когда ни один вариант не подходит отвечаем ЭХО-сообщением
        else:
            echo(message)
            return