Fixed bug #993445 and cleaned up the logic a little in some other places.

Fixes: https://launchpad.net/bugs/993445
This commit is contained in:
Raoul Snyman 2012-09-22 20:58:04 +02:00
parent 906f259d8e
commit b4ff5ab3e3
2 changed files with 18 additions and 2 deletions

View File

@ -160,10 +160,12 @@ class BGExtract(object):
verse = verse.strip()
try:
verse = int(verse)
except (TypeError, ValueError):
except ValueError:
verse_parts = verse.split(u'-')
if len(verse_parts) > 1:
verse = int(verse_parts[0])
except TypeError:
log.warn(u'Illegal verse number: %s', unicode(raw_verse_num))
verses.append((verse, text))
verse_list = {}
for verse, text in verses[::-1]:
@ -194,6 +196,10 @@ class BGExtract(object):
try:
clean_verse_num = int(str(raw_verse_num))
except ValueError:
verse_parts = str(raw_verse_num).split(u'-')
if len(verse_parts) > 1:
clean_verse_num = int(verse_parts[0])
except TypeError:
log.warn(u'Illegal verse number: %s', unicode(raw_verse_num))
if clean_verse_num:
verse_text = raw_verse_num.next

View File

@ -103,10 +103,20 @@ class OpenSongBible(BibleDB):
for verse in chapter.v:
if self.stop_import_flag:
break
verse_number = 0
try:
verse_number = int(verse.attrib[u'n'])
except ValueError:
verse_parts = verse.attrib[u'n'].split(u'-')
if len(verse_parts) > 1:
verse_number = int(verse_parts[0])
except TypeError:
log.warn(u'Illegal verse number: %s',
unicode(verse.attrib[u'n']))
self.create_verse(
db_book.id,
int(chapter.attrib[u'n'].split()[-1]),
int(verse.attrib[u'n']),
verse_number,
unicode(self.get_text(verse)))
self.wizard.incrementProgressBar(unicode(translate(
'BiblesPlugin.Opensong', 'Importing %s %s...',