from aiogram.exceptions import TelegramBadRequest from aiogram.types import Message from config import config async def handle_promote_command(message: Message) -> None: title = message.text.replace('/t', '').strip() if not config.is_feature_enabled('promote', message.chat.id): return if message.chat.type not in ['group', 'supergroup']: return try: if not message.reply_to_message: await message.reply('咱不知道给谁头衔呢') return if not title: await message.reply('咱不知道给什么头衔呢') return else: member = await message.chat.get_member(message.reply_to_message.from_user.id) if len(title) > 16: await message.reply('头衔太长了,咱设置不了') return if member.status == 'creator': await message.reply('咱不能给群主设置头衔') return if not member.status in ['administrator','creator']: await message.chat.promote(message.reply_to_message.from_user.id,can_manage_chat=True) await message.chat.set_administrator_custom_title(message.reply_to_message.from_user.id,title) await message.reply( f'{message.from_user.mention_html()} 把 {message.reply_to_message.from_user.mention_html()} 变成了 {title}!', parse_mode='HTML') elif member.status == 'administrator' and member.can_be_edited: await message.chat.set_administrator_custom_title(message.reply_to_message.from_user.id,title) await message.reply( f'{message.from_user.mention_html()} 把 {message.reply_to_message.from_user.mention_html()} 变成了 {title}!', parse_mode='HTML') else: await message.reply('咱不能给这个人设置头衔,可能是因为ta已经被其它管理员设置了头衔') return except TelegramBadRequest as e: await message.reply(f'因为咱没有添加新的管理员的权限,咱没办法设置头衔') return except Exception as e: await message.reply(f'发生了错误: {str(e)}') return