]> diplodocus.org Git - flac-archive/blobdiff - fa-rip
Grab Amazon artwork, but don't do anything with it yet.
[flac-archive] / fa-rip
diff --git a/fa-rip b/fa-rip
index d63f95181e289d19cfa23727f52e07a75c0b13ba..33fcc0d5ad65ad5cf2b8c58f001b9cb991769653 100755 (executable)
--- a/fa-rip
+++ b/fa-rip
@@ -69,6 +69,7 @@ it under the same terms as Perl itself.
 
 import os, sys, tempfile, traceback
 from optparse import OptionParser
+import urllib
 
 import musicbrainz2.disc
 import musicbrainz2.webservice
@@ -124,7 +125,7 @@ def tags_file(fn, trackcount, various, artist=None, album=None,
         c(fp.write, 'DATE[%s]=%s\n' % (country, date))
     have_date or c(fp.write, 'DATE=\n')
 
-    for i in xrange(1, trackcount):
+    for i in xrange(1, trackcount + 1):
         try:
             track = tracks.pop(0)
             title = track.title
@@ -137,6 +138,12 @@ def tags_file(fn, trackcount, various, artist=None, album=None,
 
     c(fp.close)
 
+def cover_art(i, asin):
+    url = 'http://images.amazon.com/images/P/%s.01.MZZZZZZZ.jpg' % (asin,)
+    fp = file('cover.front-' + i, 'w')
+    fp.write(urllib.urlopen(url).read())
+    fp.close()
+
 def tags(disc, trackcount, mb=True):
     results = []
     seen_various = False
@@ -146,33 +153,34 @@ def tags(disc, trackcount, mb=True):
     if not mb:
         return
 
-    include = musicbrainz2.webservice.ReleaseIncludes(artist=True, tracks=True)
+    include = musicbrainz2.webservice.ReleaseIncludes(tracks=True)
     q = musicbrainz2.webservice.Query()
     filter = musicbrainz2.webservice.ReleaseFilter(discId=disc.getId())
 
     i = 0
     for album in q.getReleases(filter):
         i += 1
-        r = q.getReleaseById(album.release.id, include)
-        various = not r.isSingleArtistRelease()
+        various = not album.release.isSingleArtistRelease()
 
         if various and not seen_various:
             seen_various = True
             tags_file('candidate-tags-0v', trackcount, True)
 
         tags_file('candidate-tags-' + str(i), trackcount, various,
-                  r.artist.name, r.title,
+                  album.release.artist.name, album.release.title,
                   album.release.getReleaseEventsAsDict(),
-                  r.tracks)
+                  q.getReleaseById(album.release.id, include).tracks)
+
+        cover_art(str(i), album.release.asin)
 
 def rip(device, trackcount, single_file):
     if device == None:
         device = '/dev/cdrom'
 
-    argv = ['cdparanoia', '-d', device]
+    argv = ['cdparanoia', '-d', device, '1-' + str(trackcount)]
 
     if single_file:
-        argv.extend(['1-' + str(trackcount), 'wav'])
+        argv.append('wav')
     else:
         argv.append('-B')