From 763f861e84d43c74ec08eb536c17d9b96f7acfc1 Mon Sep 17 00:00:00 2001 From: kageru Date: Sat, 28 Apr 2018 17:28:24 +0200 Subject: [PATCH] added caching of renames via dictionary --- mv3u.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/mv3u.py b/mv3u.py index 3c88538..d34b6c6 100644 --- a/mv3u.py +++ b/mv3u.py @@ -1,14 +1,18 @@ from beets.plugins import BeetsPlugin import os +rename_cache = os.path.expanduser('~/.cache/beets_mv3u_renames') class MV3U(BeetsPlugin): def __init__(self): super(MV3U, self).__init__() - self.register_listener('item_moved', self.mv3u) - - + self.register_listener('item_moved', self.add_rename) + self.register_listener('import_task_created', self.clear_persistence) + self.register_listener('import', self.mv3u) + + + """ def mv3u(self, item): # TODO: cache renames, don’t write playlists for every single file # TODO: sorted caching @@ -28,4 +32,25 @@ class MV3U(BeetsPlugin): with open(pl, 'w') as p: p.write(''.join(p2)) #print(f'Changed entry {src} to {dst} in {pl}') + """ + + + def clear_persistence(self, task, session): + if os.path.isfile(rename_cache): + os.remove(rename_cache) + + + def add_rename(self, item): + src = item.path.decode() + dst = item.destination().decode() + with open(rename_cache, 'a') as cache: + cache.write(f'{src}\t\t{dst}\n') + + + def mv3u(self, lib, paths): + def read_renames() -> dict: + with open(rename_cache) as cache: + return dict([line.rstrip('\n').split('\t\t') for line in cache]) + + print(read_renames())