diff --git a/inline_query.py b/inline_query.py index a71bc11..6244e59 100644 --- a/inline_query.py +++ b/inline_query.py @@ -1,10 +1,17 @@ from uuid import uuid4 -from telegram import Update, InlineKeyboardButton, InlineQueryResultArticle, InputTextMessageContent, \ - InlineKeyboardMarkup, LinkPreviewOptions +from telegram import ( + Update, + InlineKeyboardButton, + InlineQueryResultArticle, + InputTextMessageContent, + InlineKeyboardMarkup, + LinkPreviewOptions, +) from telegram.constants import ParseMode from telegram.ext import ContextTypes +import html_parser from config import * from extensions import humanize_tags_from_json, format_rating, get_json @@ -28,22 +35,29 @@ async def inline_query(update: Update, context: ContextTypes.DEFAULT_TYPE) -> No async def answer_query(update: Update, query: str, data) -> None: - characters = humanize_tags_from_json(data['tag_string_character'], "no characters") - copyrights = humanize_tags_from_json(data['tag_string_copyright'], "unknown copyright") - artists = humanize_tags_from_json(data['tag_string_artist'], "unknown artist") - rating = format_rating(data['rating']) + characters = humanize_tags_from_json(data["tag_string_character"], "no characters") + copyrights = humanize_tags_from_json( + data["tag_string_copyright"], "unknown copyright" + ) + artists = humanize_tags_from_json(data["tag_string_artist"], "unknown artist") + rating = format_rating(data["rating"]) - if data['is_banned']: + if data["is_banned"]: results = [ InlineQueryResultArticle( id=str(uuid4()), title=f"ID: {query}", description=f"{characters} ({copyrights}) drawn by {artists}", input_message_content=InputTextMessageContent( - f"#{query} {characters} ({copyrights}) drawn by {artists} {rating}\n" - f"This post has been removed because of a takedown request or rule violation.", - parse_mode=ParseMode.HTML - ) + html_parser.code(f"#{query}") + + html_parser.strikethrough( + f" {html_parser.bold(f"{characters} ({copyrights})")}" + f"drawn by {html_parser.bold(artists)}" + ) + + rating + + "\nThis post has been removed because of a takedown request or rule violation.", + parse_mode=ParseMode.HTML, + ), ) ] @@ -52,9 +66,10 @@ async def answer_query(update: Update, query: str, data) -> None: keyboard = [ [ - InlineKeyboardButton(f"Open in {app.name}", - url=f"http://{app.hostname}/posts/{query}"), - InlineKeyboardButton("View original", url=data['file_url']) + InlineKeyboardButton( + f"Open in {app.name}", url=f"http://{app.hostname}/posts/{query}" + ), + InlineKeyboardButton("View original", url=data["file_url"]), ] ] @@ -63,13 +78,14 @@ async def answer_query(update: Update, query: str, data) -> None: id=str(uuid4()), title=f"ID: {query}", description=f"{characters} ({copyrights}) drawn by {artists}", - thumbnail_url=data['preview_file_url'], + thumbnail_url=data["preview_file_url"], input_message_content=InputTextMessageContent( - f"#{query} {characters} ({copyrights}) drawn by {artists} {rating}", + html_parser.code(f"#{query}") + + f" {html_parser.bold(f"{characters} ({copyrights})")} drawn by {html_parser.bold(artists)} {rating}", parse_mode=ParseMode.HTML, - link_preview_options=LinkPreviewOptions(url=data['large_file_url']) + link_preview_options=LinkPreviewOptions(url=data["large_file_url"]), ), - reply_markup=InlineKeyboardMarkup(keyboard) + reply_markup=InlineKeyboardMarkup(keyboard), ) ] @@ -83,10 +99,9 @@ async def invalid_query(update: Update, query: str) -> None: title=f"ID: {query}", description="Error", input_message_content=InputTextMessageContent( - f"#{query}\n" - f"That record was not found.", - parse_mode=ParseMode.HTML - ) + html_parser.code(f"#{query}") + "That record was not found.", + parse_mode=ParseMode.HTML, + ), ) ]