Biblegateway addition

This commit is contained in:
Tim Bentley 2009-10-27 07:20:01 +00:00
parent 3ee930f6ae
commit 03ba804be7
7 changed files with 42 additions and 34 deletions

View File

@ -529,7 +529,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
version = check_latest_version(self.generalConfig, applicationVersion) version = check_latest_version(self.generalConfig, applicationVersion)
if applicationVersion != version: if applicationVersion != version:
version_text = unicode(self.trUtf8(u'OpenLP version %s has been updated ' version_text = unicode(self.trUtf8(u'OpenLP version %s has been updated '
u'to version %s')) u'to version %s\nWould you like to get it?'))
QtGui.QMessageBox.question(None, QtGui.QMessageBox.question(None,
self.trUtf8(u'OpenLP Version Updated'), self.trUtf8(u'OpenLP Version Updated'),
version_text % (applicationVersion, version), version_text % (applicationVersion, version),

View File

@ -105,4 +105,3 @@ class Ui_PluginViewDialog(object):
self.StatusLabel.setText(self.trUtf8(u'Status:')) self.StatusLabel.setText(self.trUtf8(u'Status:'))
self.StatusComboBox.setItemText(0, self.trUtf8(u'Active')) self.StatusComboBox.setItemText(0, self.trUtf8(u'Active'))
self.StatusComboBox.setItemText(1, self.trUtf8(u'Inactive')) self.StatusComboBox.setItemText(1, self.trUtf8(u'Inactive'))

View File

@ -62,18 +62,18 @@ class AuditPlugin(Plugin):
self.toolsMenu = tools_menu self.toolsMenu = tools_menu
self.AuditMenu = QtGui.QMenu(tools_menu) self.AuditMenu = QtGui.QMenu(tools_menu)
self.AuditMenu.setObjectName(u'AuditMenu') self.AuditMenu.setObjectName(u'AuditMenu')
self.AuditMenu.setTitle(tools_menu.trUtf8(u'&Audit')) self.AuditMenu.setTitle(tools_menu.trUtf8(u'&Song Usage'))
#Audit Delete #Audit Delete
self.AuditDelete = QtGui.QAction(tools_menu) self.AuditDelete = QtGui.QAction(tools_menu)
self.AuditDelete.setText(tools_menu.trUtf8(u'Audit &Delete')) self.AuditDelete.setText(tools_menu.trUtf8(u'&Delete recorded data'))
self.AuditDelete.setStatusTip( self.AuditDelete.setStatusTip(
tools_menu.trUtf8(u'Delete all audit data to sepecified date')) tools_menu.trUtf8(u'Delete sing usage to sepecified date'))
self.AuditDelete.setObjectName(u'AuditDelete') self.AuditDelete.setObjectName(u'AuditDelete')
#Audit Report #Audit Report
self.AuditReport = QtGui.QAction(tools_menu) self.AuditReport = QtGui.QAction(tools_menu)
self.AuditReport.setText(tools_menu.trUtf8(u'Au&dit &Extract')) self.AuditReport.setText(tools_menu.trUtf8(u'&Extract recoreded data'))
self.AuditReport.setStatusTip( self.AuditReport.setStatusTip(
tools_menu.trUtf8(u'Generate Extracts on Audit Data')) tools_menu.trUtf8(u'Generate Extracts on Song Usage'))
self.AuditReport.setObjectName(u'AuditReport') self.AuditReport.setObjectName(u'AuditReport')
#Audit activation #Audit activation
AuditIcon = buildIcon(u':/tools/tools_alert.png') AuditIcon = buildIcon(u':/tools/tools_alert.png')
@ -81,9 +81,9 @@ class AuditPlugin(Plugin):
self.AuditStatus.setIcon(AuditIcon) self.AuditStatus.setIcon(AuditIcon)
self.AuditStatus.setCheckable(True) self.AuditStatus.setCheckable(True)
self.AuditStatus.setChecked(False) self.AuditStatus.setChecked(False)
self.AuditStatus.setText(tools_menu.trUtf8(u'A&udit Status')) self.AuditStatus.setText(tools_menu.trUtf8(u'Song Usage Status'))
self.AuditStatus.setStatusTip( self.AuditStatus.setStatusTip(
tools_menu.trUtf8(u'Start/Stop live song auditing')) tools_menu.trUtf8(u'Start/Stop live song usage recording'))
self.AuditStatus.setShortcut(u'F4') self.AuditStatus.setShortcut(u'F4')
self.AuditStatus.setObjectName(u'AuditStatus') self.AuditStatus.setObjectName(u'AuditStatus')
#Add Menus together #Add Menus together

View File

@ -162,6 +162,7 @@ class Ui_BibleImportDialog(object):
self.LocationComboBox = QtGui.QComboBox(self.OptionsGroupBox) self.LocationComboBox = QtGui.QComboBox(self.OptionsGroupBox)
self.LocationComboBox.setObjectName(u'LocationComboBox') self.LocationComboBox.setObjectName(u'LocationComboBox')
self.LocationComboBox.addItem(QtCore.QString()) self.LocationComboBox.addItem(QtCore.QString())
self.LocationComboBox.addItem(QtCore.QString())
self.horizontalLayout_4.addWidget(self.LocationComboBox) self.horizontalLayout_4.addWidget(self.LocationComboBox)
self.verticalLayout.addLayout(self.horizontalLayout_4) self.verticalLayout.addLayout(self.horizontalLayout_4)
self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5 = QtGui.QHBoxLayout()
@ -173,6 +174,7 @@ class Ui_BibleImportDialog(object):
self.BibleComboBox.setObjectName(u'BibleComboBox') self.BibleComboBox.setObjectName(u'BibleComboBox')
self.BibleComboBox.addItem(QtCore.QString()) self.BibleComboBox.addItem(QtCore.QString())
self.BibleComboBox.setItemText(0, u'') self.BibleComboBox.setItemText(0, u'')
self.BibleComboBox.setItemText(1, u'')
self.BibleComboBox.addItem(QtCore.QString()) self.BibleComboBox.addItem(QtCore.QString())
self.BibleComboBox.addItem(QtCore.QString()) self.BibleComboBox.addItem(QtCore.QString())
self.horizontalLayout_5.addWidget(self.BibleComboBox) self.horizontalLayout_5.addWidget(self.BibleComboBox)
@ -246,6 +248,7 @@ class Ui_BibleImportDialog(object):
self.OptionsGroupBox.setTitle(self.trUtf8(u'Download Options')) self.OptionsGroupBox.setTitle(self.trUtf8(u'Download Options'))
self.LocationLabel.setText(self.trUtf8(u'Location:')) self.LocationLabel.setText(self.trUtf8(u'Location:'))
self.LocationComboBox.setItemText(0, self.trUtf8(u'Crosswalk')) self.LocationComboBox.setItemText(0, self.trUtf8(u'Crosswalk'))
self.LocationComboBox.setItemText(1, self.trUtf8(u'BibleGateway'))
self.BibleLabel.setText(self.trUtf8(u'Bible:')) self.BibleLabel.setText(self.trUtf8(u'Bible:'))
self.BibleComboBox.setItemText(1, self.trUtf8(u'NIV')) self.BibleComboBox.setItemText(1, self.trUtf8(u'NIV'))
self.BibleComboBox.setItemText(2, self.trUtf8(u'KJV')) self.BibleComboBox.setItemText(2, self.trUtf8(u'KJV'))

View File

@ -50,38 +50,41 @@ class BGExtract(BibleCommon):
""" """
log.debug(u'get_bible_chapter %s,%s,%s', log.debug(u'get_bible_chapter %s,%s,%s',
version, bookname, chapter) version, bookname, chapter)
version=u'nasb'
urlstring = \ urlstring = \
u'http://www.biblegateway.com/passage/?search=%s %s&version=%s' % \ u'http://www.biblegateway.com/passage/?search=%s %s&version=%s' % \
(bookname, unicode(chapter) , version) (bookname, unicode(chapter) , version)
xml_string = self._get_web_text(urlstring, self.proxyurl) xml_string = self._get_web_text(urlstring, self.proxyurl)
VerseSearch = u'class=' + u'"' + u'sup' + u'"' + u'>' #print xml_string
verseSearch = u'<sup class='
verse = 1 verse = 1
i = xml_string.find(u'result-text-style-normal') i = xml_string.find(u'result-text-style-normal') + 26
xml_string = xml_string[i:len(xml_string)] xml_string = xml_string[i:len(xml_string)]
versePos = xml_string.find(VerseSearch) versePos = xml_string.find(verseSearch)
bible = {} bible = {}
while versePos > -1: while versePos > -1:
# clear out string # clear out string
verseText = u'' verseText = u''
versePos = xml_string.find(u'</span', versePos) versePos = xml_string.find(u'</sup>', versePos) + 6
i = xml_string.find(VerseSearch, versePos+1) i = xml_string.find(verseSearch, versePos + 1)
#print versePos, i, xml_string[versePos:i]#, xml_string
if i == -1: if i == -1:
i = xml_string.find(u'</div', versePos+1) i = xml_string.find(u'</div', versePos + 1)
j = xml_string.find(u'<strong', versePos+1) j = xml_string.find(u'<strong', versePos + 1)
if j > 0 and j < i: if j > 0 and j < i:
i = j i = j
verseText = xml_string[versePos + 7 : i ] verseText = xml_string[versePos + 7 : i ]
bible[verse] = self._clean_text(verseText) # store the verse bible[verse] = self._clean_text(verseText) # store the verse
versePos = -1 versePos = -1
else: else:
i = xml_string[:i].rfind(u'<span') + 1 verseText = xml_string[versePos: i]
verseText = xml_string[versePos + 7 : i - 1] # Loose </span> # Chop off verse and start again
# Chop off verse 1 xml_string = xml_string[i:]
xml_string = xml_string[i - 1 :len(xml_string)] #print "C", xml_string
versePos = xml_string.find(VerseSearch) #look for the next verse versePos = xml_string.find(verseSearch) #look for the next verse
bible[verse] = self._clean_text(verseText) # store the verse bible[verse] = self._clean_text(verseText) # store the verse
verse += 1 verse += 1
return bible return SearchResults(bookname, chapter, bible)
class CWExtract(BibleCommon): class CWExtract(BibleCommon):
global log global log
@ -107,8 +110,8 @@ class CWExtract(BibleCommon):
``chapter`` ``chapter``
Chapter number Chapter number
""" """
log.debug(u'get_bible_chapter %s,%s,%s,%s', log.debug(u'get_bible_chapter %s,%s,%s',
version, bookid, bookname, chapter) version, bookname, chapter)
bookname = bookname.replace(u' ', u'') bookname = bookname.replace(u' ', u'')
urlstring = u'http://bible.crosswalk.com/OnlineStudyBible/bible.cgi?word=%s+%d&version=%s'\ urlstring = u'http://bible.crosswalk.com/OnlineStudyBible/bible.cgi?word=%s+%d&version=%s'\
% (bookname, chapter, version) % (bookname, chapter, version)
@ -200,18 +203,18 @@ class BibleHTTPImpl():
log.debug(u'set_bible_source %s', biblesource) log.debug(u'set_bible_source %s', biblesource)
self.biblesource = biblesource self.biblesource = biblesource
def get_bible_chapter(self, version, bookid, bookname, chapter): def get_bible_chapter(self, version, bookname, chapter):
""" """
Receive the request and call the relevant handler methods Receive the request and call the relevant handler methods
""" """
log.debug(u'get_bible_chapter %s,%s,%s,%s', log.debug(u'get_bible_chapter %s,%s,%s',
version, bookid, bookname, chapter) version, bookname, chapter)
log.debug(u'biblesource = %s', self.biblesource) log.debug(u'biblesource = %s', self.biblesource)
try: try:
if self.biblesource.lower() == u'crosswalk': if self.biblesource.lower() == u'crosswalk':
ev = CWExtract(self.proxyurl) ev = CWExtract(self.proxyurl)
else: else:
ev = BGExtract(self.proxyurl) ev = BGExtract(self.proxyurl)
return ev.get_bible_chapter(self.bibleid, bookid, bookname, chapter) return ev.get_bible_chapter(self.bibleid, bookname, chapter)
except: except:
log.exception("Failed to get bible chapter") log.exception("Failed to get bible chapter")

View File

@ -351,10 +351,10 @@ class BibleManager(object):
log.debug(u'get_verse_text : new book') log.debug(u'get_verse_text : new book')
for chapter in range(schapter, echapter + 1): for chapter in range(schapter, echapter + 1):
self.media.setQuickMessage( self.media.setQuickMessage(
self.trUtf8(u'Downloading %s: %s') % (bookname, chapter)) unicode(self.media.trUtf8(u'Downloading %s: %s')) % (bookname, chapter))
search_results = \ search_results = \
self.bible_http_cache[bible].get_bible_chapter( self.bible_http_cache[bible].get_bible_chapter(
bible, 0, bookname, chapter) bible, bookname, chapter)
if search_results.has_verselist() : if search_results.has_verselist() :
## We have found a book of the bible lets check to see ## We have found a book of the bible lets check to see
## if it was there. By reusing the returned book name ## if it was there. By reusing the returned book name
@ -380,7 +380,7 @@ class BibleManager(object):
book.id, chapter) book.id, chapter)
if v is None: if v is None:
self.media.setQuickMessage( self.media.setQuickMessage(
self.trUtf8(u'%Downloading %s: %s')\ unicode(self.media.trUtf8(u'%Downloading %s: %s'))\
% (bookname, chapter)) % (bookname, chapter))
self.bible_db_cache[bible].create_chapter( self.bible_db_cache[bible].create_chapter(
book.id, chapter, book.id, chapter,
@ -392,8 +392,9 @@ class BibleManager(object):
book.id, chapter) book.id, chapter)
if v is None: if v is None:
try: try:
self.media.setQuickMessage \ self.media.setQuickMessage =\
(u'Downloading %s: %s'% (bookname, chapter)) unicode(self.media.trUtf8(u'Downloading %s: %s')
% (bookname, chapter))
search_results = \ search_results = \
self.bible_http_cache[bible].get_bible_chapter( self.bible_http_cache[bible].get_bible_chapter(
bible, book.id, bookname, chapter) bible, book.id, bookname, chapter)

View File

@ -65,6 +65,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertButtonTriggered) QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertButtonTriggered)
QtCore.QObject.connect(self.VerseAddButton, QtCore.QObject.connect(self.VerseAddButton,
QtCore.SIGNAL(u'clicked()'), self.onVerseAddButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onVerseAddButtonClicked)
QtCore.QObject.connect(self.VerseListWidget,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onVerseEditButtonClicked)
QtCore.QObject.connect(self.VerseEditButton, QtCore.QObject.connect(self.VerseEditButton,
QtCore.SIGNAL(u'clicked()'), self.onVerseEditButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onVerseEditButtonClicked)
QtCore.QObject.connect(self.VerseEditAllButton, QtCore.QObject.connect(self.VerseEditAllButton,
@ -94,7 +96,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
QtCore.QObject.connect(self.VerseOrderEdit, QtCore.QObject.connect(self.VerseOrderEdit,
QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus) QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus)
previewButton = QtGui.QPushButton() previewButton = QtGui.QPushButton()
previewButton.setText(self.trUtf8(u'Save & Preview')) previewButton.setText(self.trUtf8(u'Save && Preview'))
self.ButtonBox.addButton(previewButton, QtGui.QDialogButtonBox.ActionRole) self.ButtonBox.addButton(previewButton, QtGui.QDialogButtonBox.ActionRole)
QtCore.QObject.connect(self.ButtonBox, QtCore.QObject.connect(self.ButtonBox,
QtCore.SIGNAL(u'clicked(QAbstractButton*)'), self.onPreview) QtCore.SIGNAL(u'clicked(QAbstractButton*)'), self.onPreview)