]> diplodocus.org Git - flac-archive/commitdiff
Add filename building.
author <epg@pretzelnet.org> <>
Thu, 27 Dec 2012 00:14:44 +0000 (16:14 -0800)
committer <epg@pretzelnet.org> <>
Thu, 27 Dec 2012 00:14:44 +0000 (16:14 -0800)
flac_archive/tags.py

index c304968e2ec6f78c53240c99b59305a0ea3aa2d8..d027257693134c3c4d220338ed60c170ae04d0ba 100644 (file)
@@ -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)