diff --git a/archivebox/builtin_plugins/ytdlp/apps.py b/archivebox/builtin_plugins/ytdlp/apps.py index 3aed6e82..cb7758f4 100644 --- a/archivebox/builtin_plugins/ytdlp/apps.py +++ b/archivebox/builtin_plugins/ytdlp/apps.py @@ -38,9 +38,15 @@ class FfmpegBinary(BaseBinary): binproviders_supported: List[InstanceOf[BinProvider]] = [env, apt, brew] provider_overrides: Dict[BinProviderName, ProviderLookupDict] = { - 'env': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout}, - 'apt': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout}, - 'brew': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout}, + 'env': { + 'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout, + }, + 'apt': { + 'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout, + }, + 'brew': { + 'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout, + }, } # def get_ffmpeg_version(self) -> Optional[str]: diff --git a/archivebox/plugantic/base_binary.py b/archivebox/plugantic/base_binary.py index 0f2d47d0..f95599d5 100644 --- a/archivebox/plugantic/base_binary.py +++ b/archivebox/plugantic/base_binary.py @@ -43,6 +43,7 @@ class BaseBinProvider(BinProvider): class BaseBinary(Binary): binproviders_supported: List[InstanceOf[BinProvider]] = Field(default_factory=list, alias='binproviders') + provider_overrides: Dict[BinProviderName, ProviderLookupDict] = Field(default_factory=dict, alias='overrides') def register(self, settings, parent_plugin=None): if settings is None: diff --git a/archivebox/plugantic/views.py b/archivebox/plugantic/views.py index 168c8564..5b17b03b 100644 --- a/archivebox/plugantic/views.py +++ b/archivebox/plugantic/views.py @@ -103,7 +103,9 @@ def binaries_list_view(request: HttpRequest, **kwargs) -> TableContext: if binary.name.lower().replace('-', '').replace('_', '').replace('ytdlp', 'youtubedl') in config_key.lower() # or binary.name.lower().replace('-', '').replace('_', '') in str(config_value).lower() ))) - rows['Overrides'].append(str(obj_to_yaml(binary.provider_overrides))[:200]) + # if not binary.provider_overrides: + # import ipdb; ipdb.set_trace() + rows['Overrides'].append(str(obj_to_yaml(binary.provider_overrides) or str(binary.provider_overrides))[:200]) # rows['Description'].append(binary.description) return TableContext( @@ -161,11 +163,14 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext: rows = { "Name": [], + "verbose_name": [], + "configs": [], + "binproviders": [], "binaries": [], "extractors": [], "replayers": [], - "configs": [], - "verbose_name": [], + "checks": [], + "admindataviews": [], } @@ -176,6 +181,11 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext: print(e) rows['Name'].append(ItemLink(plugin.name, key=plugin.name)) + rows['verbose_name'].append(str(plugin.verbose_name)) + rows['binproviders'].append(mark_safe(', '.join( + f'{binprovider.name}' + for binprovider in plugin.binproviders + ))) rows['binaries'].append(mark_safe(', '.join( f'{binary.name}' for binary in plugin.binaries @@ -188,7 +198,8 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext: for config_key in configset.__fields__.keys() if config_key != 'section' and config_key in settings.CONFIG ))) - rows['verbose_name'].append(str(plugin.verbose_name)) + rows['checks'].append(str(plugin.checks)) + rows['admindataviews'].append(str(plugin.admindataviews)) return TableContext( title="Installed plugins", @@ -224,7 +235,7 @@ def plugin_detail_view(request: HttpRequest, key: str, **kwargs) -> ItemContext: 'binaries': plugin.binaries, 'extractors': plugin.extractors, 'replayers': plugin.replayers, - 'schema': obj_to_yaml(plugin.model_dump(include=('name', 'verbose_name', 'app_label', settings.PLUGIN_KEYS.keys()))), + 'schema': obj_to_yaml(plugin.model_dump(include=('name', 'verbose_name', 'app_label', *settings.PLUGIN_KEYS.keys()))), }, "help_texts": { # TODO