diff --git a/picard/script/__init__.py b/picard/script/__init__.py
index 84ee4f469..918c7180f 100644
--- a/picard/script/__init__.py
+++ b/picard/script/__init__.py
@@ -142,7 +142,7 @@ def enabled_tagger_scripts_texts():
config = get_config()
if not config.setting['enable_tagger_scripts']:
return []
- return [(s_name, s_text) for _s_pos, s_name, s_enabled, s_text in config.setting['list_of_scripts'] if s_enabled and s_text]
+ return [(s.name, s.content) for s in iter_tagging_scripts_from_config(config=config) if s.enabled and s.content]
def get_file_naming_script(settings):
diff --git a/picard/ui/options/profiles.py b/picard/ui/options/profiles.py
index 221349e46..07dba374f 100644
--- a/picard/ui/options/profiles.py
+++ b/picard/ui/options/profiles.py
@@ -44,7 +44,10 @@ from picard.i18n import (
gettext_constants,
)
from picard.profile import profile_groups_values
-from picard.script import get_file_naming_script_presets
+from picard.script import (
+ get_file_naming_script_presets,
+ iter_tagging_scripts_from_tuples,
+)
from picard.util import get_base_title
from picard.ui.forms.ui_options_profiles import Ui_ProfileEditorDialog
@@ -249,7 +252,7 @@ class ProfilesOptionsPage(OptionsPage):
return _("Unknown script")
def _get_scripts_list(self, scripts):
- enabled_scripts = ['
%s' % name for (pos, name, enabled, script) in scripts if enabled]
+ enabled_scripts = ['%s' % s.name for s in iter_tagging_scripts_from_tuples(scripts) if s.enabled]
if not enabled_scripts:
return _("No enabled scripts")
return _("Enabled scripts:") + '' + "".join(enabled_scripts) + '
'
diff --git a/picard/ui/scripteditor.py b/picard/ui/scripteditor.py
index 867ccc4bd..ae9fb43fe 100644
--- a/picard/ui/scripteditor.py
+++ b/picard/ui/scripteditor.py
@@ -57,6 +57,7 @@ from picard.script import (
ScriptParser,
get_file_naming_script,
get_file_naming_script_presets,
+ iter_tagging_scripts_from_tuples,
)
from picard.script.serializer import (
FileNamingScript,
@@ -162,10 +163,10 @@ class ScriptEditorExamples():
try:
# Only apply scripts if the original file metadata has not been changed.
if self.settings['enable_tagger_scripts'] and not c_metadata.diff(file.orig_metadata):
- for s_pos, s_name, s_enabled, s_text in self.settings['list_of_scripts']:
- if s_enabled and s_text:
+ for s in iter_tagging_scripts_from_tuples(self.settings['list_of_scripts']):
+ if s.enabled and s.content:
parser = ScriptParser()
- parser.eval(s_text, c_metadata)
+ parser.eval(s.content, c_metadata)
filename_before = file.filename
filename_after = file.make_filename(filename_before, c_metadata, self.settings, self.script_text)
if not self.settings['move_files']: