From f847dca4f388f30fb6c8cdd814b2e8508b753181 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Tue, 16 Aug 2011 21:53:06 +0200 Subject: Simple metadata support for cue sheets. --- directory.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'directory.py') diff --git a/directory.py b/directory.py index 79024f4..5a757bd 100644 --- a/directory.py +++ b/directory.py @@ -5,9 +5,10 @@ from config import config class DirectoryEntry(object): '''Base class for directory entries.''' - def __init__(self, path, isabs = False, track = None): + def __init__(self, path, isabs = False, track = None, metadata = {}): self.path = path self.track = track + self.metadata = metadata if isabs: self.abs_path = path @@ -28,7 +29,7 @@ class DirectoryEntry(object): return '{name}
'.format(path = self.path, name = os.path.basename(self.path)) def json(self): - return {'type': self.entry_type, 'name': self.path, 'track': self.track} + return {'type': self.entry_type, 'name': self.path, 'track': self.track, 'metadata': self.metadata} class Directory(DirectoryEntry): '''A directory entry inside a directory.''' @@ -48,7 +49,15 @@ class Directory(DirectoryEntry): if os.path.splitext(f)[1] == '.cue': cue = cuesheet.Cuesheet(abs_path) for t in cue.tracks: - files.append(File(rel_path, track = t.track[0])) + metadata = {} + info = cue.info[0] + if info.performer: + metadata['artist'] = info.performer + if info.title: + metadata['album'] = info.title + if t.title: + metadata['title'] = t.title + files.append(File(rel_path, track = t.track[0], metadata = metadata)) else: files.append(File(rel_path)) return sorted(directories) + sorted(files) -- cgit v1.2.3