import logging from src.model import MumbleBot from src.service.MumbleBotService import MumbleBotService _logger = logging.getLogger(__name__) class MumbleController: @staticmethod def message_received(bot_info: MumbleBot, message_info): user_id = message_info.actor if user_id == 0: return username = bot_info.get_username_by_id(user_id) is_admin = bot_info.is_admin(username) message = message_info.message.strip() print(f"{username} {('', '(админ бота)')[is_admin]} прислал сообщение: {message}") _logger.info(f"{username} {('', '(админ бота)')[is_admin]} прислал сообщение: {message}") match message: case '!help': message = ' ' for x in bot_info.config.config['Command user']: message = message + '

' + bot_info.config.config['Command user'][x] + '

' if is_admin: for x in bot_info.config.config['Command admin']: message = message + '

' + bot_info.config.config['Command admin'][x] + '

' bot_info.get_user_by_id(user_id).send_text_message(message) case '!users': if is_admin: message = '

Список пользователей:

' users = bot_info.get_userlist() for user in users: message = message + '

' + user['name'] + '

' bot_info.get_user_by_id(user_id).send_text_message(message) case '!initchannels': MumbleBotService.init_channels(bot_info) message = 'Каналы обновлены' bot_info.get_user_by_id(user_id).send_text_message(message) case 'test': print('тестовая команда') MumbleBotService.test(bot_info.bot, message_info) case _: bot_info.get_user_by_id(user_id).send_text_message(message) @staticmethod def user_change_channel(bot_info: MumbleBot, user, action): if 'channel_id' in user: # колбэк вызывается также включением/выключением микрофона у пользователя, тут стоит фильтр "Только переходы по каналам" MumbleBotService.user_change_channel(bot_info, user, action)