mirror of
https://github.com/fergalmoran/picard.git
synced 2026-05-20 01:46:07 +00:00
Replace enabled_tagger_scripts_texts() with iter_active_tagging_scripts()
- it iterates over enabled and non-empty tagger scripts - it yields TaggingScriptSetting objects
This commit is contained in:
@@ -82,7 +82,7 @@ from picard.plugin import (
|
||||
from picard.script import (
|
||||
ScriptError,
|
||||
ScriptParser,
|
||||
enabled_tagger_scripts_texts,
|
||||
iter_active_tagging_scripts,
|
||||
)
|
||||
from picard.track import Track
|
||||
from picard.util import (
|
||||
@@ -474,21 +474,21 @@ class Album(DataObject, MetadataItem):
|
||||
track.metadata_images_changed.connect(self.update_metadata_images)
|
||||
|
||||
# Prepare parser for user's script
|
||||
for s_name, s_text in enabled_tagger_scripts_texts():
|
||||
for script in iter_active_tagging_scripts():
|
||||
parser = ScriptParser()
|
||||
for track in self._new_tracks:
|
||||
# Run tagger script for each track
|
||||
try:
|
||||
parser.eval(s_text, track.metadata)
|
||||
parser.eval(script.content, track.metadata)
|
||||
except ScriptError:
|
||||
log.exception("Failed to run tagger script %s on track", s_name)
|
||||
log.exception("Failed to run tagger script %s on track", script.name)
|
||||
track.metadata.strip_whitespace()
|
||||
track.scripted_metadata.update(track.metadata)
|
||||
# Run tagger script for the album itself
|
||||
try:
|
||||
parser.eval(s_text, self._new_metadata)
|
||||
parser.eval(script.content, self._new_metadata)
|
||||
except ScriptError:
|
||||
log.exception("Failed to run tagger script %s on album", s_name)
|
||||
log.exception("Failed to run tagger script %s on album", script.name)
|
||||
self._new_metadata.strip_whitespace()
|
||||
|
||||
unmatched_files = [file for track in self.tracks for file in track.files]
|
||||
|
||||
@@ -136,13 +136,15 @@ def script_function_documentation_all(fmt='markdown', pre='',
|
||||
return "\n".join(doc_elements)
|
||||
|
||||
|
||||
def enabled_tagger_scripts_texts():
|
||||
"""Returns an iterator over the enabled tagger scripts.
|
||||
For each script, you'll get a tuple consisting of the script name and text"""
|
||||
config = get_config()
|
||||
def iter_active_tagging_scripts(config=None):
|
||||
"""Returns an iterator over the enabled and not empty tagging scripts."""
|
||||
if config is None:
|
||||
config = get_config()
|
||||
if not config.setting['enable_tagger_scripts']:
|
||||
return []
|
||||
return [(s.name, s.content) for s in iter_tagging_scripts_from_config(config=config) if s.enabled and s.content]
|
||||
return
|
||||
for script in iter_tagging_scripts_from_config(config=config):
|
||||
if script.enabled and script.content:
|
||||
yield script
|
||||
|
||||
|
||||
def get_file_naming_script(settings):
|
||||
|
||||
@@ -71,7 +71,7 @@ from picard.metadata import (
|
||||
from picard.script import (
|
||||
ScriptError,
|
||||
ScriptParser,
|
||||
enabled_tagger_scripts_texts,
|
||||
iter_active_tagging_scripts,
|
||||
)
|
||||
from picard.util import pattern_as_regex
|
||||
from picard.util.imagelist import ImageList
|
||||
@@ -201,12 +201,12 @@ class Track(DataObject, FileListItem):
|
||||
|
||||
@staticmethod
|
||||
def run_scripts(metadata, strip_whitespace=False):
|
||||
for s_name, s_text in enabled_tagger_scripts_texts():
|
||||
for script in iter_active_tagging_scripts():
|
||||
parser = ScriptParser()
|
||||
try:
|
||||
parser.eval(s_text, metadata)
|
||||
parser.eval(script.content, metadata)
|
||||
except ScriptError:
|
||||
log.exception("Failed to run tagger script %s on track", s_name)
|
||||
log.exception("Failed to run tagger script %s on track", script.name)
|
||||
if strip_whitespace:
|
||||
metadata.strip_whitespace()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user