updated plugin refactor and added FTP and SCP plugins , also hydrusnetwork plugin migration
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user