def handle_start_help(message, session, user): """Обработка /start /help команд Необходимо менять help_str - приветсвие бота. При желании можно отделить help. Незарегистрированные пользователи перенаправлются регистрироваться. Текущий вариант предусматривает автоматическое заполнение admin_id. Логика: первый отправивший /start (/help) и становиться админом : ) Алгоритм: если admin_id пустой, то id написавшего пользователя и становиться admin_id ВНИМАНИЕ! После автозаполнения admin_id требуется перезапуск бота. Чтобы считать admin_id заново. @! пофиксить """ global admin_id help_str = '''Добро пожаловать. Этот бот поможет вам организовать "Тайного Санту" и поучаствовать в игре самому.''' #Ниже заполнение пустого admin_id if not admin_id: admin_id = str(message.from_user.id) config['BASE']['Admin_id'] = admin_id with open(config_file, 'w') as configfile: config.write(configfile) bot.send_message(message.chat.id, help_str) #Редирект незарегенного пользователя на регистрацию. if not (user.registrationDone): register_flow(bot, message, session)
def handle_start_help(message): """Обработка /start /help команд Необходимо менять help_str - приветсвие бота. При желании можно отделить help. Незарегистрированные пользователи перенаправлются регистрироваться. Текущий вариант предусматривает автоматическое заполнение admin_id. Логика: первый отправивший /start (/help) и становиться админом : ) Алгоритм: если admin_id пустой, то id написавшего пользователя и становиться admin_id ВНИМАНИЕ! После автозаполнения admin_id требуется перезапуск бота. Чтобы считать admin_id заново. @! пофиксить """ global admin_id db_connector.save_to_log('user', message) help_str = '''Добро пожаловать. Здесь можн проходить квесты - приключения в реальности. Выбирите себе квест и наслаждайтесь.''' #Ниже заполнение пустого admin_id if not admin_id: admin_id = str(message.from_user.id) config['BASE']['Admin_id'] = admin_id with open(config_file, 'w') as configfile: config.write(configfile) bot.send_message(message.chat.id, help_str) #Редирект незарегенного пользователя на регистрацию. if not (db_connector.is_user_registered(message.from_user.id)): register_flow(bot, message)
def handle_register(message): """Обработка регистарции пользователя. Ссылается на модуль, в котором реализована регистрация пользователя. Перехватывает все сообщения незарегистрированного пользователя. По результатам в таблице users у пользователя должна быть RegistrationDone==1 По умолчанию менять не надо, детали смотри в registration.py """ db_connector.save_to_log('user', message) register_flow(bot, message)
def routing(message): session = DBSession() try: user = session.query(User).filter_by( telegramid=message.from_user.id).first() if not user: user = User(telegramid=message.from_user.id) session.add(user) user.operation = Operation() session.commit() if user.operation is None: user.operation = Operation() session.commit() db_connector.save_to_log( from_who='user', message=message) # Сохранение входящего сообщения в БД. text = utils.text_lower_wo_command(message) if not user.active: bot.send_message(message.chat.id, 'Вы заблокированы.') elif text in ('start', 'help'): handle_start_help(message, session, user) elif not user.registrationDone or user.operation.current_operation == opRegister: register_flow(bot, message, session) elif text in admin_functions.admin_commands: #Для правильной работы необходим заполненный admin_id в config admin_functions.admin_flow(bot, message, session) elif text in standard.create_group or user.operation.current_operation == create_group.opGroup: create_group.route_flow(bot, message, session) elif text in standard.find_group or user.operation.current_operation == join_group.opGroup: join_group.route_flow(bot, message, session) else: not_found(message) session.commit() except Exception as e: session.rollback() raise e finally: session.close()