From 666f4e3181a9933a8199432ac04a1d962f5e7b46 Mon Sep 17 00:00:00 2001 From: Nose Date: Fri, 23 Jan 2026 19:21:06 -0800 Subject: [PATCH] f --- CLI.py | 2 ++ SYS/pipeline.py | 22 ++++++++++++++++++++++ Store/HydrusNetwork.py | 13 +++++++++++++ cmdlet/get_url.py | 1 - 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/CLI.py b/CLI.py index 25db071..9961c06 100644 --- a/CLI.py +++ b/CLI.py @@ -1203,6 +1203,8 @@ class CmdletExecutor: "tags", "get-metadata", "get_metadata", + "get-url", + "get_url", "search-file", "search_file", } diff --git a/SYS/pipeline.py b/SYS/pipeline.py index f1f80fe..6978f45 100644 --- a/SYS/pipeline.py +++ b/SYS/pipeline.py @@ -2853,6 +2853,28 @@ class PipelineExecutor: # RUN THE CMDLET cmd_fn(piped_result, stage_args, config) + # Pipeline overlay tables (e.g., get-url detail views) need to be + # rendered when running inside a pipeline because the CLI path + # normally handles rendering. The overlay is only useful when + # we're at the terminal stage of the pipeline. + if stage_index + 1 >= len(stages): + display_table = None + try: + display_table = ( + ctx.get_display_table() + if hasattr(ctx, "get_display_table") else None + ) + except Exception: + display_table = None + if display_table is not None: + try: + from SYS.rich_display import stdout_console + + stdout_console().print() + stdout_console().print(display_table) + except Exception: + pass + # Update piped_result for next stage from emitted items stage_emits = list(stage_ctx.emits) if stage_emits: diff --git a/Store/HydrusNetwork.py b/Store/HydrusNetwork.py index 1343ed8..44f6401 100644 --- a/Store/HydrusNetwork.py +++ b/Store/HydrusNetwork.py @@ -845,6 +845,19 @@ class HydrusNetwork(Store): scan_limit=scan_limit_override, needles=pattern_hints if pattern_hints else None, ) + elif namespace == "system": + normalized_system_predicate = pattern.strip() + if normalized_system_predicate == "has url": + try: + fetch_limit = int(limit) if limit else 100 + except Exception: + fetch_limit = 100 + metadata_list = _iter_url_filtered_metadata( + None, + want_any=not bool(pattern_hints), + fetch_limit=fetch_limit, + needles=pattern_hints if pattern_hints else None, + ) # Parse the query into tags # "*" means "match all" - use system:everything tag in Hydrus diff --git a/cmdlet/get_url.py b/cmdlet/get_url.py index 07ba439..398f56c 100644 --- a/cmdlet/get_url.py +++ b/cmdlet/get_url.py @@ -665,7 +665,6 @@ class Get_Url(Cmdlet): # Enrich the metadata with tags if missing if not metadata.get("Tags"): try: - from cmdlet._shared import get_field item_tags = get_field(result, "tag") or get_field(result, "tags") or [] row_tags = [] if isinstance(item_tags, list):