From d1281d0dc358299d5cfe33c1b31bf08c725bc737 Mon Sep 17 00:00:00 2001 From: Whispering Wind <151555003+ReturnFI@users.noreply.github.com> Date: Sun, 15 Dec 2024 00:36:56 +0330 Subject: [PATCH] Create Search --- core/scripts/telegrambot/utils/search.py | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 core/scripts/telegrambot/utils/search.py diff --git a/core/scripts/telegrambot/utils/search.py b/core/scripts/telegrambot/utils/search.py new file mode 100644 index 0000000..494bdf2 --- /dev/null +++ b/core/scripts/telegrambot/utils/search.py @@ -0,0 +1,34 @@ +from telebot import types +from utils.command import * + + +@bot.inline_handler(lambda query: is_admin(query.from_user.id)) +def handle_inline_query(query): + command = f"python3 {CLI_PATH} list-users" + result = run_cli_command(command) + try: + users = json.loads(result) + except json.JSONDecodeError: + bot.answer_inline_query(query.id, results=[], switch_pm_text="Error retrieving users.", switch_pm_user_id=query.from_user.id) + return + + query_text = query.query.lower() + results = [] + for username, details in users.items(): + if query_text in username.lower(): + title = f"{username}" + description = f"Traffic Limit: {details['max_download_bytes'] / (1024 ** 3):.2f} GB, Expiration Days: {details['expiration_days']}" + results.append(types.InlineQueryResultArticle( + id=username, + title=title, + description=description, + input_message_content=types.InputTextMessageContent( + message_text=f"Name: {username}\n" + f"Traffic limit: {details['max_download_bytes'] / (1024 ** 3):.2f} GB\n" + f"Days: {details['expiration_days']}\n" + f"Account Creation: {details['account_creation_date']}\n" + f"Blocked: {details['blocked']}" + ) + )) + + bot.answer_inline_query(query.id, results, cache_time=0) \ No newline at end of file