diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index f5cc62e68..d53a1a44a 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -297,10 +297,11 @@ class BiblePlugin(Plugin): chapto = int(self.AdvancedToChapter.currentText()) versefrom = int(self.AdvancedFromVerse.currentText()) verseto = int(self.AdvancedToVerse.currentText()) - self.searchresults = self.biblemanager.get_verse_text(bible, book, chapfrom, versefrom, verseto) + self.searchresults = self.biblemanager.get_verse_text(bible, book, chapfrom, chapto, versefrom, verseto) self._display_results() def onQuickSearchButton(self): + self.log.debug("onQuickSearchButton") bible = str(self.QuickVersionComboBox.currentText()) text = str(self.QuickSearchEdit.displayText()) @@ -310,6 +311,7 @@ class BiblePlugin(Plugin): self._verse_search() def _search_text(self, bible, text): + self.log.debug("_search Text %s,%s", bible, text) self.searchresults = self.biblemanager.get_verse_from_text(bible,text) self._display_results() diff --git a/openlp/plugins/bibles/lib/bibleCSVimpl.py b/openlp/plugins/bibles/lib/bibleCSVimpl.py index 9ca48d619..3b6b3f0b5 100644 --- a/openlp/plugins/bibles/lib/bibleCSVimpl.py +++ b/openlp/plugins/bibles/lib/bibleCSVimpl.py @@ -59,7 +59,7 @@ class BibleCSVImpl(BibleCommon): p = line.split(",") p2 = p[2].replace('"', '') p3 = p[3].replace('"', '') - self.bibledb.createBook(int(p[1]), p2, p3) + self.bibledb.create_book(int(p[1]), p2, p3) book_ptr = "" @@ -70,7 +70,7 @@ class BibleCSVImpl(BibleCommon): p0 = p[0].replace('"', '') p3 = p[3].replace('"', '') if book_ptr is not p0: - cl = self.bibledb.getBibleBook(p0) + cl = self.bibledb.get_bible_book(p0) id = self.bibledb.getBibleBookId(p0) book_ptr = cl log.debug( id ) diff --git a/openlp/plugins/bibles/lib/bibleDBimpl.py b/openlp/plugins/bibles/lib/bibleDBimpl.py index bf1620606..961bf5dd4 100644 --- a/openlp/plugins/bibles/lib/bibleDBimpl.py +++ b/openlp/plugins/bibles/lib/bibleDBimpl.py @@ -147,7 +147,7 @@ class BibleDBImpl(BibleCommon): session.add(versemeta) session.commit() - def createChapter(self, bookid, chap, textlist): + def create_chapter(self, bookid, chap, textlist): log.debug( "createChapter %s,%s,%s", bookid, chap, textlist) metadata.bind.echo = False session = self.Session() @@ -160,7 +160,7 @@ class BibleDBImpl(BibleCommon): session.add(versemeta) session.commit() - def createBook(self, bookid, bookname, bookabbrev): + def create_book(self, bookid, bookname, bookabbrev): log.debug( "createBook %s,%s,%s", bookid, bookname, bookabbrev) metadata.bind.echo = False session = self.Session() @@ -175,7 +175,7 @@ class BibleDBImpl(BibleCommon): session.add(bmeta) session.commit() - def getMeta(self, key): + def get_meta(self, key): s = text (""" select value FROM metadata where key == :k """) return self.db.execute(s, k=key).fetchone() @@ -197,55 +197,55 @@ class BibleDBImpl(BibleCommon): session.commit() def get_bible_books(self): - log.debug( "getBibleBook ") + log.debug( "get_bible_book ") metadata.bind.echo = False s = text (""" select name FROM book order by id """) return self.db.execute(s).fetchall() def get_max_bible_book_verses(self, bookname, chapter): - log.debug( "getMaxBibleBookVerses %s,%s ", bookname , chapter) + log.debug( "get_max_bible_book_verses %s,%s ", bookname , chapter) metadata.bind.echo = False s = text (""" select max(verse.verse) from verse,book where chapter = :c and book_id = book.id and book.name = :b """) return self.db.execute(s, c=chapter, b=bookname).fetchone() def get_max_bible_book_chapter(self, bookname): - log.debug( "getMaxBibleBookChapters %s ", bookname ) + log.debug( "get_max_bible_book_chapter %s ", bookname ) metadata.bind.echo = False s = text (""" select max(verse.chapter) from verse,book where book_id = book.id and book.name = :b """) return self.db.execute(s, b=bookname).fetchone() - def getBibleBook(self, bookname): - log.debug( "getBibleBook %s", bookname) + def get_bible_book(self, bookname): + log.debug( "get_bible_book %s", bookname) metadata.bind.echo = False s = text (""" select name FROM book where book.name == :b """) return self.db.execute(s, b=bookname).fetchone() - def getBibleBookId(self, bookname): - log.debug( "getBibleBook %s", bookname) + def get_bible_book_Id(self, bookname): + log.debug( "get_bible_book_id %s", bookname) metadata.bind.echo = False s = text (""" select id FROM book where book.name == :b """) return self.db.execute(s, b=bookname).fetchone() - def getBibleChapter(self, bookname, chapter): - log.debug( "getBibleChapter %s,%s", bookname, chapter ) + def get_bible_chapter(self, bookname, chapter): + log.debug( "get_bible_chapter %s,%s", bookname, chapter ) metadata.bind.echo = False s = text (""" select book.name FROM verse,book where verse.book_id == book.id AND verse.chapter == :c and book.name == :b """) return self.db.execute(s, c=chapter, b=bookname).fetchone() - def getBibleText(self, bookname, chapter, sverse, everse): - log.debug( "getBibleText %s,%s,%s,%s ", bookname, chapter, sverse, everse) + def get_bible_text(self, bookname, chapter, sverse, everse): + log.debug( "get_bible_text %s,%s,%s,%s ", bookname, chapter, sverse, everse) metadata.bind.echo = False s = text (""" select name,chapter,verse.verse, verse.text FROM verse , book where verse.book_id == book.id AND verse.chapter == :c AND (verse.verse between :v1 and :v2) and book.name == :b """) return self.db.execute(s, c=chapter, v1=sverse , v2=everse, b=bookname).fetchall() def get_verses_from_text(self,versetext): - log.debug( "getBibleText %s",versetext) + log.debug( "get_verses_from_text %s",versetext) metadata.bind.echo = False versetext = "%"+versetext+"%" s = text (""" select book.name, verse.chapter, verse.verse, verse.text FROM verse , book where verse.book_id == book.id and verse.text like :t """) return self.db.execute(s, t=versetext).fetchall() - def dumpBible(self): + def dump_bible(self): log.debug( ".........Dumping Bible Database") log.debug( "...............................Books ") s = text (""" select * FROM book """) diff --git a/openlp/plugins/bibles/lib/bibleOSISimpl.py b/openlp/plugins/bibles/lib/bibleOSISimpl.py index eb46f1791..671725547 100644 --- a/openlp/plugins/bibles/lib/bibleOSISimpl.py +++ b/openlp/plugins/bibles/lib/bibleOSISimpl.py @@ -91,7 +91,7 @@ class BibleOSISImpl(): p = ref.split(".", 3) # split u[ the reference if book_ptr != p[0]: book_ptr = p[0] - self.bibledb.createBook(int(p[1]), self.booksOfBible[p[0]] , self.abbrevOfBible[p[0]]) + self.bibledb.create_book(int(p[1]), self.booksOfBible[p[0]] , self.abbrevOfBible[p[0]]) id = self.bibledb.getBibleBookId(self.booksOfBible[p[0]]) dialogobject.incrementBar() self.bibledb.addVerse(id[0], p[1], p[2], t) diff --git a/openlp/plugins/bibles/lib/biblemanager.py b/openlp/plugins/bibles/lib/biblemanager.py index 2dcc4cbeb..a859eea1c 100644 --- a/openlp/plugins/bibles/lib/biblemanager.py +++ b/openlp/plugins/bibles/lib/biblemanager.py @@ -56,13 +56,13 @@ class BibleManager(): nme = f.split('.') bname = nme[0] self.bibleDBCache[bname] = BibleDBImpl(self.biblePath, bname, self.bibleSuffix) - biblesource = self.bibleDBCache[bname].getMeta("WEB") # look to see if lazy load bible exists and get create getter. + biblesource = self.bibleDBCache[bname].get_meta("WEB") # look to see if lazy load bible exists and get create getter. if biblesource: print biblesource nhttp = BibleHTTPImpl() nhttp.setBibleSource(biblesource) # tell The Server where to get the verses from. self.bibleHTTPCache[bname] = nhttp - proxy = self.bibleDBCache[bname].getMeta("proxy") # look to see if lazy load bible exists and get create getter. + proxy = self.bibleDBCache[bname].get_meta("proxy") # look to see if lazy load bible exists and get create getter. nhttp.setProxy(proxy) # tell The Server where to get the verses from. # @@ -195,9 +195,9 @@ class BibleManager(): Returns the meta data for a given key """ log.debug( "get_meta %s,%s", bible, key) - self.bibleDBCache[bible].getMeta(key) + self.bibleDBCache[bible].get_meta(key) - def get_verse_text(self, bible, bookname, chapter, sverse, everse = 0 ): + def get_verse_text(self, bible, bookname, schapter, echapter, sverse, everse = 0 ): """ Returns a list of verses for a given Book, Chapter and ranges of verses. If the end verse(everse) is less then the start verse(sverse) @@ -205,9 +205,10 @@ class BibleManager(): bible - Which bible to use. Rest can be guessed at ! """ + text = [] #log.debug( self.bibleDBCache) #log.debug( self.bibleHTTPCache) - log.debug( "getVerseText %s,%s,%s,%s,%s", bible,bookname, chapter, sverse, everse) + log.debug( "get_verse_text %s,%s,%s,%s,%s,%s", bible,bookname, schapter,echapter, sverse, everse) # bookid = self.booksOfBible[bookname] # convert to id ie Genesis --> 1 Revelation --> 73 # # SORT OUT BOOKNAME BOOK ID. # # NAME COMES IN TO ID AND BACK TO NAME ? @@ -217,25 +218,36 @@ class BibleManager(): # if not c: # self._loadBook(bible,bookid, bookname, bookabbrev) # self._loadChapter(bible, bookid,bookname, chapter) - if everse < sverse: - everse = sverse - text = self.bibleDBCache[bible].getBibleText(bookname, chapter, sverse, everse) - #log.debug( text) - #self.bibleDBCache[bible].dumpBible() + if schapter == echapter: + text = self.bibleDBCache[bible].get_bible_text(bookname, schapter, sverse, everse) + else: + for i in range (schapter, echapter + 1): + if i == schapter: + start = sverse + end = self.get_book_verse_count(bible, bookname,i )[0] + elif i == echapter: + start = 1 + end = everse + else: + start = 1 + end = self.get_book_verse_count(bible, bookname,i )[0] + + txt = self.bibleDBCache[bible].get_bible_text(bookname, i, start, end) + text.extend(txt) return text def _load_book(self, bible, bookid, bookname, bookabbrev): log.debug( "load_book %s,%s,%s,%s", bible, bookid, bookname, bookabbrev) - cl = self.bibleDBCache[bible].getBibleBook(bookname) + cl = self.bibleDBCache[bible].get_bible_book(bookname) log.debug( "get bible book %s" , cl) if not cl : - self.bibleDBCache[bible].createBook(bookid, bookname, bookabbrev) + self.bibleDBCache[bible].create_book(bookid, bookname, bookabbrev) def _loadChapter(self, bible, bookid, bookname, chapter): log.debug( "load_chapter %s,%s,%s,%s", bible, bookid,bookname, chapter) try : - chaptlist = self.bibleHTTPCache[bible].getBibleChapter(bible, bookid,bookname, chapter) - self.bibleDBCache[bible].createChapter(bookname, chapter, chaptlist) + chaptlist = self.bibleHTTPCache[bible].get_bible_chapter(bible, bookid,bookname, chapter) + self.bibleDBCache[bible].create_chapter(bookname, chapter, chaptlist) except : log.error("Errow thrown %s", sys.exc_info()[1])