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:
JoeLametta
2019-08-08 16:00:00 +00:00
parent d9b49df0aa
commit 993dd6cc33

View File

@@ -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" % (