f
This commit is contained in:
@@ -78,9 +78,52 @@ def _refresh_tag_view_if_current(
|
||||
refresh_args: list[str] = []
|
||||
if file_hash:
|
||||
refresh_args.extend(["-query", f"hash:{file_hash}"])
|
||||
if store_name:
|
||||
refresh_args.extend(["-store", store_name])
|
||||
get_tag(subject, refresh_args, config)
|
||||
|
||||
# Build a lean subject so get-tag fetches fresh tags instead of reusing cached payloads.
|
||||
def _value_has_content(value: Any) -> bool:
|
||||
if value is None:
|
||||
return False
|
||||
if isinstance(value, str):
|
||||
return bool(value.strip())
|
||||
if isinstance(value, (list, tuple, set)):
|
||||
return len(value) > 0
|
||||
return True
|
||||
|
||||
def _build_refresh_subject() -> Dict[str, Any]:
|
||||
payload: Dict[str, Any] = {}
|
||||
payload["hash"] = file_hash
|
||||
store_value = store_name or get_field(subject, "store")
|
||||
if _value_has_content(store_value):
|
||||
payload["store"] = store_value
|
||||
|
||||
path_value = path or get_field(subject, "path")
|
||||
if not _value_has_content(path_value):
|
||||
path_value = get_field(subject, "target")
|
||||
if _value_has_content(path_value):
|
||||
payload["path"] = path_value
|
||||
|
||||
for key in ("title", "name", "url", "relations", "service_name"):
|
||||
val = get_field(subject, key)
|
||||
if _value_has_content(val):
|
||||
payload[key] = val
|
||||
|
||||
extra_value = get_field(subject, "extra")
|
||||
if isinstance(extra_value, dict):
|
||||
cleaned = {
|
||||
k: v for k, v in extra_value.items()
|
||||
if str(k).lower() not in {"tag", "tags"}
|
||||
}
|
||||
if cleaned:
|
||||
payload["extra"] = cleaned
|
||||
elif _value_has_content(extra_value):
|
||||
payload["extra"] = extra_value
|
||||
|
||||
return payload
|
||||
|
||||
refresh_subject = _build_refresh_subject()
|
||||
# Do not pass -store here as it triggers emit_mode/quiet in get-tag
|
||||
with ctx.suspend_live_progress():
|
||||
get_tag(refresh_subject, refresh_args, config)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -333,7 +376,7 @@ def _process_deletion(
|
||||
|
||||
def _fetch_existing_tags() -> list[str]:
|
||||
try:
|
||||
backend = Store(config)[store_name]
|
||||
backend = Store(config, suppress_debug=True)[store_name]
|
||||
existing, _src = backend.get_tag(resolved_hash, config=config)
|
||||
return list(existing or [])
|
||||
except Exception:
|
||||
@@ -360,7 +403,7 @@ def _process_deletion(
|
||||
return False
|
||||
|
||||
try:
|
||||
backend = Store(config)[store_name]
|
||||
backend = Store(config, suppress_debug=True)[store_name]
|
||||
ok = backend.delete_tag(resolved_hash, list(tags), config=config)
|
||||
if ok:
|
||||
preview = resolved_hash[:12] + ("…" if len(resolved_hash) > 12 else "")
|
||||
|
||||
Reference in New Issue
Block a user