From 3920992cee912b91b5a93881dd45ca7d78761f06 Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Mon, 31 Mar 2025 22:08:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B1=D0=BE=D1=80=20win/macOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Сделан выбор win/macOS - Сделаны текста для них отдельные. --- handlers/instructions/instructions.py | 62 ++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 5 deletions(-) diff --git a/handlers/instructions/instructions.py b/handlers/instructions/instructions.py index f436d7fc..22545e69 100644 --- a/handlers/instructions/instructions.py +++ b/handlers/instructions/instructions.py @@ -1,5 +1,4 @@ import os - from typing import Any from aiogram import F, Router @@ -10,20 +9,32 @@ from aiogram.types import ( ) from aiogram.utils.keyboard import InlineKeyboardBuilder -from config import CONNECT_MACOS, CONNECT_WINDOWS, SUPPORT_CHAT_URL +from config import ( + CONNECT_MACOS, + CONNECT_WINDOWS, + DOWNLOAD_MACOS, + DOWNLOAD_PC, + SUPPORT_CHAT_URL, +) from database import get_key_details from handlers.buttons import ( BACK, CONNECT_MACOS_BUTTON, CONNECT_WINDOWS_BUTTON, + DOWNLOAD_MACOS_BUTTON, + DOWNLOAD_PC_BUTTON, MAIN_MENU, + PC_MACOS, + PC_PC, SUPPORT, TV_CONTINUE, TV_INSTRUCTIONS, ) from handlers.texts import ( + CHOOSE_DEVICE_TEXT, CONNECT_TV_TEXT, INSTRUCTIONS, + INSTRUCTION_MACOS, INSTRUCTION_PC, KEY_MESSAGE, SUBSCRIPTION_DETAILS_TEXT, @@ -72,16 +83,54 @@ async def process_connect_pc(callback_query: CallbackQuery, session: Any): ) return + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text=PC_PC, callback_data=f"windows_menu|{key_name}")) + builder.row(InlineKeyboardButton(text=PC_MACOS, callback_data=f"macos_menu|{key_name}")) + builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}")) + + await edit_or_send_message( + target_message=callback_query.message, + text=CHOOSE_DEVICE_TEXT, + reply_markup=builder.as_markup(), + media_path=None, + ) + + +@router.callback_query(F.data.startswith("windows_menu|")) +async def process_windows_menu(callback_query: CallbackQuery, session: Any): + key_name = callback_query.data.split("|")[1] + record = await get_key_details(key_name, session) key = record["key"] key_message_text = KEY_MESSAGE.format(key) instruction_message = f"{key_message_text}{INSTRUCTION_PC}" builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text=DOWNLOAD_PC_BUTTON, url=DOWNLOAD_PC)) builder.row(InlineKeyboardButton(text=CONNECT_WINDOWS_BUTTON, url=f"{CONNECT_WINDOWS}{key}")) + builder.row(InlineKeyboardButton(text=SUPPORT, url=SUPPORT_CHAT_URL)) + builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_pc|{key_name}")) + + await edit_or_send_message( + target_message=callback_query.message, + text=instruction_message, + reply_markup=builder.as_markup(), + media_path=None, + ) + + +@router.callback_query(F.data.startswith("macos_menu|")) +async def process_macos_menu(callback_query: CallbackQuery, session: Any): + key_name = callback_query.data.split("|")[1] + record = await get_key_details(key_name, session) + key = record["key"] + key_message_text = KEY_MESSAGE.format(key) + instruction_message = f"{key_message_text}{INSTRUCTION_MACOS}" + + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text=DOWNLOAD_MACOS_BUTTON, url=DOWNLOAD_MACOS)) builder.row(InlineKeyboardButton(text=CONNECT_MACOS_BUTTON, url=f"{CONNECT_MACOS}{key}")) builder.row(InlineKeyboardButton(text=SUPPORT, url=SUPPORT_CHAT_URL)) - builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}")) - builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile")) + builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_pc|{key_name}")) await edit_or_send_message( target_message=callback_query.message, @@ -123,5 +172,8 @@ async def process_continue_tv(callback_query: CallbackQuery, session: Any): builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile")) await edit_or_send_message( - target_message=callback_query.message, text=message_text, reply_markup=builder.as_markup(), media_path=None + target_message=callback_query.message, + text=message_text, + reply_markup=builder.as_markup(), + media_path=None, )