This commit is contained in:
2026-01-22 04:17:27 -08:00
parent cd7f03e592
commit aa9820398d
2 changed files with 18 additions and 3 deletions

View File

@@ -1272,8 +1272,19 @@ class HydrusNetwork(Store):
IMPORTANT: this method must be side-effect free (do not auto-open a browser).
Only explicit user actions (e.g. the get-file cmdlet) should open files.
"""
file_hash = str(file_hash or "").strip().lower()
debug(f"{self._log_prefix()} get_file(hash={file_hash[:12]}..., url={kwargs.get('url')})")
debug(f"{self._log_prefix()} get_file: start hash={file_hash[:12]}...")
# If 'url=True' is passed, we preference the browser URL even if a local path is available.
# This is typically used by the 'get-file' cmdlet for interactive viewing.
if kwargs.get("url"):
base_url = str(self.URL).rstrip("/")
access_key = str(self.API)
browser_url = (
f"{base_url}/get_files/file?hash={file_hash}&Hydrus-Client-API-Access-Key={access_key}"
)
debug(f"{self._log_prefix()} get_file: returning browser URL per request: {browser_url}")
return browser_url
# Try to get the local disk path if possible (works if Hydrus is on same machine)
server_path = None

View File

@@ -139,8 +139,12 @@ class Get_File(sh.Cmdlet):
debug(f"[get-file] Calling backend.get_file({file_hash})")
# Get file from backend (may return Path or URL string depending on backend)
source_path = backend.get_file(file_hash)
# Get file from backend (may return Path or URL string depending on backend).
# We pass url=True if no explicit path was provided, which hints the backend
# (specifically Hydrus) to return a browser-friendly URL instead of a local path.
want_url = (output_path is None)
debug(f"[get-file] Requesting file from backend (url_hint={want_url})...")
source_path = backend.get_file(file_hash, url=want_url)
debug(f"[get-file] backend.get_file returned: {source_path}")