From 28df00e34fae0f338f54451abeeced3b220a4d8f Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sat, 7 Jun 2025 20:43:04 +0300 Subject: [PATCH 1/3] fix: rewrite message contents in inline_query.py closes #3 Signed-off-by: mctaylors --- inline_query.py | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/inline_query.py b/inline_query.py index e6acf7e..0e17a5b 100644 --- a/inline_query.py +++ b/inline_query.py @@ -48,13 +48,24 @@ async def answer_query(update: Update, query: str, data) -> None: title=f"ID: {query}", description=f"{characters} ({copyrights}) drawn by {artists}", input_message_content=InputTextMessageContent( - 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.", + " ".join( + [ + html_parser.code(f"#{query}"), + html_parser.strikethrough( + " ".join( + [ + html_parser.bold( + f"{characters} ({copyrights})" + ), + "drawn by", + html_parser.bold(artists), + ] + ) + ), + rating, + "\nThis post has been removed because of a takedown request or rule violation.", + ] + ), parse_mode=ParseMode.HTML, ), ) @@ -80,8 +91,15 @@ async def answer_query(update: Update, query: str, data) -> None: description=f"{characters} ({copyrights}) drawn by {artists}", thumbnail_url=data["preview_file_url"], input_message_content=InputTextMessageContent( - html_parser.code(f"#{query}") - + f" {html_parser.bold(f"{characters} ({copyrights})")} drawn by {html_parser.bold(artists)} {rating}", + " ".join( + [ + html_parser.code(f"#{query}"), + 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"]), ), @@ -99,7 +117,7 @@ async def invalid_query(update: Update, query: str) -> None: title=f"ID: {query}", description="Error", input_message_content=InputTextMessageContent( - html_parser.code(f"#{query}") + "That record was not found.", + " ".join([html_parser.code(f"#{query}"), "That record was not found."]), parse_mode=ParseMode.HTML, ), ) From 8568d788db826d4c8a6ded4df3b1b1deb92f379d Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sat, 7 Jun 2025 20:56:03 +0300 Subject: [PATCH 2/3] feat: show rating on inline query this commit also updates all query result titles Signed-off-by: mctaylors --- inline_query.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inline_query.py b/inline_query.py index 0e17a5b..f2ec2cd 100644 --- a/inline_query.py +++ b/inline_query.py @@ -45,7 +45,7 @@ async def answer_query(update: Update, query: str, data) -> None: results = [ InlineQueryResultArticle( id=str(uuid4()), - title=f"ID: {query}", + title=f"#{query} {rating}", description=f"{characters} ({copyrights}) drawn by {artists}", input_message_content=InputTextMessageContent( " ".join( @@ -87,7 +87,7 @@ async def answer_query(update: Update, query: str, data) -> None: results = [ InlineQueryResultArticle( id=str(uuid4()), - title=f"ID: {query}", + title=f"#{query} {rating}", description=f"{characters} ({copyrights}) drawn by {artists}", thumbnail_url=data["preview_file_url"], input_message_content=InputTextMessageContent( @@ -114,7 +114,7 @@ async def invalid_query(update: Update, query: str) -> None: results = [ InlineQueryResultArticle( id=str(uuid4()), - title=f"ID: {query}", + title=f"#{query}", description="Error", input_message_content=InputTextMessageContent( " ".join([html_parser.code(f"#{query}"), "That record was not found."]), From fff77f51f8534d214ca13ef18aa4307bfc614ccb Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sat, 7 Jun 2025 20:58:01 +0300 Subject: [PATCH 3/3] fix: do not search for posts below or equal to ID 0 Signed-off-by: mctaylors --- inline_query.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/inline_query.py b/inline_query.py index f2ec2cd..a3d867b 100644 --- a/inline_query.py +++ b/inline_query.py @@ -24,6 +24,10 @@ async def inline_query(update: Update, context: ContextTypes.DEFAULT_TYPE) -> No if not query.isdigit(): return + query = int(query) + + if query <= 0: + return data = get_json(f"posts/{query}") if data is None: @@ -33,7 +37,7 @@ async def inline_query(update: Update, context: ContextTypes.DEFAULT_TYPE) -> No await answer_query(update, query, data) -async def answer_query(update: Update, query: str, data) -> None: +async def answer_query(update: Update, query: int, data) -> None: characters = humanize_tags_from_json(data["tag_string_character"], "no characters") copyrights = humanize_tags_from_json( data["tag_string_copyright"], "unknown copyright" @@ -110,7 +114,7 @@ async def answer_query(update: Update, query: str, data) -> None: await update.inline_query.answer(results) -async def invalid_query(update: Update, query: str) -> None: +async def invalid_query(update: Update, query: int) -> None: results = [ InlineQueryResultArticle( id=str(uuid4()),