diff --git a/viu_media/assets/scripts/fzf/episode_info.py b/viu_media/assets/scripts/fzf/episode_info.py index e69de29..471be00 100644 --- a/viu_media/assets/scripts/fzf/episode_info.py +++ b/viu_media/assets/scripts/fzf/episode_info.py @@ -0,0 +1,44 @@ +import sys +from rich.console import Console +from rich.table import Table +from rich.rule import Rule +from rich.markdown import Markdown + +console = Console(force_terminal=True, color_system="truecolor") + +HEADER_COLOR = sys.argv[1] +SEPARATOR_COLOR = sys.argv[2] + + +def rule(title: str | None = None): + console.print(Rule(style=f"rgb({SEPARATOR_COLOR})")) + + +console.print("{TITLE}", justify="center") + +left = [ + ("Duration", "Status"), + ("Total Episodes", "Next Episode"), + ("Progress", "List Status"), + ("Start Date", "End Date"), +] +right = [ + ("{DURATION}", "{STATUS}"), + ("{EPISODES}", "{NEXT_EPISODE}"), + ("{USER_PROGRESS}", "{USER_STATUS}"), + ("{START_DATE}", "{END_DATE}"), +] + + +for L_grp, R_grp in zip(left, right): + table = Table.grid(expand=True) + table.add_column(justify="left", no_wrap=True) + table.add_column(justify="right", overflow="fold") + for L, R in zip(L_grp, R_grp): + table.add_row(f"[bold rgb({HEADER_COLOR})]{L} [/]", f"{R}") + + rule() + console.print(table) + + +rule() diff --git a/viu_media/cli/utils/preview.py b/viu_media/cli/utils/preview.py index 5cf0a97..ed256f1 100644 --- a/viu_media/cli/utils/preview.py +++ b/viu_media/cli/utils/preview.py @@ -354,18 +354,14 @@ def get_episode_preview( # Format the template with the dynamic values replacements = { "PREVIEW_MODE": config.general.preview, - "IMAGE_CACHE_PATH": str(IMAGES_CACHE_DIR), - "INFO_CACHE_PATH": str(INFO_CACHE_DIR), - "PATH_SEP": path_sep, + "IMAGE_CACHE_DIR": str(IMAGES_CACHE_DIR), + "INFO_CACHE_DIR": str(INFO_CACHE_DIR), "IMAGE_RENDERER": config.general.image_renderer, # Color codes - "C_TITLE": ansi.get_true_fg(HEADER_COLOR, bold=True), - "C_KEY": ansi.get_true_fg(HEADER_COLOR, bold=True), - "C_VALUE": ansi.get_true_fg(HEADER_COLOR, bold=True), - "C_RULE": ansi.get_true_fg(SEPARATOR_COLOR, bold=True), - "RESET": ansi.RESET, - "PREFIX": f"{media_item.title.english}_Episode_", - "SCALE_UP": " --scale-up" if config.general.preview_scale_up else "", + "HEADER_COLOR": ",".join(HEADER_COLOR), + "SEPARATOR_COLOR": ",".join(SEPARATOR_COLOR), + "PREFIX": f"episode-{media_item.title.english}", + "SCALE_UP": str(config.general.preview_scale_up), } for key, value in replacements.items():