import html from pyrogram import Client, filters from ... import session, log_errors, public_log_errors PRETTY_TAG_NAMES = { 'tag': 'Tags', 'artist': 'Artists', 'parody': 'Parodies', 'character': 'Characters', 'group': 'Groups', 'language': 'Languages', 'category': 'Categories' } @Client.on_message(~filters.sticker & filters.chat(-1001150433131) & filters.linked_channel) @log_errors @public_log_errors async def nhentai_comment_info(client, message): sent = set() text = message.text or message.caption or '' for i in text.split('\n'): for sauce in i.split(' '): if sauce.isnumeric() and sauce not in sent: sent.add(sauce) async with session.get(f'https://nhentai.net/api/gallery/{sauce}') as resp: info = await resp.json() text = f'{sauce}\n' if 'error' in info: text += f'Error: {html.escape(info.get("error") or "None")}' else: text += 'Title: ' if info['title']['english']: text += html.escape(info['title']['english']) if info['title']['japanese']: text += '\nJapanese Title: ' if info['title']['japanese']: text += html.escape(info['title']['japanese']) tags = dict() for i in info['tags']: if i['type'] not in tags: tags[i['type']] = [] tags[i['type']].append(i['name']) for i in sorted(tags): text += f'\n{PRETTY_TAG_NAMES.get(i, i)}: {html.escape(", ".join(tags[i]))}' text += f'\nPages: {info["num_pages"]}' await message.reply_text(text, disable_web_page_preview=True)