From 57e3a2d3825304be7b4dd415882890a8b66ee5df Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 20 Mar 2021 05:45:34 +0100 Subject: [PATCH] normalize keys to rekobo on index --- copyparty/mtag.py | 8 +++++++- copyparty/util.py | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/copyparty/mtag.py b/copyparty/mtag.py index 2b112be8..efe93ba7 100644 --- a/copyparty/mtag.py +++ b/copyparty/mtag.py @@ -8,7 +8,7 @@ import shutil import subprocess as sp from .__init__ import PY2, WINDOWS -from .util import fsenc, fsdec +from .util import fsenc, fsdec, REKOBO_LKEY if not PY2: unicode = str @@ -151,6 +151,12 @@ class MTag(object): v = v.split("/")[0].strip().lstrip("0") ret[k] = v or 0 + # normalize key notation to rkeobo + okey = ret.get("key") + if okey: + key = okey.replace(" ", "").replace("maj", "").replace("min", "m") + ret["key"] = REKOBO_LKEY.get(key.lower(), okey) + return ret def compare(self, abspath): diff --git a/copyparty/util.py b/copyparty/util.py index 31a38a0c..2b238267 100644 --- a/copyparty/util.py +++ b/copyparty/util.py @@ -71,6 +71,43 @@ IMPLICATIONS = [ ] +REKOBO_KEY = { + v: ln.split(" ", 1)[0] + for ln in """ +1B 6d B +2B 7d Gb F# +3B 8d Db C# +4B 9d Ab G# +5B 10d Eb D# +6B 11d Bb A# +7B 12d F +8B 1d C +9B 2d G +10B 3d D +11B 4d A +12B 5d E +1A 6m Abm G#m +2A 7m Ebm D#m +3A 8m Bbm A#m +4A 9m Fm +5A 10m Cm +6A 11m Gm +7A 12m Dm +8A 1m Am +9A 2m Em +10A 3m Bm +11A 4m Gbm F#m +12A 5m Dbm C#m +""".strip().split( + "\n" + ) + for v in ln.strip().split(" ")[1:] + if v +} + +REKOBO_LKEY = {k.lower(): v for k, v in REKOBO_KEY.items()} + + class Counter(object): def __init__(self, v=0): self.v = v