def new_percent(message): io_manager = buffer.get_buffer(message.chat.id) if check_user(message.chat.id): chat_id = message.chat.id if message.text == "В главное меню": handler_start(message) return elif message.text == "Администрирование": manage_admins(message) return elif (io_manager.is_int(message.text) == True): if (int(message.text) >= 0) & (int(message.text) <= 10): percent = message.text else: mes1 = bot.send_message(chat_id, "Процент не должен быть выше 10.\nВведите корректный процент") bot.register_next_step_handler(mes1, new_percent) return if io_manager.update_percent(int(message.text)) is True: bot.send_message(chat_id, "Процент изменен.\nНовый процент: " + str(percent)) handler_start(message) log.info_logs(str(message.chat.id) + " set percent to " + str(percent)) else: bot.send_message(chat_id, "Процент должен быть числом") bot.register_next_step_handler(message, new_percent) else: bot.send_message(message.chat.id, "У вас нет прав заходить сюда")
def manage_admins(message): global print_admins io_manager = buffer.get_buffer(message.chat.id) ad.reload_admin_list() # print(ad.admins.encode('UTF-8')) if ad.admins == {}: print_admins = "Список администраторов пуст!" else: print_admins = "Список администраторов:\nАдминистратор | ID\n\n" for i in ad.admins: print_admins += str(i) + " | " + str(ad.admins.get(i)) + "\n" try: # Главный админ if (check_user(message.chat.id) & (ad.check_main_admins(message.chat.id)) & (io_manager != None)): bot.send_message(message.chat.id, text=print_admins, reply_markup=m.markup_manage_admins) elif io_manager == None: bot.send_message(message.chat.id, "Бот не запущен") start_handler(message) else: bot.send_message(message.chat.id, "У вас нет прав заходить сюда") except: log.error_logs("Error in the administrator definition:" + str(message.chat.id)) bot.send_message(message.chat.id, "Ошибка в определении администратора")
def start_handler(message): io_manager = io() buffer.set_buffer(message.chat.id, io_manager) ad.reload_admin_list() if check_user(message.chat.id): log.info_logs("User - " + str(message.chat.id) + " was authorized") if ad.check_main_admins(message.chat.id) == True: bot.send_message(message.chat.id, "Запуск бота", reply_markup=m.first_markup_main_admin) else: bot.send_message(message.chat.id, "Запуск бота", reply_markup=m.first_markup) handler_start(message) else: buffer.del_buffer(message.chat.id) bot.send_message(message.chat.id, "У вас нет прав заходить сюда. \nСообщите администратору ваш ID = " + str(message.chat.id), reply_markup=m.markup_delete)
def handle_message(message): global usage_number, input_number io_manager = buffer.get_buffer(message.chat.id) chat_id = message.chat.id if check_user(message.chat.id): if message.text == "В главное меню": input_number = "" handler_start(message) return elif message.text == "Администрирование": input_number = "" manage_admins(message) return try: text = message.text if usage_number != "": text = usage_number usage_number = "" number = text str_number = io_manager.number_processing(number) io_manager.get_information_request(str_number) if io_manager.error_request == False: log.info_logs(str(message.chat.id) + " requested information about the number: " + io_manager.number) bot.send_message(chat_id, "Информация о клиенте:\n" + "\U00002796"*9 + "\n\U0001F464Имя: " + io_manager.name + "\n\U0000260EНомер: " + io_manager.number + "\n\U0001F4B0Баланс: " + str(io_manager.point), reply_markup=m.markup_change_points) else: if (int(message.text) >= 79000000000) & (int(message.text) <= 89999999999): bot.send_message(chat_id, "Номер " + number + " не зарегистрирован", reply_markup=m.markup_in_number) input_number = number else: msg = bot.send_message(chat_id, "Номер введен некорректно. Повторите ввод номера") bot.register_next_step_handler(msg, handle_message) except: log.error_logs("Error in handler_message" + str(chat_id) + "|" + message.text) msg1 = bot.send_message(chat_id, "Номер введен некорректно. Повторите ввод номера") bot.register_next_step_handler(msg1, handle_message) return else: bot.send_message(message.chat.id, "У вас нет прав заходить сюда")
def handler_start(message): global check_history, check_sub_points, check_add_points, regs check_add_points = False check_sub_points = False check_history = False regs = False io_manager = buffer.get_buffer(message.chat.id) if ((check_user(message.chat.id)) & (io_manager != None)): chat_id = message.chat.id # console("В главное меню", message) bot.send_message(chat_id, '\U0001F44BПривет, ' + ad.get_admin_name(message.chat.id) + '\U0001F44B \n' 'Тебя приветствует кэш-бэк сервис - ********\nСейчас процент: ' + str(io_manager.get_percent()), reply_markup=m.markup_change_proc) elif io_manager == None: bot.send_message(message.chat.id, "Бот не запущен!") start_handler(message) else: bot.send_message(message.chat.id, "У вас нет прав заходить сюда")
def registrations_main(message): global usage_number, regs, name, points, number, input_number, error_points io_manager = buffer.get_buffer(message.chat.id) if check_user(message.chat.id): if regs == False: log.info_logs(str(ad.get_admin_name) + " started registration") if message.text == "В главное меню": start_handler(message) regs = False return elif message.text == "Администрирование": manage_admins(message) regs = False return if regs == False: clear_registration() regs = True try: if input_number != "": number = input_number name = message.text input_number = "" next = bot.send_message(message.chat.id, "Введите сумму") bot.register_next_step_handler(next, registrations_main) return if (name != ""): if (number != ""): if (int(message.text) >= 79000000000) & (int(message.text) <= 89999999999): msg1 = bot.send_message(message.chat.id, "Введено слишком больше число!\nПовторите ввод") bot.register_next_step_handler(msg1, registrations_main) error_points = True else: error_points = False points = points_value(int(message.text), io_manager.percent) # Отправляем данные в базу данных log.info_logs("Set amount: " + str(message.text) + " Points: " + str(points)) str_number = io_manager.number_processing(number) add_id = 1 if io_manager.set_information_for_registration(str_number, name, points, add_id) is True: # # Создание пользовательской таблицы и забивание времени # io_manager.create_user_table(str_number) # Записываем дату, время, баллы в таблицу индификатор которой время io_manager.set_information_in_history(add_id, str_number, str( datetime.datetime.fromtimestamp(message.date).strftime('%d.%m.%Y')), str( datetime.datetime.fromtimestamp(message.date).strftime('%H:%M:%S')), points) bot.send_message(message.chat.id, "Успешно!\n\nИмя: " + name + "\nНомер: " + str(number) + "\nБаллов: " + str(points) + "\n\nТекущий процент: " + str(io_manager.percent)) log.info_logs("Writing is successful") regs = False except: log.error_logs("Error of registration: " + str(name) + "|" + str(number) + "|" + str(points)) bot.send_message(message.chat.id, "Ошибка регистрации") regs = False try: if (name != ''): if (regs is True): if(error_points is False): str_number = io_manager.number_processing(message.text) if io_manager.check_number(str_number) is False: bot.send_message(message.chat.id, "Уже зарегистрирован") usage_number = message.text handle_message(message) return if (int(message.text) >= 79000000000) & (int(message.text) <= 89999999999): in_number(message.text) log.info_logs("Entered number: " + message.text) next_steep = bot.send_message(message.chat.id, "Введите сумму") bot.register_next_step_handler(next_steep, registrations_main) else: log.info_logs("Number is not correct: " + message.text) msg1 = bot.send_message(message.chat.id, "Номер введен некорректно. Повторите ввод номера") bot.register_next_step_handler(msg1, registrations_main) return except: log.error_logs("Error in entered number") pause = bot.send_message(message.chat.id, "Повторите ввод номера") bot.register_next_step_handler(pause, registrations_main) e = sys.exc_info()[1] logs.error_logs(str(e)) try: if (number == ''): if (regs is True): in_name(message.text) next_steep = bot.send_message(message.chat.id, "Введите номер телефона \nв формате 7---------- или 8----------") log.info_logs("Entered name: " + message.text) bot.register_next_step_handler(next_steep, registrations_main) except: log.error_logs("Error of input name") pause = bot.send_message(message.chat.id, "Повторите ввод имени") bot.register_next_step_handler(pause, registrations_main) else: bot.send_message(message.chat.id, "У вас нет прав заходить сюда")
def callback_key(call): # Глобальные переменнеые нужно убирать, с ними работать не будет global print_admins, check_history, check_sub_points, check_add_points if check_user(call.message.chat.id): chat_id = call.message.chat.id message_id = call.message.message_id io_manager = buffer.get_buffer(chat_id) if io_manager == None: bot.send_message(chat_id, "Бот не запущен") start_handler(call.message) return # Добавление админа if ((call.data == "add_admin") & (ad.check_main_admins(chat_id))): name_new_admin = bot.edit_message_text("Введите имя нового администратора", call.message.chat.id, call.message.message_id) bot.register_next_step_handler(name_new_admin, add_admin_name) # Удаление админа if call.data == "delete_admin": name_delete_admin = bot.edit_message_text( "Введите имя администратора, которого хотите удалить.\n" + print_admins, call.message.chat.id, call.message.message_id) bot.register_next_step_handler(name_delete_admin, delete_admin_name) #Нажатие на кнопку "Изменить процент" if call.data == "change_proc": try: msg19 = bot.edit_message_text("Введите процент не превышающий 10", call.message.chat.id, call.message.message_id) bot.register_next_step_handler(msg19, new_percent) except: log.error_logs("Error of button сhange_proc") return #Нажатие на кнопку "Ввести номер" if call.data == "input_number": try: mess = bot.edit_message_text("Введите номер телефона \nв формате 7---------- или 8----------", chat_id, message_id) bot.register_next_step_handler(mess, handle_message) except: log.error_logs("Error in button input_number") return #Нажатие на кнопку "Регистрация" if call.data == "reg": try: mag1 = bot.edit_message_text("Введите имя", chat_id, message_id) bot.register_next_step_handler(mag1, registrations_main) except: log.error_logs("Error in button reg") return # Обработка кнопки показа последних действий if call.data == "history": try: msg13 = bot.edit_message_text("Введите количество операций не превышающих " + str(io_manager.add_id), call.message.chat.id, call.message.message_id, reply_markup=m.markup_back_to_info) if (check_history == False): bot.register_next_step_handler(msg13, history) check_history = False except: log.error_logs("Error in button history") #Нажатие на кнопку "Добавить" if call.data == "add_points": try: msg2 = bot.edit_message_text("Введите сумму покупки", chat_id, message_id, reply_markup=m.markup_back_to_info) if (check_add_points == False): bot.register_next_step_handler(msg2, add_points_two) check_add_points = False except: log.error_logs("Error in button add_point") #Нажатие на кнопку "Списать" if call.data == "sub_points": try: msg3 = bot.edit_message_text( "Введите количество списываемых баллов не превышающих: " + str(io_manager.point), chat_id, message_id, reply_markup=m.markup_back_to_info) if (check_sub_points == False): bot.register_next_step_handler(msg3, sub_points) check_sub_points = False except: log.error_logs("Error in button sub_points") #Нажатие на кнопку "Назад" if call.data == "back_to_info": bot.send_message(chat_id, "Информация о клиенте:\n\n" + "Имя: " + io_manager.name + "\nНомер: " + io_manager.number + "\nБаланс: " + str(io_manager.point), reply_markup=m.markup_change_points) check_history = True check_add_points = True check_sub_points = True bot.delete_message(chat_id, message_id) #Нажатие на кнопку "К информации о номере" if call.data == "to_info": bot.send_message(chat_id, "Информация о клиенте:\n\n" + "Имя: " + io_manager.name + "\nНомер: " + io_manager.number + "\nБаланс: " + str(io_manager.point), reply_markup=m.markup_change_points) bot.delete_message(chat_id, message_id) else: bot.send_message(call.message.chat.id, "У вас нет прав заходить сюда")