Третий стрим
This commit is contained in:
		@@ -1,16 +1,17 @@
 | 
			
		||||
from aiogram.types import InlineKeyboardButton
 | 
			
		||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
 | 
			
		||||
 | 
			
		||||
from app.callbacks.callback_docker import ContainerCallback, ActionCallback
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def container_names_keyboard(stdout: str):
 | 
			
		||||
    container_names = [line.split("   ")[-1].strip() for line in stdout.splitlines()[1:]]
 | 
			
		||||
    builder = InlineKeyboardBuilder()
 | 
			
		||||
    for name in container_names:
 | 
			
		||||
        data = f"container_{name}"
 | 
			
		||||
        builder.add(
 | 
			
		||||
            InlineKeyboardButton(
 | 
			
		||||
                text=name,
 | 
			
		||||
                callback_data=data,
 | 
			
		||||
                callback_data=ContainerCallback(name=name).pack(),
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
    builder.adjust(1)
 | 
			
		||||
@@ -23,19 +24,19 @@ def container_actions_keyboard(name: str):
 | 
			
		||||
 | 
			
		||||
    builder.add(InlineKeyboardButton(
 | 
			
		||||
        text="Запустить контейнер",
 | 
			
		||||
        callback_data=f"action_start_{name}",
 | 
			
		||||
        callback_data=ActionCallback(name=name, action="start").pack(),
 | 
			
		||||
    ))
 | 
			
		||||
    builder.add(InlineKeyboardButton(
 | 
			
		||||
        text="Остановить контейнер",
 | 
			
		||||
        callback_data=f"action_stop_{name}",
 | 
			
		||||
        callback_data=ActionCallback(name=name, action="stop").pack(),
 | 
			
		||||
    ))
 | 
			
		||||
    builder.add(InlineKeyboardButton(
 | 
			
		||||
        text="Перезапустить контейнер",
 | 
			
		||||
        callback_data=f"action_restart_{name}",
 | 
			
		||||
        callback_data=ActionCallback(name=name, action="restart").pack(),
 | 
			
		||||
    ))
 | 
			
		||||
    builder.add(InlineKeyboardButton(
 | 
			
		||||
        text="Удалить контейнер",
 | 
			
		||||
        callback_data=f"action_delete_{name}",
 | 
			
		||||
        callback_data=ActionCallback(name=name, action="delete").pack(),
 | 
			
		||||
    ))
 | 
			
		||||
    builder.adjust(1)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								app/keyboards/favorites_keyboards.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								app/keyboards/favorites_keyboards.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
from aiogram.types import KeyboardButton, InlineKeyboardButton
 | 
			
		||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
 | 
			
		||||
 | 
			
		||||
from app.callbacks.callback_favorites import AddFavoriteCallback, DelFavoriteCallback
 | 
			
		||||
from app.schemas.favorites_schema import FavoritesSchemaOutput
 | 
			
		||||
from app.schemas.user_schema import UserSchemaOutput
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def favorite_list(favorites: list[FavoritesSchemaOutput]):
 | 
			
		||||
    builder = ReplyKeyboardBuilder()
 | 
			
		||||
 | 
			
		||||
    for favorite in favorites:
 | 
			
		||||
        builder.add(
 | 
			
		||||
            KeyboardButton(text=f"/command {favorite.command}")
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    builder.adjust(2)
 | 
			
		||||
    return builder.as_markup(resize_keyboard=True, one_time_keyboard=True)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def add_favorite_inline(user: UserSchemaOutput):
 | 
			
		||||
    builder = InlineKeyboardBuilder()
 | 
			
		||||
 | 
			
		||||
    builder.add(
 | 
			
		||||
        InlineKeyboardButton(
 | 
			
		||||
            text="Добавить команду",
 | 
			
		||||
            callback_data=AddFavoriteCallback(user_id=user.id).pack()
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    builder.adjust(1)
 | 
			
		||||
    return builder.as_markup()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def add_del_favorite_inline(user: UserSchemaOutput):
 | 
			
		||||
    builder = InlineKeyboardBuilder()
 | 
			
		||||
 | 
			
		||||
    builder.add(
 | 
			
		||||
        InlineKeyboardButton(
 | 
			
		||||
            text="Добавить команду",
 | 
			
		||||
            callback_data=AddFavoriteCallback(user_id=user.id).pack()
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
    builder.add(
 | 
			
		||||
        InlineKeyboardButton(
 | 
			
		||||
            text="Удалить команду",
 | 
			
		||||
            callback_data=DelFavoriteCallback(user_id=user.id).pack()
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    builder.adjust(1)
 | 
			
		||||
    return builder.as_markup()
 | 
			
		||||
		Reference in New Issue
	
	Block a user