diff --git a/src/ytdl_sub/config/plugin/plugin_mapping.py b/src/ytdl_sub/config/plugin/plugin_mapping.py index bf458d6a..0b837ae7 100644 --- a/src/ytdl_sub/config/plugin/plugin_mapping.py +++ b/src/ytdl_sub/config/plugin/plugin_mapping.py @@ -217,3 +217,11 @@ class PluginMapping: f"{', '.join(cls.plugins())}" ) return cls._MAPPING[plugin] + + @classmethod + def name_of(cls, plugin_options: OptionsValidator) -> str: + for name, plugin_type in cls._MAPPING.items(): + if plugin_type.plugin_options_type == plugin_options.__class__: + return name + + raise ValueError("Plugin name does not exist") \ No newline at end of file diff --git a/src/ytdl_sub/config/validators/variable_validation.py b/src/ytdl_sub/config/validators/variable_validation.py index 3a69c7c3..72370f31 100644 --- a/src/ytdl_sub/config/validators/variable_validation.py +++ b/src/ytdl_sub/config/validators/variable_validation.py @@ -199,10 +199,11 @@ class VariableValidation: for plugin_options in PluginMapping.order_options_by( self.plugins.zipped(), PluginOperation.MODIFY_ENTRY ): + plugin_key = PluginMapping.name_of(plugin_options) self._add_variables(PluginOperation.MODIFY_ENTRY, options=plugin_options) # Validate that any formatter in the plugin options can resolve - resolved_subscription[plugin_options.__class__.__name__] = validate_formatters( + resolved_subscription[plugin_key] = validate_formatters( script=self.script, unresolved_variables=self.unresolved_variables, validator=plugin_options, diff --git a/src/ytdl_sub/subscriptions/base_subscription.py b/src/ytdl_sub/subscriptions/base_subscription.py index 39a8a70a..f3e57ef8 100644 --- a/src/ytdl_sub/subscriptions/base_subscription.py +++ b/src/ytdl_sub/subscriptions/base_subscription.py @@ -245,3 +245,6 @@ class BaseSubscription(ABC): Subscription in yaml format """ return self._preset_options.yaml + + def resolved_yaml(self): + return self._preset_options.validated_dict diff --git a/src/ytdl_sub/validators/string_formatter_validators.py b/src/ytdl_sub/validators/string_formatter_validators.py index 53f316d4..253179ee 100644 --- a/src/ytdl_sub/validators/string_formatter_validators.py +++ b/src/ytdl_sub/validators/string_formatter_validators.py @@ -246,7 +246,10 @@ def _validate_formatter( unresolvable=unresolvable, update=True, ) - return out['tmp_var'].native + + if is_static_formatter: + return out['tmp_var'].native + return formatter_validator.format_string except RuntimeException as exc: if isinstance(exc, ScriptVariableNotResolved) and is_static_formatter: raise StringFormattingVariableNotFoundException(