From 631fabf30dec054aa0c7561dbbbf862527096b71 Mon Sep 17 00:00:00 2001 From: huker667 Date: Tue, 14 Jul 2026 20:45:25 +0300 Subject: add row builder (da krutoi) --- callbacks.py | 66 ++++++++++++++++++++++++++++++++++++++++++++---------------- commands.py | 26 +++++++++++++++--------- 2 files changed, 66 insertions(+), 26 deletions(-) diff --git a/callbacks.py b/callbacks.py index c411d75..432c0af 100644 --- a/callbacks.py +++ b/callbacks.py @@ -26,7 +26,10 @@ async def select_provider_callback(callback: CallbackQuery): buttons = [] + i = 0 + for model in MODELS.get(provider): + i += 1 if f"{provider}*{model}" == user_model: text = f"{model} ✅" else: @@ -34,14 +37,21 @@ async def select_provider_callback(callback: CallbackQuery): if MODELS[provider][model].get("alias"): model = MODELS[provider][model].get("alias") - - buttons.append( - [ + + if not i % 2: + buttons[len(buttons)-1] +=[ InlineKeyboardButton( text=text, callback_data=f"set_model%{user_id}%{provider}*{model}" ) ] - ) + else: + buttons.append( + [ + InlineKeyboardButton( + text=text, callback_data=f"set_model%{user_id}%{provider}*{model}" + ) + ] + ) if not buttons: buttons = [ @@ -53,7 +63,7 @@ async def select_provider_callback(callback: CallbackQuery): ] buttons.append( - [InlineKeyboardButton(text="назад", callback_data=f"models%{user_id}")] + [InlineKeyboardButton(text="⬅️ назад", callback_data=f"models%{user_id}")] ) await callback.message.edit_text( @@ -72,16 +82,27 @@ async def models_callback(callback: CallbackQuery): config = get_user_config(user_id) buttons = [] + + i = 0 for provider in MODELS: - buttons.append( - [ + i += 1 + if not i % 2: + buttons[len(buttons)-1] +=[ InlineKeyboardButton( - text=PROVIDERS.get(provider).get("name"), - callback_data=f"prov%{user_id}%{provider}", + text=PROVIDERS.get(provider).get("name"), + callback_data=f"prov%{user_id}%{provider}" ) ] - ) + else: + buttons.append( + [ + InlineKeyboardButton( + text=PROVIDERS.get(provider).get("name"), + callback_data=f"prov%{user_id}%{provider}", + ) + ] + ) if not buttons: buttons.append( @@ -93,7 +114,7 @@ async def models_callback(callback: CallbackQuery): ) buttons.append( - [InlineKeyboardButton(text="назад", callback_data=f"settings%{user_id}")] + [InlineKeyboardButton(text="⬅️ назад", callback_data=f"settings%{user_id}")] ) await callback.message.edit_text( @@ -147,19 +168,30 @@ async def prompts_callback(callback: CallbackQuery): prompt = config.get("prompt") buttons = [] + i = 0 for name in SYSTEM_PROMPTS: + i += 1 text = name if prompt == name: text += " ✅" - buttons.append( - [ + + if not i % 2: + buttons[len(buttons)-1] +=[ InlineKeyboardButton( - text=text, - callback_data=f"set_prompt%{user_id}%{name}", + text=text, + callback_data=f"set_prompt%{user_id}%{name}" ) ] - ) + else: + buttons.append( + [ + InlineKeyboardButton( + text=text, + callback_data=f"set_prompt%{user_id}%{name}", + ) + ] + ) if not buttons: buttons.append( @@ -171,7 +203,7 @@ async def prompts_callback(callback: CallbackQuery): ) buttons.append( - [InlineKeyboardButton(text="назад", callback_data=f"settings%{user_id}")] + [InlineKeyboardButton(text="⬅️ назад", callback_data=f"settings%{user_id}")] ) await callback.message.edit_text( diff --git a/commands.py b/commands.py index b521ad1..27c7261 100644 --- a/commands.py +++ b/commands.py @@ -341,14 +341,19 @@ async def settings_handler(event: Union[Message, CallbackQuery]): notify_status = "net" notify_cb = "da" + if config["markdown"] == "new": + markdown_status = "новый" + markdown_cb = "old" + else: + markdown_status = "старый" + markdown_cb = "new" + keyboard = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton( text=f"модели ({models_count})", callback_data=f"models%{user_id}" - ) - ], - [ + ), InlineKeyboardButton( text=f"промпты ({prompts_count})", callback_data=f"prompts%{user_id}" ) @@ -357,9 +362,7 @@ async def settings_handler(event: Union[Message, CallbackQuery]): InlineKeyboardButton( text=f"стрим: {stream_status}", callback_data=f"set_stream%{user_id}%{stream_cb}", - ) - ], - [ + ), InlineKeyboardButton( text=f"отклик: {call_status}", callback_data=f"set_call%{user_id}%{call_cb}", @@ -369,10 +372,15 @@ async def settings_handler(event: Union[Message, CallbackQuery]): InlineKeyboardButton( text=f"рассылка: {notify_status}", callback_data=f"set_notify%{user_id}%{notify_cb}", - ) + ), + InlineKeyboardButton( + text=f"маркдаун: {markdown_status}", + callback_data=f"set_markdown%{user_id}%{markdown_cb}", + ), + ], - [InlineKeyboardButton(text="донат", callback_data=f"donate%{user_id}")], - [InlineKeyboardButton(text="о боте", callback_data=f"about%{user_id}")], + [InlineKeyboardButton(text="💸 донат", callback_data=f"donate%{user_id}")], + [InlineKeyboardButton(text="🤖 о боте", callback_data=f"about%{user_id}")], ] ) -- cgit v1.3.1