added caching of renames via dictionary
This commit is contained in:
parent
d024bc1037
commit
763f861e84
27
mv3u.py
27
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())
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user