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)