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 970a7f8a..05d56b70 100644 --- a/copyparty/util.py +++ b/copyparty/util.py @@ -72,6 +72,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 diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 5e7c00da..1caa0e0b 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -593,7 +593,7 @@ function autoplay_blocked() { ["tags", "tags", "tags contains   (^=start, end=$)", "46"] ]); sconf.push(["adv.", - ["adv", "adv", "key=5A  .bpm>159  .bpm<169", "46"] + ["adv", "adv", "key>=1A  key<=2B  .bpm>165", "46"] ]); } diff --git a/scripts/make-sfx.sh b/scripts/make-sfx.sh index 8906fe64..4211af08 100755 --- a/scripts/make-sfx.sh +++ b/scripts/make-sfx.sh @@ -169,6 +169,7 @@ done sed -r '/edit2">edit \(fancy/d' <$f >t && tmv "$f" } +[ $repack ] || find | grep -E '\.py$' | grep -vE '__version__' | tr '\n' '\0' |