From d024bc1037118e88c48c0030d9c0189cddd097df Mon Sep 17 00:00:00 2001 From: kageru Date: Wed, 18 Apr 2018 15:09:24 +0200 Subject: [PATCH] initial commit --- mv3u.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mv3u.py diff --git a/mv3u.py b/mv3u.py new file mode 100644 index 0000000..3c88538 --- /dev/null +++ b/mv3u.py @@ -0,0 +1,31 @@ +from beets.plugins import BeetsPlugin +import os + + +class MV3U(BeetsPlugin): + def __init__(self): + super(MV3U, self).__init__() + + self.register_listener('item_moved', self.mv3u) + + + def mv3u(self, item): + # TODO: cache renames, don’t write playlists for every single file + # TODO: sorted caching + src = item.path.decode() + dst = item.destination().decode() + + playlist_dir = self.config['playlists'].get() + + if not playlist_dir: + return + + for pl in os.listdir(playlist_dir): + pl = os.path.join(playlist_dir, pl) + p2 = None + with open(pl, 'r') as p: + p2 = [l.replace(src, dst) for l in p] + with open(pl, 'w') as p: + p.write(''.join(p2)) + #print(f'Changed entry {src} to {dst} in {pl}') +