From: Date: Thu, 27 Dec 2012 00:14:44 +0000 (-0800) Subject: Add filename building. X-Git-Url: https://diplodocus.org/git/flac-archive/commitdiff_plain/756354a9277c061f6dd488b029f2af33b33af030?ds=inline Add filename building. --- diff --git a/flac_archive/tags.py b/flac_archive/tags.py index c304968..d027257 100644 --- a/flac_archive/tags.py +++ b/flac_archive/tags.py @@ -78,3 +78,29 @@ class Tags(object): for value in values: result.append('%s=%s' % (tag, value)) return result + + def get_path_safe(self, key, track=None): + return self.gets(key, track=track, separator=' ').replace('/', '_') + + def make_filename(self, track=None): + album = self.get_path_safe('ALBUM') + disc = self.gets('DISCNUMBER') + if track is None: + if disc is None: + return album + return '%02d %s' % (int(disc), album) + # Assemble space-delimited filename parts. + parts = [] + title = self.get_path_safe('TITLE', track=track) + if disc is not None: + parts.append('%02d' % int(disc)) + parts.append('%02d' % (track,)) + parts.append(title) + # PART?! Do I really have anything using that? From the documentation: + # http://age.hobba.nl/audio/mirroredpages/ogg-tagging.html + # It looks like this might be for breaking a track into multiple files; + # not sure. This doesn't seem quite right anyway. + part = self.gets('PART', track) + if part is not None: + parts.extend(['-', part]) + return ' '.join(parts)