Add YAPF style + ignore, and format tracked Python files
This commit is contained in:
@@ -22,7 +22,7 @@ import pipeline as ctx
|
||||
|
||||
# Optional dependencies
|
||||
try:
|
||||
from config import get_local_storage_path
|
||||
from SYS.config import get_local_storage_path
|
||||
except Exception: # pragma: no cover
|
||||
get_local_storage_path = None # type: ignore
|
||||
|
||||
@@ -33,14 +33,16 @@ class Search_Provider(Cmdlet):
|
||||
def __init__(self):
|
||||
super().__init__(
|
||||
name="search-provider",
|
||||
summary="Search external providers (bandcamp, libgen, soulseek, youtube, alldebrid, loc, internetarchive)",
|
||||
summary=
|
||||
"Search external providers (bandcamp, libgen, soulseek, youtube, alldebrid, loc, internetarchive)",
|
||||
usage="search-provider -provider <provider> <query> [-limit N] [-open ID]",
|
||||
arg=[
|
||||
CmdletArg(
|
||||
"provider",
|
||||
type="string",
|
||||
required=True,
|
||||
description="Provider name: bandcamp, libgen, soulseek, youtube, alldebrid, loc, internetarchive",
|
||||
description=
|
||||
"Provider name: bandcamp, libgen, soulseek, youtube, alldebrid, loc, internetarchive",
|
||||
),
|
||||
CmdletArg(
|
||||
"query",
|
||||
@@ -49,12 +51,15 @@ class Search_Provider(Cmdlet):
|
||||
description="Search query (supports provider-specific syntax)",
|
||||
),
|
||||
CmdletArg(
|
||||
"limit", type="int", description="Maximum results to return (default: 50)"
|
||||
"limit",
|
||||
type="int",
|
||||
description="Maximum results to return (default: 50)"
|
||||
),
|
||||
CmdletArg(
|
||||
"open",
|
||||
type="int",
|
||||
description="(alldebrid) Open folder/magnet by ID and list its files",
|
||||
description=
|
||||
"(alldebrid) Open folder/magnet by ID and list its files",
|
||||
),
|
||||
],
|
||||
detail=[
|
||||
@@ -100,11 +105,21 @@ class Search_Provider(Cmdlet):
|
||||
# Dynamic flag variants from cmdlet arg definitions.
|
||||
flag_registry = self.build_flag_registry()
|
||||
provider_flags = {
|
||||
f.lower() for f in (flag_registry.get("provider") or {"-provider", "--provider"})
|
||||
f.lower()
|
||||
for f in (flag_registry.get("provider") or {"-provider", "--provider"})
|
||||
}
|
||||
query_flags = {
|
||||
f.lower()
|
||||
for f in (flag_registry.get("query") or {"-query", "--query"})
|
||||
}
|
||||
limit_flags = {
|
||||
f.lower()
|
||||
for f in (flag_registry.get("limit") or {"-limit", "--limit"})
|
||||
}
|
||||
open_flags = {
|
||||
f.lower()
|
||||
for f in (flag_registry.get("open") or {"-open", "--open"})
|
||||
}
|
||||
query_flags = {f.lower() for f in (flag_registry.get("query") or {"-query", "--query"})}
|
||||
limit_flags = {f.lower() for f in (flag_registry.get("limit") or {"-limit", "--limit"})}
|
||||
open_flags = {f.lower() for f in (flag_registry.get("open") or {"-open", "--open"})}
|
||||
|
||||
provider_name: Optional[str] = None
|
||||
query: Optional[str] = None
|
||||
@@ -166,7 +181,9 @@ class Search_Provider(Cmdlet):
|
||||
log(f" {status} {name}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
debug(f"[search-provider] provider={provider_name}, query={query}, limit={limit}")
|
||||
debug(
|
||||
f"[search-provider] provider={provider_name}, query={query}, limit={limit}"
|
||||
)
|
||||
|
||||
# Get provider
|
||||
provider = get_search_provider(provider_name, config)
|
||||
@@ -180,7 +197,9 @@ class Search_Provider(Cmdlet):
|
||||
return 1
|
||||
|
||||
worker_id = str(uuid.uuid4())
|
||||
library_root = get_local_storage_path(config or {}) if get_local_storage_path else None
|
||||
library_root = get_local_storage_path(
|
||||
config or {}
|
||||
) if get_local_storage_path else None
|
||||
|
||||
db = None
|
||||
if library_root:
|
||||
@@ -219,7 +238,8 @@ class Search_Provider(Cmdlet):
|
||||
provider_label = "LoC"
|
||||
else:
|
||||
provider_label = (
|
||||
provider_text[:1].upper() + provider_text[1:] if provider_text else "Provider"
|
||||
provider_text[:1].upper() +
|
||||
provider_text[1:] if provider_text else "Provider"
|
||||
)
|
||||
|
||||
if provider_lower == "alldebrid" and open_id is not None:
|
||||
@@ -236,11 +256,22 @@ class Search_Provider(Cmdlet):
|
||||
if open_id is not None:
|
||||
# Second-stage: show files for selected folder/magnet.
|
||||
results = provider.search(
|
||||
query, limit=limit, filters={"view": "files", "magnet_id": open_id}
|
||||
query,
|
||||
limit=limit,
|
||||
filters={
|
||||
"view": "files",
|
||||
"magnet_id": open_id
|
||||
}
|
||||
)
|
||||
else:
|
||||
# Default: show folders (magnets) so user can select @N.
|
||||
results = provider.search(query, limit=limit, filters={"view": "folders"})
|
||||
results = provider.search(
|
||||
query,
|
||||
limit=limit,
|
||||
filters={
|
||||
"view": "folders"
|
||||
}
|
||||
)
|
||||
else:
|
||||
results = provider.search(query, limit=limit)
|
||||
debug(f"[search-provider] Got {len(results)} results")
|
||||
@@ -256,8 +287,8 @@ class Search_Provider(Cmdlet):
|
||||
for search_result in results:
|
||||
item_dict = (
|
||||
search_result.to_dict()
|
||||
if hasattr(search_result, "to_dict")
|
||||
else dict(search_result)
|
||||
if hasattr(search_result,
|
||||
"to_dict") else dict(search_result)
|
||||
)
|
||||
|
||||
# Ensure table field is set (should be by provider, but just in case)
|
||||
@@ -265,21 +296,26 @@ class Search_Provider(Cmdlet):
|
||||
item_dict["table"] = provider_name
|
||||
|
||||
row_index = len(table.rows)
|
||||
table.add_result(search_result) # ResultTable handles SearchResult objects
|
||||
table.add_result(
|
||||
search_result
|
||||
) # ResultTable handles SearchResult objects
|
||||
|
||||
# For AllDebrid folder rows, allow @N to open and show files.
|
||||
try:
|
||||
if (
|
||||
provider_lower == "alldebrid"
|
||||
and getattr(search_result, "media_kind", "") == "folder"
|
||||
):
|
||||
if (provider_lower == "alldebrid" and getattr(search_result,
|
||||
"media_kind",
|
||||
"") == "folder"):
|
||||
magnet_id = None
|
||||
meta = getattr(search_result, "full_metadata", None)
|
||||
if isinstance(meta, dict):
|
||||
magnet_id = meta.get("magnet_id")
|
||||
if magnet_id is not None:
|
||||
table.set_row_selection_args(
|
||||
row_index, ["-open", str(magnet_id), "-query", "*"]
|
||||
row_index,
|
||||
["-open",
|
||||
str(magnet_id),
|
||||
"-query",
|
||||
"*"]
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user