updated plugin refactor and added FTP and SCP plugins , also hydrusnetwork plugin migration

This commit is contained in:
2026-04-27 21:17:53 -07:00
parent bfd5c20dc3
commit 8685fbb723
24 changed files with 3650 additions and 405 deletions
+24 -3
View File
@@ -1286,9 +1286,30 @@ class ytdlp(TableProviderMixin, Provider):
try:
from SYS.result_table_adapters import register_plugin
from SYS.result_table_adapters import get_plugin, register_plugin
from SYS.result_table_api import ResultModel, ColumnSpec, metadata_column, title_column
def _register_table_plugin_once(
name: str,
adapter: Any,
*,
columns: Any,
selection_fn: Any,
metadata: Optional[Dict[str, Any]] = None,
) -> None:
try:
get_plugin(name)
return
except KeyError:
pass
register_plugin(
name,
adapter,
columns=columns,
selection_fn=selection_fn,
metadata=metadata,
)
def _convert_format_result_to_model(sr: Any) -> ResultModel:
d = sr.to_dict() if hasattr(sr, "to_dict") else (sr if isinstance(sr, dict) else {})
title = d.get("title") or f"Format {d.get('format_id', 'unknown')}"
@@ -1361,7 +1382,7 @@ try:
return result_args
return []
register_plugin(
_register_table_plugin_once(
"ytdlp.formatlist",
_adapter,
columns=_columns_factory,
@@ -1421,7 +1442,7 @@ try:
return ["-url", row.path]
return ["-title", row.title or ""]
register_plugin(
_register_table_plugin_once(
"ytdlp.search",
_search_adapter,
columns=_search_columns_factory,