Handle missing self.options for whipper cd info
The attributes working_directory, disc_template, output_directory and offset are not defined during whipper cd info and they are only needed for ripping. self.program.getTable doesn't need output_path to gather the tocfile. Therefore, this part is excluded, if the attributes don't exist and an offset of 0 is used. Fixes issue #375. Co-authored-by: gorgobacka <tho.b.j@gmx.de> Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com> Signed-off-by: gorgobacka <tho.b.j@gmx.de>
This commit is contained in:
@@ -134,20 +134,23 @@ class _CD(BaseCommand):
|
|||||||
return -1
|
return -1
|
||||||
|
|
||||||
# Change working directory before cdrdao's task
|
# Change working directory before cdrdao's task
|
||||||
if self.options.working_directory is not None:
|
if getattr(self.options, 'working_directory', False):
|
||||||
os.chdir(os.path.expanduser(self.options.working_directory))
|
os.chdir(os.path.expanduser(self.options.working_directory))
|
||||||
out_bpath = self.options.output_directory.decode('utf-8')
|
if hasattr(self.options, 'output_directory'):
|
||||||
# Needed to preserve cdrdao's tocfile
|
out_bpath = self.options.output_directory.decode('utf-8')
|
||||||
out_fpath = self.program.getPath(out_bpath,
|
# Needed to preserve cdrdao's tocfile
|
||||||
self.options.disc_template,
|
out_fpath = self.program.getPath(out_bpath,
|
||||||
self.mbdiscid,
|
self.options.disc_template,
|
||||||
self.program.metadata)
|
self.mbdiscid,
|
||||||
|
self.program.metadata)
|
||||||
|
else:
|
||||||
|
out_fpath = None
|
||||||
# now, read the complete index table, which is slower
|
# now, read the complete index table, which is slower
|
||||||
|
offset = getattr(self.options, 'offset', 0)
|
||||||
self.itable = self.program.getTable(self.runner,
|
self.itable = self.program.getTable(self.runner,
|
||||||
self.ittoc.getCDDBDiscId(),
|
self.ittoc.getCDDBDiscId(),
|
||||||
self.ittoc.getMusicBrainzDiscId(),
|
self.ittoc.getMusicBrainzDiscId(),
|
||||||
self.device, self.options.offset,
|
self.device, offset, out_fpath)
|
||||||
out_fpath)
|
|
||||||
|
|
||||||
assert self.itable.getCDDBDiscId() == self.ittoc.getCDDBDiscId(), \
|
assert self.itable.getCDDBDiscId() == self.ittoc.getCDDBDiscId(), \
|
||||||
"full table's id %s differs from toc id %s" % (
|
"full table's id %s differs from toc id %s" % (
|
||||||
|
|||||||
Reference in New Issue
Block a user