* examples/readdisc.py:

Rip HTOA as well.  Add disc-template parameter.
This commit is contained in:
Thomas Vander Stichele
2009-05-15 20:40:20 +00:00
parent dc9ac1c6e3
commit dc5f2ba75f
2 changed files with 54 additions and 6 deletions

View File

@@ -1,3 +1,8 @@
2009-05-15 Thomas Vander Stichele <thomas at apestaart dot org>
* examples/readdisc.py:
Rip HTOA as well. Add disc-template parameter.
2009-05-15 Thomas Vander Stichele <thomas at apestaart dot org>
* morituri/image/table.py:

View File

@@ -52,6 +52,8 @@ def gtkmain(runner, taskk):
runner.run(taskk)
gtk.main()
window.remove(runner)
window.hide()
def climain(runner, taskk):
runner.run(taskk)
@@ -161,8 +163,13 @@ def getPath(template, metadata, i):
if metadata:
v['A'] = filterForPath(metadata.artist)
v['d'] = filterForPath(metadata.title)
v['a'] = filterForPath(metadata.tracks[i].artist)
v['n'] = filterForPath(metadata.tracks[i].title)
if i >= 0:
v['a'] = filterForPath(metadata.tracks[i].artist)
v['n'] = filterForPath(metadata.tracks[i].title)
else:
# htoa defaults to disc's artist
v['a'] = filterForPath(metadata.artist)
v['n'] = filterForPath('Hidden Track One Audio')
import re
template = re.sub(r'%(\w)', r'%(\1)s', template)
@@ -195,6 +202,12 @@ def main(argv):
action="store", dest="track_template",
help="template for track file naming (default %s)" % default,
default=default)
default = '%A - %d/%A - %d'
parser.add_option('', '--disc-template',
action="store", dest="disc_template",
help="template for disc file naming (default %s)" % default,
default=default)
options, args = parser.parse_args(argv[1:])
@@ -227,6 +240,31 @@ def main(argv):
metadata = musicbrainz(itable.getMusicBrainzDiscId())
# check for hidden track one audio
htoa = None
track = itable.tracks[0]
try:
index = track.getIndex(0)
except KeyError:
pass
if index:
start = index.absolute
stop = track.getIndex(1).absolute
print 'Found Hidden Track One Audio from frame %d to %d' % (start, stop)
# rip it
path = getPath(options.track_template, metadata, -1) + '.wav'
if not os.path.exists(path):
print 'Ripping track %d: %s' % (0, os.path.basename(path))
t = cdparanoia.ReadVerifyTrackTask(path, ittoc,
start, stop - 1,
offset=int(options.offset))
function(runner, t)
# overlay this rip onto the IndexTable
itable.setFile(1, 0, path, stop - start, 0)
for i, track in enumerate(itable.tracks):
path = getPath(options.track_template, metadata, i) + '.wav'
dirname = os.path.dirname(path)
@@ -248,9 +286,14 @@ def main(argv):
# overlay this rip onto the IndexTable
itable.setFile(i + 1, 1, path, ittoc.getTrackLength(i + 1), i + 1)
discName = 'morituri'
if metadata:
discName = filterForPath('%s - %s' % (metadata.artist, metadata.title))
### write disc files
discName = getPath(options.disc_template, metadata, i)
dirname = os.path.dirname(discName)
if not os.path.exists(dirname):
os.makedirs(dirname)
# write .cue file
cuePath = '%s.cue' % discName
handle = open(cuePath, 'w')
handle.write(itable.cue())
@@ -322,7 +365,7 @@ def main(argv):
else:
maxConfidence = max(r.confidences[i] for r in responses)
c = "(confidence %3d)" % maxConfidence
c = "(max confidence %3d)" % maxConfidence
if confidence is not None:
if confidence < maxConfidence:
c = "(confidence %3d of %3d)" % (confidence, maxConfidence)