X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/d6b74a96802147270fbfa4f16cb10656d8143f11..4f7ee05ce0e2f56f27fe990d86415564ceb849cc:/fa-rip diff --git a/fa-rip b/fa-rip index cfd3967..33fcc0d 100755 --- 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 @@ -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')