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:
JoeLametta
2020-11-19 15:36:48 +00:00
parent 04ff005806
commit 3e61c3dc1b

View File

@@ -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,