From 276c8d48d90b63cedfba30b113ebc2b0c931be7b Mon Sep 17 00:00:00 2001 From: Benexl Date: Sun, 27 Jul 2025 00:17:41 +0300 Subject: [PATCH] feat(player-controls-menu): add media actions menu option --- fastanime/cli/interactive/menu/media/player_controls.py | 5 ++--- fastanime/cli/interactive/session.py | 8 +++++++- fastanime/cli/interactive/state.py | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/fastanime/cli/interactive/menu/media/player_controls.py b/fastanime/cli/interactive/menu/media/player_controls.py index 4359747..124cafc 100644 --- a/fastanime/cli/interactive/menu/media/player_controls.py +++ b/fastanime/cli/interactive/menu/media/player_controls.py @@ -68,9 +68,8 @@ def player_controls(ctx: Context, state: State) -> Union[State, InternalDirectiv f"{'🔘 ' if icons else ''}Toggle Translation Type (Current: {ctx.config.stream.translation_type.upper()})": _toggle_config_state( ctx, state, "TRANSLATION_TYPE" ), - f"{'🏠 ' if icons else ''}Main Menu": lambda: State( - menu_name=MenuName.MAIN - ), + f"{'🎥 ' if icons else ''}Media Actions Menu": lambda: InternalDirective.BACKX4, + f"{'🏠 ' if icons else ''}Main Menu": lambda: InternalDirective.MAIN, f"{'❌ ' if icons else ''}Exit": lambda: InternalDirective.EXIT, } ) diff --git a/fastanime/cli/interactive/session.py b/fastanime/cli/interactive/session.py index c3d4a5b..78b61d0 100644 --- a/fastanime/cli/interactive/session.py +++ b/fastanime/cli/interactive/session.py @@ -247,7 +247,7 @@ class Session: if isinstance(next_step, InternalDirective): if next_step == InternalDirective.MAIN: self._history = [self._history[0]] - if next_step == InternalDirective.RELOAD: + elif next_step == InternalDirective.RELOAD: continue elif next_step == InternalDirective.CONFIG_EDIT: self._edit_config() @@ -263,6 +263,12 @@ class Session: self._history.pop() self._history.pop() self._history.pop() + elif next_step == InternalDirective.BACKX4: + if len(self._history) > 4: + self._history.pop() + self._history.pop() + self._history.pop() + self._history.pop() elif next_step == InternalDirective.EXIT: break else: diff --git a/fastanime/cli/interactive/state.py b/fastanime/cli/interactive/state.py index c1d7f4f..1156a79 100644 --- a/fastanime/cli/interactive/state.py +++ b/fastanime/cli/interactive/state.py @@ -14,12 +14,12 @@ class InternalDirective(Enum): BACK = "BACK" - BACK_FORCE = "BACK_FORCE" - BACKX2 = "BACKX2" BACKX3 = "BACKX3" + BACKX4 = "BACKX4" + EXIT = "EXIT" CONFIG_EDIT = "CONFIG_EDIT"