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
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
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())
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