]> diplodocus.org Git - flac-archive/blobdiff - rewrite-tags
Don't save TRACKNUMBER.
[flac-archive] / rewrite-tags
index 6d47eaadad6873173eb7d2dc00296e36b3ec4680..e164f3f634156b5bc2daffb3ce6a387781377a22 100755 (executable)
@@ -3,8 +3,6 @@
 import sys
 from subprocess import Popen, PIPE
 
-from org.diplodocus.util import run_or_die
-
 from flac_archive.tags import Tags
 
 class SubprocessError(Exception):
@@ -45,11 +43,15 @@ def do_read(filenames):
     for fn in filenames:
         tags = get_tags(fn)
         track_tags = tags.get('TRACKNUMBER')
+        # this check belongs in Tags
         if len(track_tags) != 1:
             sys.stderr.write('bogus TRACKNUMBER %s: %s\n' % (track_tags, fn))
             return 3
         track = int(track_tags[0])
         for tag, values in tags._global.iteritems():
+            # Makes no sense to save TRACKNUMBER in coll_tags.
+            if tag == 'TRACKNUMBER':
+                continue
             for value in values:
                 if tag in all_tags:
                     all_tags[tag].add(value)
@@ -66,6 +68,33 @@ def do_read(filenames):
     print '\n'.join(coll_tags.all())
     return 0
 
+def do_write(args):
+    tags = Tags()
+    tags.load(open(args.pop(0)))
+    if len(args) != len(tags):
+        sys.stderr.write('expected %d flac files, got %d\n'
+                         % (len(tags), len(args)))
+        return 4
+    artist = tags.get_path_safe('ARTIST')
+    album = tags.get_path_safe('ALBUM'),
+    try:
+        os.mkdir(artist)
+    except OSError, e:
+        if e.errno != EEXIST:
+            raise
+    album_path = artist + '/' + album
+    try:
+        os.mkdir(album_path)
+    except OSError, e:
+        if e.errno != EEXIST:
+            raise
+    for i, old_fn in enumerate(args):
+        track = i + 1
+        fn = '%s/%s/%s.flac' % (artist, album, tags.make_filename(track))
+        if fn != old_fn:
+            #os.rename(old_fn, fn)
+            pass
+
 def main(args):
     if len(args) < 3:
         return usage()