Fix 'list index out of range' bug
It was introduced in commit acf942b5b6.
The error happens because 'self.itable.tracks' is a list of tracks
(zero-based numbering, HTOA excluded) so the first track can be accessed with
'self.itable.tracks[0]' but when 'number' has value 0, that matches the HTOA
(everything is shifted by one compared to 'self.itable.tracks').
It's unrelated to this bugfix but I've also moved some instructions outside
the try ... except clause.
Fixes #512.
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
This commit is contained in:
@@ -446,13 +446,16 @@ Log files will log the path to tracks relative to this directory.
|
||||
logger.info('ripping track %d of %d%s: %s',
|
||||
number, len(self.itable.tracks), extra,
|
||||
os.path.basename(path))
|
||||
|
||||
logger.debug('ripIfNotRipped: track %d, try %d', number,
|
||||
tries)
|
||||
tag_list = self.program.getTagList(number, self.mbdiscid)
|
||||
# An HTOA can't have an ISRC value
|
||||
if (number > 0 and
|
||||
self.itable.tracks[number - 1].isrc is not None):
|
||||
tag_list['ISRC'] = self.itable.tracks[number - 1].isrc
|
||||
|
||||
try:
|
||||
logger.debug('ripIfNotRipped: track %d, try %d',
|
||||
number, tries)
|
||||
tag_list = self.program.getTagList(number,
|
||||
self.mbdiscid)
|
||||
if self.itable.tracks[number].isrc is not None:
|
||||
tag_list['ISRC'] = self.itable.tracks[number].isrc
|
||||
self.program.ripTrack(self.runner, trackResult,
|
||||
offset=int(self.options.offset),
|
||||
device=self.device,
|
||||
|
||||
Reference in New Issue
Block a user