From fc9acfb0dd15c0246999512d033ca8ec3ac0b500 Mon Sep 17 00:00:00 2001 From: Erik Lundin Date: Thu, 20 Sep 2012 23:07:32 +0200 Subject: [PATCH 1/2] Fixed bug #986495 'Cannot change bible language in bible editor' Fixes: https://launchpad.net/bugs/986495 --- openlp/plugins/bibles/lib/manager.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 66e0d93bc..a56aac80b 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -366,15 +366,20 @@ class BibleManager(object): """ log.debug(u'BibleManager.get_language_selection("%s")', bible) language_selection = self.get_meta_data(bible, u'book_name_language') - if language_selection: - try: - language_selection = int(language_selection.value) - except (ValueError, TypeError): - language_selection = LanguageSelection.Application - if language_selection is None or language_selection == -1: + if not language_selection or \ + language_selection.value == "None" or \ + language_selection.value == "-1": + # If None is returned, it's not the singleton object but a + # BibleMeta object with the value "None" language_selection = Settings().value( - self.settingsSection + u'/bookname language', + self.settingsSection + u'/book name language', 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 def verse_search(self, bible, second_bible, text): From b4ff5ab3e3bb04028efebdd61f18a5db0b955c0a Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 22 Sep 2012 20:58:04 +0200 Subject: [PATCH 2/2] Fixed bug #993445 and cleaned up the logic a little in some other places. Fixes: https://launchpad.net/bugs/993445 --- openlp/plugins/bibles/lib/http.py | 8 +++++++- openlp/plugins/bibles/lib/opensong.py | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index bd08e1a41..5a2dda43d 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -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 diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index b31064596..faf53b13c 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -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...',