This commit is contained in:
nose
2025-12-21 16:59:37 -08:00
parent 11a13edb84
commit d0b821b5dd
7 changed files with 508 additions and 136 deletions

31
CLI.py
View File

@@ -1099,7 +1099,7 @@ class CmdletExecutor:
)
stage_worker_id = stage_session.worker_id if stage_session else None
pipeline_ctx = ctx.PipelineStageContext(stage_index=0, total_stages=1, worker_id=stage_worker_id)
pipeline_ctx = ctx.PipelineStageContext(stage_index=0, total_stages=1, pipe_index=0, worker_id=stage_worker_id)
ctx.set_stage_context(pipeline_ctx)
stage_status = "completed"
stage_error = ""
@@ -1584,7 +1584,7 @@ class PipelineExecutor:
"download_media",
".pipe",
):
print("Auto-inserting download-file after Soulseek selection")
debug("Auto-inserting download-file after Soulseek selection")
stages.insert(0, ["download-file"])
if table_type == "youtube" and first_cmd not in (
"download-media",
@@ -1592,7 +1592,7 @@ class PipelineExecutor:
"download-file",
".pipe",
):
print("Auto-inserting download-media after YouTube selection")
debug("Auto-inserting download-media after YouTube selection")
stages.insert(0, ["download-media"])
if table_type == "bandcamp" and first_cmd not in (
"download-media",
@@ -1636,6 +1636,11 @@ class PipelineExecutor:
name = str(tokens[0]).replace("_", "-").lower()
if name == "@" or name.startswith("@"):
continue
# `.pipe` (MPV) is an interactive launcher; disable pipeline Live progress
# for it because it doesn't meaningfully "complete" (mpv may keep running)
# and Live output interferes with MPV playlist UI.
if name == ".pipe":
continue
pipe_stage_indices.append(idx)
pipe_labels.append(name)
@@ -1846,6 +1851,7 @@ class PipelineExecutor:
pipeline_ctx = ctx.PipelineStageContext(
stage_index=stage_index,
total_stages=len(stages),
pipe_index=pipe_idx,
worker_id=stage_worker_id,
on_emit=on_emit,
)
@@ -1889,6 +1895,21 @@ class PipelineExecutor:
except Exception:
pass
# `.pipe` is typically the terminal interactive stage (MPV UI).
# Stop Live progress before running it so output doesn't get stuck behind Live.
if cmd_name == ".pipe" and progress_ui is not None and (stage_index + 1 >= len(stages)):
try:
progress_ui.stop()
except Exception:
pass
try:
import pipeline as _pipeline_ctx
if hasattr(_pipeline_ctx, "set_live_progress"):
_pipeline_ctx.set_live_progress(None)
except Exception:
pass
progress_ui = None
ret_code = cmd_fn(piped_result, list(stage_args), config)
stage_is_last = stage_index + 1 >= len(stages)
@@ -2127,7 +2148,7 @@ class PipelineExecutor:
Welcome = """
# MEDIOS-MACINA
Romans 1:22 Professing themselves to be wise, they became fools,
[red]Romans 1:22[/red] Professing themselves to be wise, they became fools,
dfd
@@ -2278,7 +2299,7 @@ class MedeiaCLI:
def run_repl(self) -> None:
# (Startup banner is optional; keep the REPL quiet by default.)
prompt_text = "<🜂🜄🜁🜃>"
prompt_text = "<🜂🜄|🜁🜃>"
startup_table = ResultTable(
"*********<IGNITIO>*********<NOUSEMPEH>*********<RUGRAPOG>*********<OMEGHAU>*********"