This commit is contained in:
Andreas Preikschat 2012-10-08 17:40:56 +02:00
commit be3cb74ad7
3 changed files with 30 additions and 9 deletions

View File

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

View File

@ -366,15 +366,20 @@ class BibleManager(object):
""" """
log.debug(u'BibleManager.get_language_selection("%s")', bible) log.debug(u'BibleManager.get_language_selection("%s")', bible)
language_selection = self.get_meta_data(bible, u'book_name_language') language_selection = self.get_meta_data(bible, u'book_name_language')
if language_selection: if not language_selection or \
try: language_selection.value == "None" or \
language_selection = int(language_selection.value) language_selection.value == "-1":
except (ValueError, TypeError): # If None is returned, it's not the singleton object but a
language_selection = LanguageSelection.Application # BibleMeta object with the value "None"
if language_selection is None or language_selection == -1:
language_selection = Settings().value( language_selection = Settings().value(
self.settingsSection + u'/bookname language', self.settingsSection + u'/book name language',
QtCore.QVariant(0)).toInt()[0] QtCore.QVariant(0)).toInt()[0]
else:
language_selection = language_selection.value
try:
language_selection = int(language_selection)
except (ValueError, TypeError):
language_selection = LanguageSelection.Application
return language_selection return language_selection
def verse_search(self, bible, second_bible, text): def verse_search(self, bible, second_bible, text):

View File

@ -103,10 +103,20 @@ class OpenSongBible(BibleDB):
for verse in chapter.v: for verse in chapter.v:
if self.stop_import_flag: if self.stop_import_flag:
break 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( self.create_verse(
db_book.id, db_book.id,
int(chapter.attrib[u'n'].split()[-1]), int(chapter.attrib[u'n'].split()[-1]),
int(verse.attrib[u'n']), verse_number,
unicode(self.get_text(verse))) unicode(self.get_text(verse)))
self.wizard.incrementProgressBar(unicode(translate( self.wizard.incrementProgressBar(unicode(translate(
'BiblesPlugin.Opensong', 'Importing %s %s...', 'BiblesPlugin.Opensong', 'Importing %s %s...',