mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-13 14:44:29 -04:00
first example of plugin config based on another plugin config
This commit is contained in:
parent
8df9480824
commit
1a58967e8c
2 changed files with 17 additions and 15 deletions
|
@ -20,7 +20,7 @@ from plugantic.base_hook import BaseHook
|
||||||
|
|
||||||
# Depends on Other Plugins:
|
# Depends on Other Plugins:
|
||||||
from builtin_plugins.npm.apps import SYS_NPM_BINPROVIDER, LIB_NPM_BINPROVIDER
|
from builtin_plugins.npm.apps import SYS_NPM_BINPROVIDER, LIB_NPM_BINPROVIDER
|
||||||
|
from builtin_plugins.base.apps import CORE_CONFIG
|
||||||
|
|
||||||
###################### Config ##########################
|
###################### Config ##########################
|
||||||
|
|
||||||
|
@ -33,12 +33,11 @@ class SinglefileToggleConfigs(BaseConfigSet):
|
||||||
class SinglefileOptionsConfigs(BaseConfigSet):
|
class SinglefileOptionsConfigs(BaseConfigSet):
|
||||||
section: ClassVar[ConfigSectionName] = 'ARCHIVE_METHOD_OPTIONS'
|
section: ClassVar[ConfigSectionName] = 'ARCHIVE_METHOD_OPTIONS'
|
||||||
|
|
||||||
# loaded from shared config
|
SINGLEFILE_USER_AGENT: str = Field(default=lambda: CORE_CONFIG.USER_AGENT)
|
||||||
SINGLEFILE_USER_AGENT: str = Field(default='', alias='USER_AGENT')
|
SINGLEFILE_TIMEOUT: int = Field(default=lambda: CORE_CONFIG.TIMEOUT)
|
||||||
SINGLEFILE_TIMEOUT: int = Field(default=60, alias='TIMEOUT')
|
SINGLEFILE_CHECK_SSL_VALIDITY: bool = Field(default=lambda: CORE_CONFIG.CHECK_SSL_VALIDITY)
|
||||||
SINGLEFILE_CHECK_SSL_VALIDITY: bool = Field(default=True, alias='CHECK_SSL_VALIDITY')
|
SINGLEFILE_RESTRICT_FILE_NAMES: str = Field(default=lambda: CORE_CONFIG.RESTRICT_FILE_NAMES)
|
||||||
SINGLEFILE_RESTRICT_FILE_NAMES: str = Field(default='windows', alias='RESTRICT_FILE_NAMES')
|
SINGLEFILE_COOKIES_FILE: Optional[Path] = Field(default=lambda: CORE_CONFIG.COOKIES_FILE)
|
||||||
SINGLEFILE_COOKIES_FILE: Optional[Path] = Field(default=None, alias='COOKIES_FILE')
|
|
||||||
|
|
||||||
|
|
||||||
class SinglefileDependencyConfigs(BaseConfigSet):
|
class SinglefileDependencyConfigs(BaseConfigSet):
|
||||||
|
|
|
@ -201,18 +201,21 @@ class BaseConfigSet(ArchiveBoxBaseConfig, BaseHook): # type: ignore[type-ar
|
||||||
def register(self, settings, parent_plugin=None):
|
def register(self, settings, parent_plugin=None):
|
||||||
# self._plugin = parent_plugin # for debugging only, never rely on this!
|
# self._plugin = parent_plugin # for debugging only, never rely on this!
|
||||||
|
|
||||||
settings.FLAT_CONFIG = getattr(settings, "FLAT_CONFIG", None) or benedict({})
|
# settings.FLAT_CONFIG = benedict(getattr(settings, "FLAT_CONFIG", settings.CONFIG))
|
||||||
|
# # pass FLAT_CONFIG so far into our config model to load it
|
||||||
|
# loaded_config = self.__class__(**settings.FLAT_CONFIG)
|
||||||
|
# # then dump our parsed config back into FLAT_CONFIG for the next plugin to use
|
||||||
|
# settings.FLAT_CONFIG.merge(loaded_config.model_dump(include=set(self.model_fields.keys())))
|
||||||
|
|
||||||
settings.CONFIGS = getattr(settings, "CONFIGS", None) or benedict({})
|
settings.CONFIGS = getattr(settings, "CONFIGS", None) or benedict({})
|
||||||
|
settings.CONFIGS[self.id] = self
|
||||||
# pass FLAT_CONFIG so far into our config model to load it
|
self._original_id = id(self)
|
||||||
loaded_config = self.__class__(**settings.FLAT_CONFIG)
|
|
||||||
# then dump our parsed config back into FLAT_CONFIG for the next plugin to use
|
|
||||||
settings.FLAT_CONFIG.merge(loaded_config.model_dump())
|
|
||||||
|
|
||||||
settings.CONFIGS[self.id] = loaded_config
|
|
||||||
|
|
||||||
super().register(settings, parent_plugin=parent_plugin)
|
super().register(settings, parent_plugin=parent_plugin)
|
||||||
|
|
||||||
|
# def ready(self, settings):
|
||||||
|
# # reload config from environment, in case it's been changed by any other plugins
|
||||||
|
# self.__init__()
|
||||||
|
|
||||||
|
|
||||||
# class WgetToggleConfig(ConfigSet):
|
# class WgetToggleConfig(ConfigSet):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue