From b677f0da6e8ff8d067ec682a737b7a9b91851e38 Mon Sep 17 00:00:00 2001 From: Tim Jackson Date: Jul 02 2018 20:51:23 +0000 Subject: Update to version 1.4.2 --- diff --git a/titlesort.py b/titlesort.py deleted file mode 100644 index d65e0da..0000000 --- a/titlesort.py +++ /dev/null @@ -1,59 +0,0 @@ -PLUGIN_NAME = 'Title sort names' -PLUGIN_AUTHOR = 'Jacob Rask' -PLUGIN_DESCRIPTION = 'Guesses title and album sortnames (language specific) and adds as titlesort and albumsort tags.' -PLUGIN_VERSION = "0.1.4" -PLUGIN_API_VERSIONS = ["0.12", "0.15"] - -from picard.metadata import register_track_metadata_processor -from picard.metadata import register_album_metadata_processor -import re - -# define articles -_articles = {} -_articles['deu'] = ['Der ', 'Das ', 'Die ', 'Eine? '] # German -_articles['eng'] = ['Th[ae] ', 'Da ', 'An? '] # English -_articles['esp'] = ['El ', 'La ', 'L[ao]s ', 'Una? ', 'Un[ao]s '] # Spanish -_articles['fra'] = ["Les? ", "La ", "L'", "Une? ", "Des "] # French -_articles['ita'] = ["Il ", "L[aeo] ", "L'", "I ", "Gli ", "Un[ao]? ", "Un'"] # Italian -_articles['swe'] = ['De[nt]? ', 'Dom ', 'E(n|tt) '] # Swedish - -# compile sort language regular expressions -_re_articles = {} -_regmul = '' -for lang, a in _articles.iteritems(): - reg = '' - for i in range(len(a)): - reg = '|^' + _articles[lang][i] + reg - _re_articles[lang] = re.compile(reg[1:]) - _regmul = _regmul + reg -# all articles are collected and used for "multiple languages" -_re_articles['mul'] = re.compile(_regmul[1:]) - -def make_sorttitle(title, lang): - if lang not in _re_articles: - lang = "mul" - sort_re = _re_articles[lang] - match = sort_re.match(title) - titlesort = title - if match: - sort_prefix = match.group().strip() - titlesort = sort_re.sub("", title).strip() + ", " + sort_prefix - titlesort = titlesort[0].upper() + titlesort[1:] # capitalize first letter - return titlesort - -def add_titlesort(tagger, metadata, release, track): - if metadata["titlesort"]: - titlesort = metadata["titlesort"] - else: - titlesort = metadata["title"] - metadata["titlesort"] = make_sorttitle(titlesort, metadata["language"]) - -def add_albumsort(tagger, metadata, release): - if metadata["albumsort"]: - titlesort = metadata["albumsort"] - else: - titlesort = metadata["album"] - metadata["albumsort"] = make_sorttitle(titlesort, metadata["language"]) - -register_track_metadata_processor(add_titlesort) -register_album_metadata_processor(add_albumsort) diff --git a/titleversion.py b/titleversion.py deleted file mode 100644 index ffaa5dc..0000000 --- a/titleversion.py +++ /dev/null @@ -1,27 +0,0 @@ -PLUGIN_NAME = 'Move metadata to version tag' -PLUGIN_AUTHOR = 'Jacob Rask' -PLUGIN_DESCRIPTION = 'Moves song metadata such as "demo", "live" from title and titlesort to version tag.' -PLUGIN_VERSION = "0.1.4" -PLUGIN_API_VERSIONS = ["0.12", "0.15"] - -from picard.metadata import register_track_metadata_processor -import re - -_p_re = re.compile(r"\(.*?\)") -_v_re = re.compile(r"((\s|-)?(acoustic|akustisk|album|bonus|clean|club|cut|C=64|dance|dirty|disco|encore|extended|inch|maxi|live|original|radio|redux|rehearsal|reprise|reworked|ringtone|[Ss]essions?|short|studio|take|variant|version|vocal)(\s|-)?|.*?(capp?ella)\s?|(\s|-)?(alternat|demo|dub|edit|ext|fail|instr|long|orchestr|record|remaster|remix|strument|[Tt]ape|varv).*?|.*?(complete|mix|inspel).*?)") - -def add_title_version(tagger, metadata, release, track): - if metadata["titlesort"]: - title = metadata["titlesort"] - else: - title = metadata["title"] - pmatch = _p_re.findall(title) - if pmatch: # if there's a parenthesis, investigate - pstr = pmatch[-1][1:-1] # get last match and strip paranthesis - vmatch = _v_re.search(pstr) - if vmatch: - metadata["titlesort"] = re.sub("\(" + pstr + "\)", "", title).strip() - metadata["title"] = re.sub("\(" + pstr + "\)", "", title).strip() - metadata["version"] = pstr - -register_track_metadata_processor(add_title_version)