import html from pyrogram import Client, filters from .. import config, help_dict, log_errors, public_log_errors, get_entity ZWS = '\u200B' FORCE_LTR = '\u200E' def _generate_sexy(entity, ping, is_creator): text = entity.first_name if entity.last_name: text += f' {entity.last_name}' sexy_text = '[DELETED]' if entity.is_deleted else (html.escape(text or 'Empty???') + FORCE_LTR) if not entity.is_deleted: if ping: sexy_text = f'{sexy_text}' elif entity.username: sexy_text = f'{sexy_text}' elif not ping: sexy_text = sexy_text.replace('@', f'@{ZWS}') if entity.is_bot: sexy_text += ' [BOT]' if entity.is_verified: sexy_text += ' [VERIFIED]' if entity.is_support: sexy_text += ' [SUPPORT]' if entity.is_scam: sexy_text += ' [SCAM]' if getattr(entity, 'is_fake', None): sexy_text += ' [FAKE]' if is_creator: sexy_text += ' [CREATOR]' return sexy_text @Client.on_message(~filters.scheduled & ~filters.forwarded & ~filters.sticker & ~filters.via_bot & ~filters.edited & filters.me & filters.command(['admin', 'admins'], prefixes=config['config']['prefixes'])) @log_errors @public_log_errors async def admins(client, message): chat, entity_client = message.chat, client command = message.command command.pop(0) if command: chat = ' '.join(command) try: chat = int(chat) except ValueError: pass chat, entity_client = await get_entity(client, chat) text_unping = text_ping = '' async for i in entity_client.iter_chat_members(chat.id, filter='administrators'): text_unping += f'\n[{i.user.id}] {_generate_sexy(i.user, False, i.status == "creator")}' text_ping += f'\n[{i.user.id}] {_generate_sexy(i.user, True, i.status == "creator")}' if i.title: text_unping += f' // {html.escape(i.title.replace("@", "@" + ZWS))}' text_ping += f' // {html.escape(i.title)}' reply = await message.reply_text(text_unping, disable_web_page_preview=True) await reply.edit_text(text_ping, disable_web_page_preview=True) help_dict['admins'] = ('Admins', '''{prefix}admins [chat] - Lists the admins in [chat] Aliases: {prefix}admin''')