From fd6f0b699ea977f6ac95ea1ef3240b8a4a1b83c0 Mon Sep 17 00:00:00 2001 From: Redume Date: Sat, 17 May 2025 00:34:05 +0300 Subject: [PATCH] chore: charts are now as a picture natively, not a link --- utils/inline_query.py | 44 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/utils/inline_query.py b/utils/inline_query.py index 7747410..9a50d37 100644 --- a/utils/inline_query.py +++ b/utils/inline_query.py @@ -2,6 +2,9 @@ import re from aiogram import types +def esc_md(text: str) -> str: + return re.sub(r'([_*\[\]()~`>#+\-=|{}.!\\])', r'\\\1', text) + async def reply(result_id: str, args: list, query: types.InlineQuery) -> None: if not args: return @@ -13,28 +16,27 @@ async def reply(result_id: str, args: list, query: types.InlineQuery) -> None: description = arg[1] if arg[1] else None img = arg[2] if arg[2] else None - - article = types.InlineQueryResultArticle( - id=f"{result_id}_{idx}", - title=re.sub( - r'\bChart\b|\[([^\]]+)\]\([^)]+\)', - '', - title, - flags=re.IGNORECASE - ), - thumbnail_url=img, - description=description, - input_message_content=types.InputTextMessageContent( - message_text=title, - parse_mode='markdown' + if img: + article = types.InlineQueryResultPhoto( + id=f"{result_id}_{idx}", + photo_url=img, + thumbnail_url=img, + title=title, + description=description, + caption=esc_md(title), + parse_mode="MarkdownV2" + ) + else: + article = types.InlineQueryResultArticle( + id=f"{result_id}_{idx}", + title=title, + description=description, + input_message_content=types.InputTextMessageContent( + message_text=esc_md(title), + parse_mode="MarkdownV2", + ), ) - ) articles.append(article) - await query.answer( - results=articles, - parse_mode='markdown', - cache_time=0, - is_personal=True - ) + await query.answer(results=articles, cache_time=0, is_personal=True)