Merge lp:~alisonken1/openlp/strings-plugins1 into lp:openlp

Proposed by Ken Roberts
Status: Merged
Approved by: Raoul Snyman
Approved revision: 2667
Merged at revision: 2667
Proposed branch: lp:~alisonken1/openlp/strings-plugins1
Merge into: lp:openlp
Diff against target: 1619 lines (+309/-201)
20 files modified
openlp/plugins/alerts/alertsplugin.py (+7/-3)
openlp/plugins/alerts/lib/alertsmanager.py (+1/-1)
openlp/plugins/alerts/lib/alertstab.py (+2/-1)
openlp/plugins/bibles/forms/bibleimportform.py (+11/-4)
openlp/plugins/bibles/forms/bibleupgradeform.py (+42/-28)
openlp/plugins/bibles/forms/editbibledialog.py (+6/-3)
openlp/plugins/bibles/forms/editbibleform.py (+8/-7)
openlp/plugins/bibles/lib/csvbible.py (+7/-5)
openlp/plugins/bibles/lib/db.py (+31/-29)
openlp/plugins/bibles/lib/http.py (+51/-36)
openlp/plugins/bibles/lib/manager.py (+21/-15)
openlp/plugins/bibles/lib/mediaitem.py (+47/-31)
openlp/plugins/bibles/lib/opensong.py (+7/-7)
openlp/plugins/bibles/lib/osis.py (+5/-4)
openlp/plugins/bibles/lib/sword.py (+3/-3)
openlp/plugins/bibles/lib/upgrade.py (+5/-5)
openlp/plugins/bibles/lib/versereferencelist.py (+14/-8)
openlp/plugins/bibles/lib/zefania.py (+6/-5)
tests/functional/openlp_core_lib/test_projectordb.py (+32/-3)
tests/functional/openlp_plugins/bibles/test_http.py (+3/-3)
To merge this branch: bzr merge lp:~alisonken1/openlp/strings-plugins1
Reviewer Review Type Date Requested Status
Raoul Snyman Approve
Tim Bentley Approve
Review via email: mp+295379@code.launchpad.net

Commit message

Update strings to python3 format in plugins part 1

Description of the change

Update strings to python3 format in plugins part 1

- Convert strings in alert plugin
- Convert strings in bible plugin
- Update bible plugin test
- Update projectordb test

--------------------------------
lp:~alisonken1/openlp/strings-plugins1 (revision 2667)
[SUCCESS] https://ci.openlp.io/job/Branch-01-Pull/1570/
[SUCCESS] https://ci.openlp.io/job/Branch-02-Functional-Tests/1481/
[SUCCESS] https://ci.openlp.io/job/Branch-03-Interface-Tests/1419/
[SUCCESS] https://ci.openlp.io/job/Branch-04a-Windows_Functional_Tests/1199/
[SUCCESS] https://ci.openlp.io/job/Branch-04b-Windows_Interface_Tests/789/
[SUCCESS] https://ci.openlp.io/job/Branch-05a-Code_Analysis/857/
[SUCCESS] https://ci.openlp.io/job/Branch-05b-Test_Coverage/725/

To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote :

looks Ok

review: Approve
Revision history for this message
Raoul Snyman (raoul-snyman) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openlp/plugins/alerts/alertsplugin.py'
--- openlp/plugins/alerts/alertsplugin.py 2016-03-31 16:34:22 +0000
+++ openlp/plugins/alerts/alertsplugin.py 2016-05-21 08:42:57 +0000
@@ -88,6 +88,7 @@
88 }88 }
89 }89 }
90"""90"""
91# TODO: Verify format() with variable templates
91CSS = """92CSS = """
92 #alert {93 #alert {
93 position: absolute;94 position: absolute;
@@ -244,6 +245,9 @@
244 :param frame: The Web frame holding the page.245 :param frame: The Web frame holding the page.
245 """246 """
246 align = VerticalType.Names[self.settings_tab.location]247 align = VerticalType.Names[self.settings_tab.location]
247 frame.evaluateJavaScript('update_css("%s", "%s", "%s", "%s", "%s")' %248 frame.evaluateJavaScript('update_css("{align}", "{face}", "{size}", "{color}", '
248 (align, self.settings_tab.font_face, self.settings_tab.font_size,249 '"{background}")'.format(align=align,
249 self.settings_tab.font_color, self.settings_tab.background_color))250 face=self.settings_tab.font_face,
251 size=self.settings_tab.font_size,
252 color=self.settings_tab.font_color,
253 background=self.settings_tab.background_color))
250254
=== modified file 'openlp/plugins/alerts/lib/alertsmanager.py'
--- openlp/plugins/alerts/lib/alertsmanager.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/alerts/lib/alertsmanager.py 2016-05-21 08:42:57 +0000
@@ -62,7 +62,7 @@
6262
63 :param text: The text to display63 :param text: The text to display
64 """64 """
65 self.log_debug('display alert called %s' % text)65 self.log_debug('display alert called {text}'.format(text=text))
66 if text:66 if text:
67 self.alert_list.append(text)67 self.alert_list.append(text)
68 if self.timer_id != 0:68 if self.timer_id != 0:
6969
=== modified file 'openlp/plugins/alerts/lib/alertstab.py'
--- openlp/plugins/alerts/lib/alertstab.py 2016-04-17 19:06:17 +0000
+++ openlp/plugins/alerts/lib/alertstab.py 2016-05-21 08:42:57 +0000
@@ -197,5 +197,6 @@
197 font.setBold(True)197 font.setBold(True)
198 font.setPointSize(self.font_size)198 font.setPointSize(self.font_size)
199 self.font_preview.setFont(font)199 self.font_preview.setFont(font)
200 self.font_preview.setStyleSheet('background-color: %s; color: %s' % (self.background_color, self.font_color))200 self.font_preview.setStyleSheet('background-color: {back}; color: {front}'.format(back=self.background_color,
201 front=self.font_color))
201 self.changed = True202 self.changed = True
202203
=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py'
--- openlp/plugins/bibles/forms/bibleimportform.py 2016-05-05 20:30:00 +0000
+++ openlp/plugins/bibles/forms/bibleimportform.py 2016-05-21 08:42:57 +0000
@@ -593,22 +593,27 @@
593 """593 """
594 Show the file open dialog for the books CSV file.594 Show the file open dialog for the books CSV file.
595 """595 """
596 # TODO: Verify format() with varible template
596 self.get_file_name(597 self.get_file_name(
597 WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csv_books_edit, 'last directory import', '%s (*.csv)' %598 WizardStrings.OpenTypeFile % WizardStrings.CSV,
598 translate('BiblesPlugin.ImportWizardForm', 'CSV File'))599 self.csv_books_edit,
600 'last directory import',
601 '{name} (*.csv)'.format(name=translate('BiblesPlugin.ImportWizardForm', 'CSV File')))
599602
600 def on_csv_verses_browse_button_clicked(self):603 def on_csv_verses_browse_button_clicked(self):
601 """604 """
602 Show the file open dialog for the verses CSV file.605 Show the file open dialog for the verses CSV file.
603 """606 """
607 # TODO: Verify format() with variable template
604 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csv_verses_edit,608 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csv_verses_edit,
605 'last directory import', '%s (*.csv)' %609 'last directory import',
606 translate('BiblesPlugin.ImportWizardForm', 'CSV File'))610 '{name} (*.csv)'.format(name=translate('BiblesPlugin.ImportWizardForm', 'CSV File')))
607611
608 def on_open_song_browse_button_clicked(self):612 def on_open_song_browse_button_clicked(self):
609 """613 """
610 Show the file open dialog for the OpenSong file.614 Show the file open dialog for the OpenSong file.
611 """615 """
616 # TODO: Verify format() with variable template
612 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OS, self.open_song_file_edit,617 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.OS, self.open_song_file_edit,
613 'last directory import')618 'last directory import')
614619
@@ -616,6 +621,7 @@
616 """621 """
617 Show the file open dialog for the Zefania file.622 Show the file open dialog for the Zefania file.
618 """623 """
624 # TODO: Verify format() with variable template
619 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.ZEF, self.zefania_file_edit,625 self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.ZEF, self.zefania_file_edit,
620 'last directory import')626 'last directory import')
621627
@@ -631,6 +637,7 @@
631 self.web_progress_bar.setVisible(True)637 self.web_progress_bar.setVisible(True)
632 self.web_progress_bar.setValue(0)638 self.web_progress_bar.setValue(0)
633 proxy_server = self.field('proxy_server')639 proxy_server = self.field('proxy_server')
640 # TODO: Where does critical_error_message_box get %s string from?
634 for (download_type, extractor) in ((WebDownload.Crosswalk, CWExtract(proxy_server)),641 for (download_type, extractor) in ((WebDownload.Crosswalk, CWExtract(proxy_server)),
635 (WebDownload.BibleGateway, BGExtract(proxy_server)),642 (WebDownload.BibleGateway, BGExtract(proxy_server)),
636 (WebDownload.Bibleserver, BSExtract(proxy_server))):643 (WebDownload.Bibleserver, BSExtract(proxy_server))):
637644
=== modified file 'openlp/plugins/bibles/forms/bibleupgradeform.py'
--- openlp/plugins/bibles/forms/bibleupgradeform.py 2016-04-22 18:25:57 +0000
+++ openlp/plugins/bibles/forms/bibleupgradeform.py 2016-05-21 08:42:57 +0000
@@ -209,7 +209,7 @@
209 for number, filename in enumerate(self.files):209 for number, filename in enumerate(self.files):
210 bible = OldBibleDB(self.media_item, path=self.path, file=filename[0])210 bible = OldBibleDB(self.media_item, path=self.path, file=filename[0])
211 self.checkBox[number] = QtWidgets.QCheckBox(self.scrollAreaContents)211 self.checkBox[number] = QtWidgets.QCheckBox(self.scrollAreaContents)
212 self.checkBox[number].setObjectName('checkBox[%d]' % number)212 self.checkBox[number].setObjectName('checkBox[{count:d}]'.format(count=number))
213 self.checkBox[number].setText(bible.get_name())213 self.checkBox[number].setText(bible.get_name())
214 self.checkBox[number].setCheckState(QtCore.Qt.Checked)214 self.checkBox[number].setCheckState(QtCore.Qt.Checked)
215 self.formLayout.addWidget(self.checkBox[number])215 self.formLayout.addWidget(self.checkBox[number])
@@ -364,7 +364,10 @@
364 name = filename[1]364 name = filename[1]
365 self.progress_label.setText(365 self.progress_label.setText(
366 translate('BiblesPlugin.UpgradeWizardForm',366 translate('BiblesPlugin.UpgradeWizardForm',
367 'Upgrading Bible %s of %s: "%s"\nUpgrading ...') % (number + 1, max_bibles, name))367 'Upgrading Bible {count} of {total}: "{name}"\n'
368 'Upgrading ...').format(count=number + 1,
369 total=max_bibles,
370 name=name))
368 self.new_bibles[number] = BibleDB(self.media_item, path=self.path, name=name, file=filename[0])371 self.new_bibles[number] = BibleDB(self.media_item, path=self.path, name=name, file=filename[0])
369 self.new_bibles[number].register(self.plugin.upgrade_wizard)372 self.new_bibles[number].register(self.plugin.upgrade_wizard)
370 metadata = old_bible.get_metadata()373 metadata = old_bible.get_metadata()
@@ -394,17 +397,19 @@
394 handler = BSExtract(proxy_server)397 handler = BSExtract(proxy_server)
395 books = handler.get_books_from_http(meta_data['download_name'])398 books = handler.get_books_from_http(meta_data['download_name'])
396 if not books:399 if not books:
397 log.error('Upgrading books from %s - download name: "%s" failed' % (400 log.error('Upgrading books from {uri} - '
398 meta_data['download_source'], meta_data['download_name']))401 'download name: "{name}" failed'.format(uri=meta_data['download_source'],
402 name=meta_data['download_name']))
399 self.new_bibles[number].session.close()403 self.new_bibles[number].session.close()
400 del self.new_bibles[number]404 del self.new_bibles[number]
401 critical_error_message_box(405 critical_error_message_box(
402 translate('BiblesPlugin.UpgradeWizardForm', 'Download Error'),406 translate('BiblesPlugin.UpgradeWizardForm', 'Download Error'),
403 translate('BiblesPlugin.UpgradeWizardForm',407 translate('BiblesPlugin.UpgradeWizardForm',
404 'To upgrade your Web Bibles an Internet connection is required.'))408 'To upgrade your Web Bibles an Internet connection is required.'))
405 self.increment_progress_bar(translate(409 text = translate('BiblesPlugin.UpgradeWizardForm',
406 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed') %410 'Upgrading Bible {count} of {total}: "{name}"\n'
407 (number + 1, max_bibles, name), self.progress_bar.maximum() - self.progress_bar.value())411 'Failed').format(count=number + 1, total=max_bibles, name=name)
412 self.increment_progress_bar(text, self.progress_bar.maximum() - self.progress_bar.value())
408 self.success[number] = False413 self.success[number] = False
409 continue414 continue
410 bible = BiblesResourcesDB.get_webbible(415 bible = BiblesResourcesDB.get_webbible(
@@ -416,12 +421,13 @@
416 else:421 else:
417 language_id = self.new_bibles[number].get_language(name)422 language_id = self.new_bibles[number].get_language(name)
418 if not language_id:423 if not language_id:
419 log.warning('Upgrading from "%s" failed' % filename[0])424 log.warning('Upgrading from "{name}" failed'.format(name=filename[0]))
420 self.new_bibles[number].session.close()425 self.new_bibles[number].session.close()
421 del self.new_bibles[number]426 del self.new_bibles[number]
422 self.increment_progress_bar(427 self.increment_progress_bar(
423 translate('BiblesPlugin.UpgradeWizardForm',428 translate('BiblesPlugin.UpgradeWizardForm',
424 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),429 'Upgrading Bible {count} of {total}: "{name}"\n'
430 'Failed').format(count=number + 1, total=max_bibles, name=name),
425 self.progress_bar.maximum() - self.progress_bar.value())431 self.progress_bar.maximum() - self.progress_bar.value())
426 self.success[number] = False432 self.success[number] = False
427 continue433 continue
@@ -432,13 +438,15 @@
432 break438 break
433 self.increment_progress_bar(439 self.increment_progress_bar(
434 translate('BiblesPlugin.UpgradeWizardForm',440 translate('BiblesPlugin.UpgradeWizardForm',
435 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') %441 'Upgrading Bible {count} of {total}: "{name}"\n'
436 (number + 1, max_bibles, name, book))442 'Upgrading {book} ...').format(count=number + 1, total=max_bibles,
443 name=name, book=book))
437 book_ref_id = self.new_bibles[number].\444 book_ref_id = self.new_bibles[number].\
438 get_book_ref_id_by_name(book, len(books), language_id)445 get_book_ref_id_by_name(book, len(books), language_id)
439 if not book_ref_id:446 if not book_ref_id:
440 log.warning('Upgrading books from %s - download name: "%s" aborted by user' % (447 log.warning('Upgrading books from {source} - download name: "{name}" '
441 meta_data['download_source'], meta_data['download_name']))448 'aborted by user'.format(source=meta_data['download_source'],
449 name=meta_data['download_name']))
442 self.new_bibles[number].session.close()450 self.new_bibles[number].session.close()
443 del self.new_bibles[number]451 del self.new_bibles[number]
444 self.success[number] = False452 self.success[number] = False
@@ -450,7 +458,7 @@
450 if oldbook:458 if oldbook:
451 verses = old_bible.get_verses(oldbook['id'])459 verses = old_bible.get_verses(oldbook['id'])
452 if not verses:460 if not verses:
453 log.warning('No verses found to import for book "%s"', book)461 log.warning('No verses found to import for book "{book}"'.format(book=book))
454 continue462 continue
455 for verse in verses:463 for verse in verses:
456 if self.stop_import_flag:464 if self.stop_import_flag:
@@ -465,12 +473,13 @@
465 if not language_id:473 if not language_id:
466 language_id = self.new_bibles[number].get_language(name)474 language_id = self.new_bibles[number].get_language(name)
467 if not language_id:475 if not language_id:
468 log.warning('Upgrading books from "%s" failed' % name)476 log.warning('Upgrading books from "{name}" failed'.format(name=name))
469 self.new_bibles[number].session.close()477 self.new_bibles[number].session.close()
470 del self.new_bibles[number]478 del self.new_bibles[number]
471 self.increment_progress_bar(479 self.increment_progress_bar(
472 translate('BiblesPlugin.UpgradeWizardForm',480 translate('BiblesPlugin.UpgradeWizardForm',
473 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),481 'Upgrading Bible {count} of {total}: "{name}"\n'
482 'Failed').format(count=number + 1, total=max_bibles, name=name),
474 self.progress_bar.maximum() - self.progress_bar.value())483 self.progress_bar.maximum() - self.progress_bar.value())
475 self.success[number] = False484 self.success[number] = False
476 continue485 continue
@@ -482,11 +491,12 @@
482 break491 break
483 self.increment_progress_bar(492 self.increment_progress_bar(
484 translate('BiblesPlugin.UpgradeWizardForm',493 translate('BiblesPlugin.UpgradeWizardForm',
485 'Upgrading Bible %s of %s: "%s"\nUpgrading %s ...') %494 'Upgrading Bible {count} of {total}: "{name}"\n'
486 (number + 1, max_bibles, name, book['name']))495 'Upgrading {book} ...').format(count=number + 1, total=max_bibles,
496 name=name, book=book['name']))
487 book_ref_id = self.new_bibles[number].get_book_ref_id_by_name(book['name'], len(books), language_id)497 book_ref_id = self.new_bibles[number].get_book_ref_id_by_name(book['name'], len(books), language_id)
488 if not book_ref_id:498 if not book_ref_id:
489 log.warning('Upgrading books from %s " failed - aborted by user' % name)499 log.warning('Upgrading books from {name} " failed - aborted by user'.format(name=name))
490 self.new_bibles[number].session.close()500 self.new_bibles[number].session.close()
491 del self.new_bibles[number]501 del self.new_bibles[number]
492 self.success[number] = False502 self.success[number] = False
@@ -496,7 +506,7 @@
496 book_details['testament_id'])506 book_details['testament_id'])
497 verses = old_bible.get_verses(book['id'])507 verses = old_bible.get_verses(book['id'])
498 if not verses:508 if not verses:
499 log.warning('No verses found to import for book "%s"', book['name'])509 log.warning('No verses found to import for book "{book}"'.format(book=book['name']))
500 self.new_bibles[number].delete_book(db_book)510 self.new_bibles[number].delete_book(db_book)
501 continue511 continue
502 for verse in verses:512 for verse in verses:
@@ -510,14 +520,16 @@
510 if not self.success.get(number, True):520 if not self.success.get(number, True):
511 self.increment_progress_bar(521 self.increment_progress_bar(
512 translate('BiblesPlugin.UpgradeWizardForm',522 translate('BiblesPlugin.UpgradeWizardForm',
513 'Upgrading Bible %s of %s: "%s"\nFailed') % (number + 1, max_bibles, name),523 'Upgrading Bible {count} of {total}: "{name}"\n'
524 'Failed').format(count=number + 1, total=max_bibles, name=name),
514 self.progress_bar.maximum() - self.progress_bar.value())525 self.progress_bar.maximum() - self.progress_bar.value())
515 else:526 else:
516 self.success[number] = True527 self.success[number] = True
517 self.new_bibles[number].save_meta('name', name)528 self.new_bibles[number].save_meta('name', name)
518 self.increment_progress_bar(529 self.increment_progress_bar(
519 translate('BiblesPlugin.UpgradeWizardForm',530 translate('BiblesPlugin.UpgradeWizardForm',
520 'Upgrading Bible %s of %s: "%s"\nComplete') % (number + 1, max_bibles, name))531 'Upgrading Bible {count} of {total}: "{name}"\n'
532 'Complete').format(count=number + 1, total=max_bibles, name=name))
521 if number in self.new_bibles:533 if number in self.new_bibles:
522 self.new_bibles[number].session.close()534 self.new_bibles[number].session.close()
523 # Close the last bible's connection if possible.535 # Close the last bible's connection if possible.
@@ -540,20 +552,22 @@
540 # Copy not upgraded bible back.552 # Copy not upgraded bible back.
541 shutil.move(os.path.join(self.temp_dir, filename[0]), self.path)553 shutil.move(os.path.join(self.temp_dir, filename[0]), self.path)
542 if failed_import > 0:554 if failed_import > 0:
543 failed_import_text = translate('BiblesPlugin.UpgradeWizardForm', ', %s failed') % failed_import555 failed_import_text = translate('BiblesPlugin.UpgradeWizardForm',
556 ', {name} failed').format(name=failed_import)
544 else:557 else:
545 failed_import_text = ''558 failed_import_text = ''
546 if successful_import > 0:559 if successful_import > 0:
547 if self.includeWebBible:560 if self.includeWebBible:
548 self.progress_label.setText(561 self.progress_label.setText(
549 translate('BiblesPlugin.UpgradeWizardForm',562 translate('BiblesPlugin.UpgradeWizardForm',
550 'Upgrading Bible(s): %(success)d successful%(failed_text)s\nPlease note that verses '563 'Upgrading Bible(s): {count:d} successful{failed}\nPlease note that verses '
551 'from Web Bibles will be downloaded on demand and so an Internet connection is required.')564 'from Web Bibles will be downloaded on demand and so an Internet connection is required.'
552 % {'success': successful_import, 'failed_text': failed_import_text})565 ).format(count=successful_import, failed=failed_import_text))
553 else:566 else:
554 self.progress_label.setText(567 self.progress_label.setText(
555 translate('BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible(s): %s successful%s') % (568 translate('BiblesPlugin.UpgradeWizardForm',
556 successful_import, failed_import_text))569 'Upgrading Bible(s): {count:d} successful{failed}').format(count=successful_import,
570 failed=failed_import_text))
557 else:571 else:
558 self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.'))572 self.progress_label.setText(translate('BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.'))
559 # Remove temp directory.573 # Remove temp directory.
560574
=== modified file 'openlp/plugins/bibles/forms/editbibledialog.py'
--- openlp/plugins/bibles/forms/editbibledialog.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/forms/editbibledialog.py 2016-05-21 08:42:57 +0000
@@ -103,9 +103,11 @@
103 self.book_name_edit = {}103 self.book_name_edit = {}
104 for book in BiblesResourcesDB.get_books():104 for book in BiblesResourcesDB.get_books():
105 self.book_name_label[book['abbreviation']] = QtWidgets.QLabel(self.book_name_widget)105 self.book_name_label[book['abbreviation']] = QtWidgets.QLabel(self.book_name_widget)
106 self.book_name_label[book['abbreviation']].setObjectName('book_name_label[%s]' % book['abbreviation'])106 self.book_name_label[book['abbreviation']].setObjectName(
107 'book_name_label[{name}]'.format(book=book['abbreviation']))
107 self.book_name_edit[book['abbreviation']] = QtWidgets.QLineEdit(self.book_name_widget)108 self.book_name_edit[book['abbreviation']] = QtWidgets.QLineEdit(self.book_name_widget)
108 self.book_name_edit[book['abbreviation']].setObjectName('book_name_edit[%s]' % book['abbreviation'])109 self.book_name_edit[book['abbreviation']].setObjectName(
110 'book_name_edit[{name}]'.format(name=book['abbreviation']))
109 self.book_name_widget_layout.addRow(111 self.book_name_widget_layout.addRow(
110 self.book_name_label[book['abbreviation']],112 self.book_name_label[book['abbreviation']],
111 self.book_name_edit[book['abbreviation']])113 self.book_name_edit[book['abbreviation']])
@@ -148,4 +150,5 @@
148 self.bible_tab_widget.indexOf(self.book_name_tab),150 self.bible_tab_widget.indexOf(self.book_name_tab),
149 translate('SongsPlugin.EditBibleForm', 'Custom Book Names'))151 translate('SongsPlugin.EditBibleForm', 'Custom Book Names'))
150 for book in BiblesResourcesDB.get_books():152 for book in BiblesResourcesDB.get_books():
151 self.book_name_label[book['abbreviation']].setText('%s:' % str(self.book_names[book['abbreviation']]))153 self.book_name_label[book['abbreviation']].setText(
154 '{text}:'.format(text=self.book_names[book['abbreviation']]))
152155
=== modified file 'openlp/plugins/bibles/forms/editbibleform.py'
--- openlp/plugins/bibles/forms/editbibleform.py 2016-01-09 16:26:14 +0000
+++ openlp/plugins/bibles/forms/editbibleform.py 2016-05-21 08:42:57 +0000
@@ -39,7 +39,7 @@
39 """39 """
40 Class to manage the editing of a bible40 Class to manage the editing of a bible
41 """41 """
42 log.info('%s EditBibleForm loaded', __name__)42 log.info('{name} EditBibleForm loaded'.format(name=__name__))
4343
44 def __init__(self, media_item, parent, manager):44 def __init__(self, media_item, parent, manager):
45 """45 """
@@ -168,16 +168,17 @@
168 self.book_name_edit[abbreviation].setFocus()168 self.book_name_edit[abbreviation].setFocus()
169 critical_error_message_box(169 critical_error_message_box(
170 UiStrings().EmptyField,170 UiStrings().EmptyField,
171 translate('BiblesPlugin.BibleEditForm', 'You need to specify a book name for "%s".') %171 translate('BiblesPlugin.BibleEditForm',
172 self.book_names[abbreviation])172 'You need to specify a book name for "{text}".').format(text=self.book_names[abbreviation]))
173 return False173 return False
174 elif not book_regex.match(new_book_name):174 elif not book_regex.match(new_book_name):
175 self.book_name_edit[abbreviation].setFocus()175 self.book_name_edit[abbreviation].setFocus()
176 critical_error_message_box(176 critical_error_message_box(
177 UiStrings().EmptyField,177 UiStrings().EmptyField,
178 translate('BiblesPlugin.BibleEditForm',178 translate('BiblesPlugin.BibleEditForm',
179 'The book name "%s" is not correct.\nNumbers can only be used at the beginning and must\nbe '179 'The book name "{name}" is not correct.\n'
180 'followed by one or more non-numeric characters.') % new_book_name)180 'Numbers can only be used at the beginning and must\nbe '
181 'followed by one or more non-numeric characters.').format(name=new_book_name))
181 return False182 return False
182 for abbr, book in self.books.items():183 for abbr, book in self.books.items():
183 if book:184 if book:
@@ -187,7 +188,7 @@
187 self.book_name_edit[abbreviation].setFocus()188 self.book_name_edit[abbreviation].setFocus()
188 critical_error_message_box(189 critical_error_message_box(
189 translate('BiblesPlugin.BibleEditForm', 'Duplicate Book Name'),190 translate('BiblesPlugin.BibleEditForm', 'Duplicate Book Name'),
190 translate('BiblesPlugin.BibleEditForm', 'The Book Name "%s" has been entered more than once.')191 translate('BiblesPlugin.BibleEditForm',
191 % new_book_name)192 'The Book Name "{name}" has been entered more than once.').format(name=new_book_name))
192 return False193 return False
193 return True194 return True
194195
=== modified file 'openlp/plugins/bibles/lib/csvbible.py'
--- openlp/plugins/bibles/lib/csvbible.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/lib/csvbible.py 2016-05-21 08:42:57 +0000
@@ -86,7 +86,7 @@
86 success = True86 success = True
87 language_id = self.get_language(bible_name)87 language_id = self.get_language(bible_name)
88 if not language_id:88 if not language_id:
89 log.error('Importing books from "%s" failed' % self.filename)89 log.error('Importing books from "{name}" failed'.format(name=self.filename))
90 return False90 return False
91 books_file = None91 books_file = None
92 book_list = {}92 book_list = {}
@@ -98,11 +98,11 @@
98 for line in books_reader:98 for line in books_reader:
99 if self.stop_import_flag:99 if self.stop_import_flag:
100 break100 break
101 self.wizard.increment_progress_bar(translate('BiblesPlugin.CSVBible', 'Importing books... %s')101 self.wizard.increment_progress_bar(translate('BiblesPlugin.CSVBible',
102 % line[2])102 'Importing books... {text}').format(text=line[2]))
103 book_ref_id = self.get_book_ref_id_by_name(line[2], 67, language_id)103 book_ref_id = self.get_book_ref_id_by_name(line[2], 67, language_id)
104 if not book_ref_id:104 if not book_ref_id:
105 log.error('Importing books from "%s" failed' % self.books_file)105 log.error('Importing books from "{name}" failed'.format(name=self.books_file))
106 return False106 return False
107 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)107 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
108 self.create_book(line[2], book_ref_id, book_details['testament_id'])108 self.create_book(line[2], book_ref_id, book_details['testament_id'])
@@ -134,9 +134,11 @@
134 if book_ptr != line_book:134 if book_ptr != line_book:
135 book = self.get_book(line_book)135 book = self.get_book(line_book)
136 book_ptr = book.name136 book_ptr = book.name
137 # TODO: Check out this conversion in translations
137 self.wizard.increment_progress_bar(138 self.wizard.increment_progress_bar(
138 translate('BiblesPlugin.CSVBible',139 translate('BiblesPlugin.CSVBible',
139 'Importing verses from %s...' % book.name, 'Importing verses from <book name>...'))140 'Importing verses from {name}...'.format(name=book.name),
141 'Importing verses from <book name>...'))
140 self.session.commit()142 self.session.commit()
141 verse_text = line[3]143 verse_text = line[3]
142 self.create_verse(book.id, line[1], line[2], verse_text)144 self.create_verse(book.id, line[1], line[2], verse_text)
143145
=== modified file 'openlp/plugins/bibles/lib/db.py'
--- openlp/plugins/bibles/lib/db.py 2016-04-05 17:30:20 +0000
+++ openlp/plugins/bibles/lib/db.py 2016-05-21 08:42:57 +0000
@@ -185,7 +185,7 @@
185 :param testament: *Defaults to 1.* The testament_reference_id from185 :param testament: *Defaults to 1.* The testament_reference_id from
186 bibles_resources.sqlite of the testament this book belongs to.186 bibles_resources.sqlite of the testament this book belongs to.
187 """187 """
188 log.debug('BibleDB.create_book("%s", "%s")' % (name, bk_ref_id))188 log.debug('BibleDB.create_book("{name}", "{number}")'.format(name=name, number=bk_ref_id))
189 book = Book.populate(name=name, book_reference_id=bk_ref_id, testament_reference_id=testament)189 book = Book.populate(name=name, book_reference_id=bk_ref_id, testament_reference_id=testament)
190 self.save_object(book)190 self.save_object(book)
191 return book191 return book
@@ -196,7 +196,7 @@
196196
197 :param book: The book object197 :param book: The book object
198 """198 """
199 log.debug('BibleDB.update_book("%s")' % book.name)199 log.debug('BibleDB.update_book("{name}")'.format(name=book.name))
200 return self.save_object(book)200 return self.save_object(book)
201201
202 def delete_book(self, db_book):202 def delete_book(self, db_book):
@@ -205,7 +205,7 @@
205205
206 :param db_book: The book object.206 :param db_book: The book object.
207 """207 """
208 log.debug('BibleDB.delete_book("%s")' % db_book.name)208 log.debug('BibleDB.delete_book("{name}")'.format(name=db_book.name))
209 if self.delete_object(Book, db_book.id):209 if self.delete_object(Book, db_book.id):
210 return True210 return True
211 return False211 return False
@@ -219,7 +219,7 @@
219 :param text_list: A dict of the verses to be inserted. The key is the verse number, and the value is the219 :param text_list: A dict of the verses to be inserted. The key is the verse number, and the value is the
220 verse text.220 verse text.
221 """221 """
222 log.debug('BibleDBcreate_chapter("%s", "%s")' % (book_id, chapter))222 log.debug('BibleDBcreate_chapter("{number}", "{chapter}")'.format(number=book_id, chapter=chapter))
223 # Text list has book and chapter as first two elements of the array.223 # Text list has book and chapter as first two elements of the array.
224 for verse_number, verse_text in text_list.items():224 for verse_number, verse_text in text_list.items():
225 verse = Verse.populate(225 verse = Verse.populate(
@@ -266,7 +266,7 @@
266 """266 """
267 if not isinstance(value, str):267 if not isinstance(value, str):
268 value = str(value)268 value = str(value)
269 log.debug('BibleDB.save_meta("%s/%s")' % (key, value))269 log.debug('BibleDB.save_meta("{key}/{val}")'.format(key=key, val=value))
270 meta = self.get_object(BibleMeta, key)270 meta = self.get_object(BibleMeta, key)
271 if meta:271 if meta:
272 meta.value = value272 meta.value = value
@@ -280,7 +280,7 @@
280280
281 :param book: The name of the book to return.281 :param book: The name of the book to return.
282 """282 """
283 log.debug('BibleDB.get_book("%s")' % book)283 log.debug('BibleDB.get_book("{book}")'.format(book=book))
284 return self.get_object_filtered(Book, Book.name.like(book + '%'))284 return self.get_object_filtered(Book, Book.name.like(book + '%'))
285285
286 def get_books(self):286 def get_books(self):
@@ -297,11 +297,11 @@
297297
298 :param ref_id: The reference id of the book to return.298 :param ref_id: The reference id of the book to return.
299 """299 """
300 log.debug('BibleDB.get_book_by_book_ref_id("%s")' % ref_id)300 log.debug('BibleDB.get_book_by_book_ref_id("{ref}")'.format(ref=ref_id))
301 return self.get_object_filtered(Book, Book.book_reference_id.like(ref_id))301 return self.get_object_filtered(Book, Book.book_reference_id.like(ref_id))
302302
303 def get_book_ref_id_by_name(self, book, maxbooks, language_id=None):303 def get_book_ref_id_by_name(self, book, maxbooks, language_id=None):
304 log.debug('BibleDB.get_book_ref_id_by_name:("%s", "%s")' % (book, language_id))304 log.debug('BibleDB.get_book_ref_id_by_name:("{book}", "{lang}")'.format(book=book, lang=language_id))
305 book_id = None305 book_id = None
306 if BiblesResourcesDB.get_book(book, True):306 if BiblesResourcesDB.get_book(book, True):
307 book_temp = BiblesResourcesDB.get_book(book, True)307 book_temp = BiblesResourcesDB.get_book(book, True)
@@ -327,13 +327,14 @@
327 :param book: The name of the book, according to the selected language.327 :param book: The name of the book, according to the selected language.
328 :param language_selection: The language selection the user has chosen in the settings section of the Bible.328 :param language_selection: The language selection the user has chosen in the settings section of the Bible.
329 """329 """
330 log.debug('get_book_ref_id_by_localised_name("%s", "%s")' % (book, language_selection))330 log.debug('get_book_ref_id_by_localised_name("{book}", "{lang}")'.format(book=book, lang=language_selection))
331 from openlp.plugins.bibles.lib import LanguageSelection, BibleStrings331 from openlp.plugins.bibles.lib import LanguageSelection, BibleStrings
332 book_names = BibleStrings().BookNames332 book_names = BibleStrings().BookNames
333 # escape reserved characters333 # escape reserved characters
334 book_escaped = book334 book_escaped = book
335 for character in RESERVED_CHARACTERS:335 for character in RESERVED_CHARACTERS:
336 book_escaped = book_escaped.replace(character, '\\' + character)336 book_escaped = book_escaped.replace(character, '\\' + character)
337 # TODO: Verify regex patters before using format()
337 regex_book = re.compile('\s*%s\s*' % '\s*'.join(338 regex_book = re.compile('\s*%s\s*' % '\s*'.join(
338 book_escaped.split()), re.UNICODE | re.IGNORECASE)339 book_escaped.split()), re.UNICODE | re.IGNORECASE)
339 if language_selection == LanguageSelection.Bible:340 if language_selection == LanguageSelection.Bible:
@@ -374,14 +375,14 @@
374 [('35', 1, 1, 1), ('35', 2, 2, 3)]375 [('35', 1, 1, 1), ('35', 2, 2, 3)]
375 :param show_error:376 :param show_error:
376 """377 """
377 log.debug('BibleDB.get_verses("%s")' % reference_list)378 log.debug('BibleDB.get_verses("{ref}")'.format(ref=reference_list))
378 verse_list = []379 verse_list = []
379 book_error = False380 book_error = False
380 for book_id, chapter, start_verse, end_verse in reference_list:381 for book_id, chapter, start_verse, end_verse in reference_list:
381 db_book = self.get_book_by_book_ref_id(book_id)382 db_book = self.get_book_by_book_ref_id(book_id)
382 if db_book:383 if db_book:
383 book_id = db_book.book_reference_id384 book_id = db_book.book_reference_id
384 log.debug('Book name corrected to "%s"' % db_book.name)385 log.debug('Book name corrected to "{book}"'.format(book=db_book.name))
385 if end_verse == -1:386 if end_verse == -1:
386 end_verse = self.get_verse_count(book_id, chapter)387 end_verse = self.get_verse_count(book_id, chapter)
387 verses = self.session.query(Verse) \388 verses = self.session.query(Verse) \
@@ -393,7 +394,7 @@
393 .all()394 .all()
394 verse_list.extend(verses)395 verse_list.extend(verses)
395 else:396 else:
396 log.debug('OpenLP failed to find book with id "%s"' % book_id)397 log.debug('OpenLP failed to find book with id "{book}"'.format(book=book_id))
397 book_error = True398 book_error = True
398 if book_error and show_error:399 if book_error and show_error:
399 critical_error_message_box(400 critical_error_message_box(
@@ -412,8 +413,9 @@
412 contains spaces, it will split apart and AND'd on the list of413 contains spaces, it will split apart and AND'd on the list of
413 values.414 values.
414 """415 """
415 log.debug('BibleDB.verse_search("%s")' % text)416 log.debug('BibleDB.verse_search("{text}")'.format(text=text))
416 verses = self.session.query(Verse)417 verses = self.session.query(Verse)
418 # TODO: Find out what this is doing before converting to format()
417 if text.find(',') > -1:419 if text.find(',') > -1:
418 keywords = ['%%%s%%' % keyword.strip() for keyword in text.split(',')]420 keywords = ['%%%s%%' % keyword.strip() for keyword in text.split(',')]
419 or_clause = [Verse.text.like(keyword) for keyword in keywords]421 or_clause = [Verse.text.like(keyword) for keyword in keywords]
@@ -431,7 +433,7 @@
431433
432 :param book: The book object to get the chapter count for.434 :param book: The book object to get the chapter count for.
433 """435 """
434 log.debug('BibleDB.get_chapter_count("%s")' % book.name)436 log.debug('BibleDB.get_chapter_count("{book}")'.format(book=book.name))
435 count = self.session.query(func.max(Verse.chapter)).join(Book).filter(437 count = self.session.query(func.max(Verse.chapter)).join(Book).filter(
436 Book.book_reference_id == book.book_reference_id).scalar()438 Book.book_reference_id == book.book_reference_id).scalar()
437 if not count:439 if not count:
@@ -445,7 +447,7 @@
445 :param book_ref_id: The book reference id.447 :param book_ref_id: The book reference id.
446 :param chapter: The chapter to get the verse count for.448 :param chapter: The chapter to get the verse count for.
447 """449 """
448 log.debug('BibleDB.get_verse_count("%s", "%s")' % (book_ref_id, chapter))450 log.debug('BibleDB.get_verse_count("{ref}", "{chapter}")'.format(ref=book_ref_id, chapter=chapter))
449 count = self.session.query(func.max(Verse.verse)).join(Book) \451 count = self.session.query(func.max(Verse.verse)).join(Book) \
450 .filter(Book.book_reference_id == book_ref_id) \452 .filter(Book.book_reference_id == book_ref_id) \
451 .filter(Verse.chapter == chapter) \453 .filter(Verse.chapter == chapter) \
@@ -551,7 +553,7 @@
551 :param name: The name or abbreviation of the book.553 :param name: The name or abbreviation of the book.
552 :param lower: True if the comparison should be only lowercase554 :param lower: True if the comparison should be only lowercase
553 """555 """
554 log.debug('BiblesResourcesDB.get_book("%s")' % name)556 log.debug('BiblesResourcesDB.get_book("{name}")'.format(name=name))
555 if not isinstance(name, str):557 if not isinstance(name, str):
556 name = str(name)558 name = str(name)
557 if lower:559 if lower:
@@ -580,7 +582,7 @@
580582
581 :param string: The string to search for in the book names or abbreviations.583 :param string: The string to search for in the book names or abbreviations.
582 """584 """
583 log.debug('BiblesResourcesDB.get_book_like("%s")' % string)585 log.debug('BiblesResourcesDB.get_book_like("{text}")'.format(text=string))
584 if not isinstance(string, str):586 if not isinstance(string, str):
585 name = str(string)587 name = str(string)
586 books = BiblesResourcesDB.run_sql(588 books = BiblesResourcesDB.run_sql(
@@ -605,7 +607,7 @@
605607
606 :param book_id: The id of the book.608 :param book_id: The id of the book.
607 """609 """
608 log.debug('BiblesResourcesDB.get_book_by_id("%s")' % book_id)610 log.debug('BiblesResourcesDB.get_book_by_id("{book}")'.format(book=book_id))
609 if not isinstance(book_id, int):611 if not isinstance(book_id, int):
610 book_id = int(book_id)612 book_id = int(book_id)
611 books = BiblesResourcesDB.run_sql(613 books = BiblesResourcesDB.run_sql(
@@ -629,7 +631,7 @@
629 :param book_ref_id: The id of a book.631 :param book_ref_id: The id of a book.
630 :param chapter: The chapter number.632 :param chapter: The chapter number.
631 """633 """
632 log.debug('BiblesResourcesDB.get_chapter("%s", "%s")' % (book_ref_id, chapter))634 log.debug('BiblesResourcesDB.get_chapter("{book}", "{ref}")'.format(book=book_ref_id, ref=chapter))
633 if not isinstance(chapter, int):635 if not isinstance(chapter, int):
634 chapter = int(chapter)636 chapter = int(chapter)
635 chapters = BiblesResourcesDB.run_sql(637 chapters = BiblesResourcesDB.run_sql(
@@ -652,7 +654,7 @@
652654
653 :param book_ref_id: The id of the book.655 :param book_ref_id: The id of the book.
654 """656 """
655 log.debug('BiblesResourcesDB.get_chapter_count("%s")' % book_ref_id)657 log.debug('BiblesResourcesDB.get_chapter_count("{ref}")'.format(ref=book_ref_id))
656 details = BiblesResourcesDB.get_book_by_id(book_ref_id)658 details = BiblesResourcesDB.get_book_by_id(book_ref_id)
657 if details:659 if details:
658 return details['chapters']660 return details['chapters']
@@ -666,7 +668,7 @@
666 :param book_ref_id: The id of the book.668 :param book_ref_id: The id of the book.
667 :param chapter: The number of the chapter.669 :param chapter: The number of the chapter.
668 """670 """
669 log.debug('BiblesResourcesDB.get_verse_count("%s", "%s")' % (book_ref_id, chapter))671 log.debug('BiblesResourcesDB.get_verse_count("{ref}", "{chapter}")'.format(ref=book_ref_id, chapter=chapter))
670 details = BiblesResourcesDB.get_chapter(book_ref_id, chapter)672 details = BiblesResourcesDB.get_chapter(book_ref_id, chapter)
671 if details:673 if details:
672 return details['verse_count']674 return details['verse_count']
@@ -679,7 +681,7 @@
679681
680 :param source: The name or abbreviation of the book.682 :param source: The name or abbreviation of the book.
681 """683 """
682 log.debug('BiblesResourcesDB.get_download_source("%s")' % source)684 log.debug('BiblesResourcesDB.get_download_source("{source}")'.format(source=source))
683 if not isinstance(source, str):685 if not isinstance(source, str):
684 source = str(source)686 source = str(source)
685 source = source.title()687 source = source.title()
@@ -700,7 +702,7 @@
700702
701 :param source: The source of the web_bible.703 :param source: The source of the web_bible.
702 """704 """
703 log.debug('BiblesResourcesDB.get_webbibles("%s")' % source)705 log.debug('BiblesResourcesDB.get_webbibles("{source}")'.format(source=source))
704 if not isinstance(source, str):706 if not isinstance(source, str):
705 source = str(source)707 source = str(source)
706 source = BiblesResourcesDB.get_download_source(source)708 source = BiblesResourcesDB.get_download_source(source)
@@ -725,7 +727,7 @@
725 :param abbreviation: The abbreviation of the web_bible.727 :param abbreviation: The abbreviation of the web_bible.
726 :param source: The source of the web_bible.728 :param source: The source of the web_bible.
727 """729 """
728 log.debug('BiblesResourcesDB.get_webbibles("%s", "%s")' % (abbreviation, source))730 log.debug('BiblesResourcesDB.get_webbibles("{text}", "{source}")'.format(text=abbreviation, source=source))
729 if not isinstance(abbreviation, str):731 if not isinstance(abbreviation, str):
730 abbreviation = str(abbreviation)732 abbreviation = str(abbreviation)
731 if not isinstance(source, str):733 if not isinstance(source, str):
@@ -753,7 +755,7 @@
753 :param name: The name to search the id.755 :param name: The name to search the id.
754 :param language_id: The language_id for which language should be searched756 :param language_id: The language_id for which language should be searched
755 """757 """
756 log.debug('BiblesResourcesDB.get_alternative_book_name("%s", "%s")' % (name, language_id))758 log.debug('BiblesResourcesDB.get_alternative_book_name("{name}", "{lang}")'.format(name=name, lang=language_id))
757 if language_id:759 if language_id:
758 books = BiblesResourcesDB.run_sql(760 books = BiblesResourcesDB.run_sql(
759 'SELECT book_reference_id, name FROM alternative_book_names WHERE language_id = ? ORDER BY id',761 'SELECT book_reference_id, name FROM alternative_book_names WHERE language_id = ? ORDER BY id',
@@ -772,7 +774,7 @@
772774
773 :param name: The name or abbreviation of the language.775 :param name: The name or abbreviation of the language.
774 """776 """
775 log.debug('BiblesResourcesDB.get_language("%s")' % name)777 log.debug('BiblesResourcesDB.get_language("{name}")'.format(name=name))
776 if not isinstance(name, str):778 if not isinstance(name, str):
777 name = str(name)779 name = str(name)
778 language = BiblesResourcesDB.run_sql(780 language = BiblesResourcesDB.run_sql(
@@ -868,7 +870,7 @@
868 :param name: The name to search the id.870 :param name: The name to search the id.
869 :param language_id: The language_id for which language should be searched871 :param language_id: The language_id for which language should be searched
870 """872 """
871 log.debug('AlternativeBookNamesDB.get_book_reference_id("%s", "%s")' % (name, language_id))873 log.debug('AlternativeBookNamesDB.get_book_reference_id("{name}", "{ref}")'.format(name=name, ref=language_id))
872 if language_id:874 if language_id:
873 books = AlternativeBookNamesDB.run_sql(875 books = AlternativeBookNamesDB.run_sql(
874 'SELECT book_reference_id, name FROM alternative_book_names WHERE language_id = ?', (language_id, ))876 'SELECT book_reference_id, name FROM alternative_book_names WHERE language_id = ?', (language_id, ))
@@ -889,8 +891,8 @@
889 :param book_reference_id: The book_reference_id of the book.891 :param book_reference_id: The book_reference_id of the book.
890 :param language_id: The language to which the alternative book name belong.892 :param language_id: The language to which the alternative book name belong.
891 """893 """
892 log.debug('AlternativeBookNamesDB.create_alternative_book_name("%s", "%s", "%s")' %894 log.debug('AlternativeBookNamesDB.create_alternative_book_name("{name}", '
893 (name, book_reference_id, language_id))895 '"{ref}", "{lang}")'.format(name=name, ref=book_reference_id, lang=language_id))
894 return AlternativeBookNamesDB.run_sql(896 return AlternativeBookNamesDB.run_sql(
895 'INSERT INTO alternative_book_names(book_reference_id, language_id, name) '897 'INSERT INTO alternative_book_names(book_reference_id, language_id, name) '
896 'VALUES (?, ?, ?)', (book_reference_id, language_id, name), True)898 'VALUES (?, ?, ?)', (book_reference_id, language_id, name), True)
897899
=== modified file 'openlp/plugins/bibles/lib/http.py'
--- openlp/plugins/bibles/lib/http.py 2016-05-06 05:33:43 +0000
+++ openlp/plugins/bibles/lib/http.py 2016-05-21 08:42:57 +0000
@@ -90,7 +90,7 @@
90 Extract verses from BibleGateway90 Extract verses from BibleGateway
91 """91 """
92 def __init__(self, proxy_url=None):92 def __init__(self, proxy_url=None):
93 log.debug('BGExtract.init("%s")', proxy_url)93 log.debug('BGExtract.init("{url}")'.format(url=proxy_url))
94 self.proxy_url = proxy_url94 self.proxy_url = proxy_url
95 socket.setdefaulttimeout(30)95 socket.setdefaulttimeout(30)
9696
@@ -188,7 +188,7 @@
188 if len(verse_parts) > 1:188 if len(verse_parts) > 1:
189 verse = int(verse_parts[0])189 verse = int(verse_parts[0])
190 except TypeError:190 except TypeError:
191 log.warning('Illegal verse number: %s', str(verse))191 log.warning('Illegal verse number: {verse:d}'.format(verse=verse))
192 verses.append((verse, text))192 verses.append((verse, text))
193 verse_list = {}193 verse_list = {}
194 for verse, text in verses[::-1]:194 for verse, text in verses[::-1]:
@@ -221,7 +221,7 @@
221 if len(verse_parts) > 1:221 if len(verse_parts) > 1:
222 clean_verse_num = int(verse_parts[0])222 clean_verse_num = int(verse_parts[0])
223 except TypeError:223 except TypeError:
224 log.warning('Illegal verse number: %s', str(raw_verse_num))224 log.warning('Illegal verse number: {verse:d}'.format(verse=raw_verse_num))
225 if clean_verse_num:225 if clean_verse_num:
226 verse_text = raw_verse_num.next_element226 verse_text = raw_verse_num.next_element
227 part = raw_verse_num.next_element.next_element227 part = raw_verse_num.next_element.next_element
@@ -244,11 +244,15 @@
244 :param book_name: Name of the Book.244 :param book_name: Name of the Book.
245 :param chapter: Chapter number.245 :param chapter: Chapter number.
246 """246 """
247 log.debug('BGExtract.get_bible_chapter("%s", "%s", "%s")', version, book_name, chapter)247 log.debug('BGExtract.get_bible_chapter("{version}", "{name}", "{chapter}")'.format(version=version,
248 name=book_name,
249 chapter=chapter))
248 url_book_name = urllib.parse.quote(book_name.encode("utf-8"))250 url_book_name = urllib.parse.quote(book_name.encode("utf-8"))
249 url_params = 'search=%s+%s&version=%s' % (url_book_name, chapter, version)251 url_params = 'search={name}+{chapter}&version={version}'.format(name=url_book_name,
252 chapter=chapter,
253 version=version)
250 soup = get_soup_for_bible_ref(254 soup = get_soup_for_bible_ref(
251 'http://legacy.biblegateway.com/passage/?%s' % url_params,255 'http://legacy.biblegateway.com/passage/?{url}'.format(url=url_params),
252 pre_parse_regex=r'<meta name.*?/>', pre_parse_substitute='')256 pre_parse_regex=r'<meta name.*?/>', pre_parse_substitute='')
253 if not soup:257 if not soup:
254 return None258 return None
@@ -257,7 +261,7 @@
257 return None261 return None
258 self._clean_soup(div)262 self._clean_soup(div)
259 span_list = div.find_all('span', 'text')263 span_list = div.find_all('span', 'text')
260 log.debug('Span list: %s', span_list)264 log.debug('Span list: {span}'.format(span=span_list))
261 if not span_list:265 if not span_list:
262 # If we don't get any spans then we must have the old HTML format266 # If we don't get any spans then we must have the old HTML format
263 verse_list = self._extract_verses_old(div)267 verse_list = self._extract_verses_old(div)
@@ -275,9 +279,9 @@
275279
276 :param version: The version of the Bible like NIV for New International Version280 :param version: The version of the Bible like NIV for New International Version
277 """281 """
278 log.debug('BGExtract.get_books_from_http("%s")', version)282 log.debug('BGExtract.get_books_from_http("{version}")'.format(version=version))
279 url_params = urllib.parse.urlencode({'action': 'getVersionInfo', 'vid': '%s' % version})283 url_params = urllib.parse.urlencode({'action': 'getVersionInfo', 'vid': '{version}'.format(version=version)})
280 reference_url = 'http://legacy.biblegateway.com/versions/?%s#books' % url_params284 reference_url = 'http://legacy.biblegateway.com/versions/?{url}#books'.format(url=url_params)
281 page = get_web_page(reference_url)285 page = get_web_page(reference_url)
282 if not page:286 if not page:
283 send_error_message('download')287 send_error_message('download')
@@ -353,7 +357,7 @@
353 Extract verses from Bibleserver.com357 Extract verses from Bibleserver.com
354 """358 """
355 def __init__(self, proxy_url=None):359 def __init__(self, proxy_url=None):
356 log.debug('BSExtract.init("%s")', proxy_url)360 log.debug('BSExtract.init("{url}")'.format(url=proxy_url))
357 self.proxy_url = proxy_url361 self.proxy_url = proxy_url
358 socket.setdefaulttimeout(30)362 socket.setdefaulttimeout(30)
359363
@@ -365,10 +369,14 @@
365 :param book_name: Text name of bible book e.g. Genesis, 1. John, 1John or Offenbarung369 :param book_name: Text name of bible book e.g. Genesis, 1. John, 1John or Offenbarung
366 :param chapter: Chapter number370 :param chapter: Chapter number
367 """371 """
368 log.debug('BSExtract.get_bible_chapter("%s", "%s", "%s")', version, book_name, chapter)372 log.debug('BSExtract.get_bible_chapter("{version}", "{book}", "{chapter}")'.format(version=version,
373 book=book_name,
374 chapter=chapter))
369 url_version = urllib.parse.quote(version.encode("utf-8"))375 url_version = urllib.parse.quote(version.encode("utf-8"))
370 url_book_name = urllib.parse.quote(book_name.encode("utf-8"))376 url_book_name = urllib.parse.quote(book_name.encode("utf-8"))
371 chapter_url = 'http://m.bibleserver.com/text/%s/%s%d' % (url_version, url_book_name, chapter)377 chapter_url = 'http://m.bibleserver.com/text/{version}/{name}{chapter:d}'.format(version=url_version,
378 name=url_book_name,
379 chapter=chapter)
372 header = ('Accept-Language', 'en')380 header = ('Accept-Language', 'en')
373 soup = get_soup_for_bible_ref(chapter_url, header)381 soup = get_soup_for_bible_ref(chapter_url, header)
374 if not soup:382 if not soup:
@@ -393,9 +401,9 @@
393401
394 :param version: The version of the Bible like NIV for New International Version402 :param version: The version of the Bible like NIV for New International Version
395 """403 """
396 log.debug('BSExtract.get_books_from_http("%s")', version)404 log.debug('BSExtract.get_books_from_http("{version}")'.format(version=version))
397 url_version = urllib.parse.quote(version.encode("utf-8"))405 url_version = urllib.parse.quote(version.encode("utf-8"))
398 chapter_url = 'http://m.bibleserver.com/overlay/selectBook?translation=%s' % url_version406 chapter_url = 'http://m.bibleserver.com/overlay/selectBook?translation={version}'.format(version=url_version)
399 soup = get_soup_for_bible_ref(chapter_url)407 soup = get_soup_for_bible_ref(chapter_url)
400 if not soup:408 if not soup:
401 return None409 return None
@@ -450,7 +458,7 @@
450 Extract verses from CrossWalk/BibleStudyTools458 Extract verses from CrossWalk/BibleStudyTools
451 """459 """
452 def __init__(self, proxy_url=None):460 def __init__(self, proxy_url=None):
453 log.debug('CWExtract.init("%s")', proxy_url)461 log.debug('CWExtract.init("{url}")'.format(url=proxy_url))
454 self.proxy_url = proxy_url462 self.proxy_url = proxy_url
455 socket.setdefaulttimeout(30)463 socket.setdefaulttimeout(30)
456464
@@ -462,11 +470,15 @@
462 :param book_name: Text name of in english e.g. 'gen' for Genesis470 :param book_name: Text name of in english e.g. 'gen' for Genesis
463 :param chapter: Chapter number471 :param chapter: Chapter number
464 """472 """
465 log.debug('CWExtract.get_bible_chapter("%s", "%s", "%s")', version, book_name, chapter)473 log.debug('CWExtract.get_bible_chapter("{version}", "{book}", "{chapter}")'.format(version=version,
474 book=book_name,
475 chapter=chapter))
466 url_book_name = book_name.replace(' ', '-')476 url_book_name = book_name.replace(' ', '-')
467 url_book_name = url_book_name.lower()477 url_book_name = url_book_name.lower()
468 url_book_name = urllib.parse.quote(url_book_name.encode("utf-8"))478 url_book_name = urllib.parse.quote(url_book_name.encode("utf-8"))
469 chapter_url = 'http://www.biblestudytools.com/%s/%s/%s.html' % (version, url_book_name, chapter)479 chapter_url = 'http://www.biblestudytools.com/{version}/{book}/{chapter}.html'.format(version=version,
480 book=url_book_name,
481 chapter=chapter)
470 soup = get_soup_for_bible_ref(chapter_url)482 soup = get_soup_for_bible_ref(chapter_url)
471 if not soup:483 if not soup:
472 return None484 return None
@@ -499,8 +511,8 @@
499511
500 :param version: The version of the bible like NIV for New International Version512 :param version: The version of the bible like NIV for New International Version
501 """513 """
502 log.debug('CWExtract.get_books_from_http("%s")', version)514 log.debug('CWExtract.get_books_from_http("{version}")'.format(version=version))
503 chapter_url = 'http://www.biblestudytools.com/%s/' % version515 chapter_url = 'http://www.biblestudytools.com/{version}/'.format(version=version)
504 soup = get_soup_for_bible_ref(chapter_url)516 soup = get_soup_for_bible_ref(chapter_url)
505 if not soup:517 if not soup:
506 return None518 return None
@@ -559,7 +571,7 @@
559571
560572
561class HTTPBible(BibleDB, RegistryProperties):573class HTTPBible(BibleDB, RegistryProperties):
562 log.info('%s HTTPBible loaded', __name__)574 log.info('{name} HTTPBible loaded'.format(name=__name__))
563575
564 def __init__(self, parent, **kwargs):576 def __init__(self, parent, **kwargs):
565 """577 """
@@ -615,8 +627,8 @@
615 handler = BSExtract(self.proxy_server)627 handler = BSExtract(self.proxy_server)
616 books = handler.get_books_from_http(self.download_name)628 books = handler.get_books_from_http(self.download_name)
617 if not books:629 if not books:
618 log.error('Importing books from %s - download name: "%s" failed' %630 log.error('Importing books from {source} - download name: "{name}" '
619 (self.download_source, self.download_name))631 'failed'.format(source=self.download_source, name=self.download_name))
620 return False632 return False
621 self.wizard.progress_bar.setMaximum(len(books) + 2)633 self.wizard.progress_bar.setMaximum(len(books) + 2)
622 self.wizard.increment_progress_bar(translate('BiblesPlugin.HTTPBible', 'Registering Language...'))634 self.wizard.increment_progress_bar(translate('BiblesPlugin.HTTPBible', 'Registering Language...'))
@@ -625,21 +637,24 @@
625 else:637 else:
626 self.language_id = self.get_language(bible_name)638 self.language_id = self.get_language(bible_name)
627 if not self.language_id:639 if not self.language_id:
628 log.error('Importing books from %s failed' % self.filename)640 log.error('Importing books from {name} failed'.format(name=self.filename))
629 return False641 return False
630 for book in books:642 for book in books:
631 if self.stop_import_flag:643 if self.stop_import_flag:
632 break644 break
633 self.wizard.increment_progress_bar(translate(645 self.wizard.increment_progress_bar(translate('BiblesPlugin.HTTPBible',
634 'BiblesPlugin.HTTPBible', 'Importing %s...', 'Importing <book name>...') % book)646 'Importing {book}...',
647 'Importing <book name>...').format(book=book))
635 book_ref_id = self.get_book_ref_id_by_name(book, len(books), self.language_id)648 book_ref_id = self.get_book_ref_id_by_name(book, len(books), self.language_id)
636 if not book_ref_id:649 if not book_ref_id:
637 log.error('Importing books from %s - download name: "%s" failed' %650 log.error('Importing books from {source} - download name: "{name}" '
638 (self.download_source, self.download_name))651 'failed'.format(source=self.download_source, name=self.download_name))
639 return False652 return False
640 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)653 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
641 log.debug('Book details: Name:%s; id:%s; testament_id:%s',654 log.debug('Book details: Name:{book}; id:{ref}; '
642 book, book_ref_id, book_details['testament_id'])655 'testament_id:{detail}'.format(book=book,
656 ref=book_ref_id,
657 detail=book_details['testament_id']))
643 self.create_book(book, book_ref_id, book_details['testament_id'])658 self.create_book(book, book_ref_id, book_details['testament_id'])
644 if self.stop_import_flag:659 if self.stop_import_flag:
645 return False660 return False
@@ -664,7 +679,7 @@
664679
665 [('35', 1, 1, 1), ('35', 2, 2, 3)]680 [('35', 1, 1, 1), ('35', 2, 2, 3)]
666 """681 """
667 log.debug('HTTPBible.get_verses("%s")', reference_list)682 log.debug('HTTPBible.get_verses("{ref}")'.format(ref=reference_list))
668 for reference in reference_list:683 for reference in reference_list:
669 book_id = reference[0]684 book_id = reference[0]
670 db_book = self.get_book_by_book_ref_id(book_id)685 db_book = self.get_book_by_book_ref_id(book_id)
@@ -698,8 +713,8 @@
698 """713 """
699 Receive the request and call the relevant handler methods.714 Receive the request and call the relevant handler methods.
700 """715 """
701 log.debug('HTTPBible.get_chapter("%s", "%s")', book, chapter)716 log.debug('HTTPBible.get_chapter("{book}", "{chapter}")'.format(book=book, chapter=chapter))
702 log.debug('source = %s', self.download_source)717 log.debug('source = {source}'.format(source=self.download_source))
703 if self.download_source.lower() == 'crosswalk':718 if self.download_source.lower() == 'crosswalk':
704 handler = CWExtract(self.proxy_server)719 handler = CWExtract(self.proxy_server)
705 elif self.download_source.lower() == 'biblegateway':720 elif self.download_source.lower() == 'biblegateway':
@@ -712,7 +727,7 @@
712 """727 """
713 Return the list of books.728 Return the list of books.
714 """729 """
715 log.debug('HTTPBible.get_books("%s")', Book.name)730 log.debug('HTTPBible.get_books("{name}")'.format(name=Book.name))
716 return self.get_all_objects(Book, order_by_ref=Book.id)731 return self.get_all_objects(Book, order_by_ref=Book.id)
717732
718 def get_chapter_count(self, book):733 def get_chapter_count(self, book):
@@ -721,7 +736,7 @@
721736
722 :param book: The book object to get the chapter count for.737 :param book: The book object to get the chapter count for.
723 """738 """
724 log.debug('HTTPBible.get_chapter_count("%s")', book.name)739 log.debug('HTTPBible.get_chapter_count("{name}")'.format(name=book.name))
725 return BiblesResourcesDB.get_chapter_count(book.book_reference_id)740 return BiblesResourcesDB.get_chapter_count(book.book_reference_id)
726741
727 def get_verse_count(self, book_id, chapter):742 def get_verse_count(self, book_id, chapter):
@@ -731,7 +746,7 @@
731 :param book_id: The name of the book.746 :param book_id: The name of the book.
732 :param chapter: The chapter whose verses are being counted.747 :param chapter: The chapter whose verses are being counted.
733 """748 """
734 log.debug('HTTPBible.get_verse_count("%s", %s)', book_id, chapter)749 log.debug('HTTPBible.get_verse_count("{ref}", {chapter})'.format(ref=book_id, chapter=chapter))
735 return BiblesResourcesDB.get_verse_count(book_id, chapter)750 return BiblesResourcesDB.get_verse_count(book_id, chapter)
736751
737752
738753
=== modified file 'openlp/plugins/bibles/lib/manager.py'
--- openlp/plugins/bibles/lib/manager.py 2016-04-12 20:05:58 +0000
+++ openlp/plugins/bibles/lib/manager.py 2016-05-21 08:42:57 +0000
@@ -122,7 +122,7 @@
122 files = AppLocation.get_files(self.settings_section, self.suffix)122 files = AppLocation.get_files(self.settings_section, self.suffix)
123 if 'alternative_book_names.sqlite' in files:123 if 'alternative_book_names.sqlite' in files:
124 files.remove('alternative_book_names.sqlite')124 files.remove('alternative_book_names.sqlite')
125 log.debug('Bible Files %s', files)125 log.debug('Bible Files {text}'.format(text=files))
126 self.db_cache = {}126 self.db_cache = {}
127 self.old_bible_databases = []127 self.old_bible_databases = []
128 for filename in files:128 for filename in files:
@@ -135,7 +135,7 @@
135 bible.session.close()135 bible.session.close()
136 delete_file(os.path.join(self.path, filename))136 delete_file(os.path.join(self.path, filename))
137 continue137 continue
138 log.debug('Bible Name: "%s"', name)138 log.debug('Bible Name: "{name}"'.format(name=name))
139 self.db_cache[name] = bible139 self.db_cache[name] = bible
140 # Look to see if lazy load bible exists and get create getter.140 # Look to see if lazy load bible exists and get create getter.
141 source = self.db_cache[name].get_object(BibleMeta, 'download_source')141 source = self.db_cache[name].get_object(BibleMeta, 'download_source')
@@ -177,7 +177,7 @@
177177
178 :param name: The name of the bible.178 :param name: The name of the bible.
179 """179 """
180 log.debug('BibleManager.delete_bible("%s")', name)180 log.debug('BibleManager.delete_bible("{name}")'.format(name=name))
181 bible = self.db_cache[name]181 bible = self.db_cache[name]
182 bible.session.close()182 bible.session.close()
183 bible.session = None183 bible.session = None
@@ -196,7 +196,7 @@
196196
197 :param bible: Unicode. The Bible to get the list of books from.197 :param bible: Unicode. The Bible to get the list of books from.
198 """198 """
199 log.debug('BibleManager.get_books("%s")', bible)199 log.debug('BibleManager.get_books("{bible}")'.format(bible=bible))
200 return [200 return [
201 {201 {
202 'name': book.name,202 'name': book.name,
@@ -213,7 +213,7 @@
213 :param bible: Unicode. The Bible to get the list of books from.213 :param bible: Unicode. The Bible to get the list of books from.
214 :param id: Unicode. The book_reference_id to get the book for.214 :param id: Unicode. The book_reference_id to get the book for.
215 """215 """
216 log.debug('BibleManager.get_book_by_id("%s", "%s")', bible, id)216 log.debug('BibleManager.get_book_by_id("{bible}", "{ref}")'.format(bible=bible, ref=id))
217 return self.db_cache[bible].get_book_by_book_ref_id(id)217 return self.db_cache[bible].get_book_by_book_ref_id(id)
218218
219 def get_chapter_count(self, bible, book):219 def get_chapter_count(self, bible, book):
@@ -223,14 +223,16 @@
223 :param bible: Unicode. The Bible to get the list of books from.223 :param bible: Unicode. The Bible to get the list of books from.
224 :param book: The book object to get the chapter count for.224 :param book: The book object to get the chapter count for.
225 """225 """
226 log.debug('BibleManager.get_book_chapter_count ("%s", "%s")', bible, book.name)226 log.debug('BibleManager.get_book_chapter_count ("{bible}", "{name}")'.format(bible=bible, name=book.name))
227 return self.db_cache[bible].get_chapter_count(book)227 return self.db_cache[bible].get_chapter_count(book)
228228
229 def get_verse_count(self, bible, book, chapter):229 def get_verse_count(self, bible, book, chapter):
230 """230 """
231 Returns all the number of verses for a given book and chapterMaxBibleBookVerses.231 Returns all the number of verses for a given book and chapterMaxBibleBookVerses.
232 """232 """
233 log.debug('BibleManager.get_verse_count("%s", "%s", %s)', bible, book, chapter)233 log.debug('BibleManager.get_verse_count("{bible}", "{book}", {chapter})'.format(bible=bible,
234 book=book,
235 chapter=chapter))
234 language_selection = self.get_language_selection(bible)236 language_selection = self.get_language_selection(bible)
235 book_ref_id = self.db_cache[bible].get_book_ref_id_by_localised_name(book, language_selection)237 book_ref_id = self.db_cache[bible].get_book_ref_id_by_localised_name(book, language_selection)
236 return self.db_cache[bible].get_verse_count(book_ref_id, chapter)238 return self.db_cache[bible].get_verse_count(book_ref_id, chapter)
@@ -240,7 +242,8 @@
240 Returns all the number of verses for a given242 Returns all the number of verses for a given
241 book_ref_id and chapterMaxBibleBookVerses.243 book_ref_id and chapterMaxBibleBookVerses.
242 """244 """
243 log.debug('BibleManager.get_verse_count_by_book_ref_id("%s", "%s", "%s")', bible, book_ref_id, chapter)245 log.debug('BibleManager.get_verse_count_by_book_ref_id("{bible}", '
246 '"{book}", "{chapter}")'.format(bible=bible, book=book_ref_id, chapter=chapter))
244 return self.db_cache[bible].get_verse_count(book_ref_id, chapter)247 return self.db_cache[bible].get_verse_count(book_ref_id, chapter)
245248
246 def get_verses(self, bible, verse_text, book_ref_id=False, show_error=True):249 def get_verses(self, bible, verse_text, book_ref_id=False, show_error=True):
@@ -264,7 +267,7 @@
264 For second bible this is necessary.267 For second bible this is necessary.
265 :param show_error:268 :param show_error:
266 """269 """
267 log.debug('BibleManager.get_verses("%s", "%s")', bible, verse_text)270 log.debug('BibleManager.get_verses("{bible}", "{verse}")'.format(bible=bible, verse=verse_text))
268 if not bible:271 if not bible:
269 if show_error:272 if show_error:
270 self.main_window.information_message(273 self.main_window.information_message(
@@ -308,7 +311,7 @@
308311
309 :param bible: Unicode. The Bible to get the language selection from.312 :param bible: Unicode. The Bible to get the language selection from.
310 """313 """
311 log.debug('BibleManager.get_language_selection("%s")', bible)314 log.debug('BibleManager.get_language_selection("{bible}")'.format(bible=bible))
312 language_selection = self.get_meta_data(bible, 'book_name_language')315 language_selection = self.get_meta_data(bible, 'book_name_language')
313 if not language_selection or language_selection.value == "None" or language_selection.value == "-1":316 if not language_selection or language_selection.value == "None" or language_selection.value == "-1":
314 # If None is returned, it's not the singleton object but a317 # If None is returned, it's not the singleton object but a
@@ -330,7 +333,7 @@
330 :param second_bible: The second bible (unicode). We do not search in this bible.333 :param second_bible: The second bible (unicode). We do not search in this bible.
331 :param text: The text to search for (unicode).334 :param text: The text to search for (unicode).
332 """335 """
333 log.debug('BibleManager.verse_search("%s", "%s")', bible, text)336 log.debug('BibleManager.verse_search("{bible}", "{text}")'.format(bible=bible, text=text))
334 if not bible:337 if not bible:
335 self.main_window.information_message(338 self.main_window.information_message(
336 translate('BiblesPlugin.BibleManager', 'No Bibles Available'),339 translate('BiblesPlugin.BibleManager', 'No Bibles Available'),
@@ -365,7 +368,10 @@
365 """368 """
366 Saves the bibles meta data.369 Saves the bibles meta data.
367 """370 """
368 log.debug('save_meta data %s, %s, %s, %s', bible, version, copyright, permissions)371 log.debug('save_meta data {bible}, {version}, {copyright}, {perms}'.format(bible=bible,
372 version=version,
373 cr=copyright,
374 perms=permissions))
369 self.db_cache[bible].save_meta('name', version)375 self.db_cache[bible].save_meta('name', version)
370 self.db_cache[bible].save_meta('copyright', copyright)376 self.db_cache[bible].save_meta('copyright', copyright)
371 self.db_cache[bible].save_meta('permissions', permissions)377 self.db_cache[bible].save_meta('permissions', permissions)
@@ -375,14 +381,14 @@
375 """381 """
376 Returns the meta data for a given key.382 Returns the meta data for a given key.
377 """383 """
378 log.debug('get_meta %s,%s', bible, key)384 log.debug('get_meta {bible},{key}'.format(bible=bible, key=key))
379 return self.db_cache[bible].get_object(BibleMeta, key)385 return self.db_cache[bible].get_object(BibleMeta, key)
380386
381 def update_book(self, bible, book):387 def update_book(self, bible, book):
382 """388 """
383 Update a book of the bible.389 Update a book of the bible.
384 """390 """
385 log.debug('BibleManager.update_book("%s", "%s")', bible, book.name)391 log.debug('BibleManager.update_book("{bible}", "{name}")'.format(bible=bible, name=book.name))
386 self.db_cache[bible].update_book(book)392 self.db_cache[bible].update_book(book)
387393
388 def exists(self, name):394 def exists(self, name):
@@ -392,7 +398,7 @@
392 if not isinstance(name, str):398 if not isinstance(name, str):
393 name = str(name)399 name = str(name)
394 for bible in list(self.db_cache.keys()):400 for bible in list(self.db_cache.keys()):
395 log.debug('Bible from cache in is_new_bible %s', bible)401 log.debug('Bible from cache in is_new_bible {bible}'.format(bible=bible))
396 if not isinstance(bible, str):402 if not isinstance(bible, str):
397 bible = str(bible)403 bible = str(bible)
398 if bible == name:404 if bible == name:
399405
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py 2016-04-10 20:24:07 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py 2016-05-21 08:42:57 +0000
@@ -280,7 +280,7 @@
280 def retranslateUi(self):280 def retranslateUi(self):
281 log.debug('retranslateUi')281 log.debug('retranslateUi')
282 self.quick_search_label.setText(translate('BiblesPlugin.MediaItem', 'Find:'))282 self.quick_search_label.setText(translate('BiblesPlugin.MediaItem', 'Find:'))
283 self.quickVersionLabel.setText('%s:' % UiStrings().Version)283 self.quickVersionLabel.setText('{version}:'.format(version=UiStrings().Version))
284 self.quickSecondLabel.setText(translate('BiblesPlugin.MediaItem', 'Second:'))284 self.quickSecondLabel.setText(translate('BiblesPlugin.MediaItem', 'Second:'))
285 self.quickStyleLabel.setText(UiStrings().LayoutStyle)285 self.quickStyleLabel.setText(UiStrings().LayoutStyle)
286 self.quickStyleComboBox.setItemText(LayoutStyle.VersePerSlide, UiStrings().VersePerSlide)286 self.quickStyleComboBox.setItemText(LayoutStyle.VersePerSlide, UiStrings().VersePerSlide)
@@ -294,7 +294,7 @@
294 self.advanced_verse_label.setText(translate('BiblesPlugin.MediaItem', 'Verse:'))294 self.advanced_verse_label.setText(translate('BiblesPlugin.MediaItem', 'Verse:'))
295 self.advanced_from_label.setText(translate('BiblesPlugin.MediaItem', 'From:'))295 self.advanced_from_label.setText(translate('BiblesPlugin.MediaItem', 'From:'))
296 self.advanced_to_label.setText(translate('BiblesPlugin.MediaItem', 'To:'))296 self.advanced_to_label.setText(translate('BiblesPlugin.MediaItem', 'To:'))
297 self.advancedVersionLabel.setText('%s:' % UiStrings().Version)297 self.advancedVersionLabel.setText('{version}:'.format(version=UiStrings().Version))
298 self.advancedSecondLabel.setText(translate('BiblesPlugin.MediaItem', 'Second:'))298 self.advancedSecondLabel.setText(translate('BiblesPlugin.MediaItem', 'Second:'))
299 self.advancedStyleLabel.setText(UiStrings().LayoutStyle)299 self.advancedStyleLabel.setText(UiStrings().LayoutStyle)
300 self.advancedStyleComboBox.setItemText(LayoutStyle.VersePerSlide, UiStrings().VersePerSlide)300 self.advancedStyleComboBox.setItemText(LayoutStyle.VersePerSlide, UiStrings().VersePerSlide)
@@ -316,7 +316,8 @@
316 translate('BiblesPlugin.MediaItem', 'Text Search'),316 translate('BiblesPlugin.MediaItem', 'Text Search'),
317 translate('BiblesPlugin.MediaItem', 'Search Text...'))317 translate('BiblesPlugin.MediaItem', 'Search Text...'))
318 ])318 ])
319 self.quick_search_edit.set_current_search_type(Settings().value('%s/last search type' % self.settings_section))319 text = self.settings_section
320 self.quick_search_edit.set_current_search_type(Settings().value('{text}/last search type'.format(text=text)))
320 self.config_update()321 self.config_update()
321 log.debug('bible manager initialise complete')322 log.debug('bible manager initialise complete')
322323
@@ -364,7 +365,7 @@
364 :param bible: The bible to initialise (unicode).365 :param bible: The bible to initialise (unicode).
365 :param last_book_id: The "book reference id" of the book which is chosen at the moment. (int)366 :param last_book_id: The "book reference id" of the book which is chosen at the moment. (int)
366 """367 """
367 log.debug('initialise_advanced_bible %s, %s', bible, last_book_id)368 log.debug('initialise_advanced_bible {bible}, {ref}'.format(bible=bible, ref=last_book_id))
368 book_data = self.plugin.manager.get_books(bible)369 book_data = self.plugin.manager.get_books(bible)
369 second_bible = self.advancedSecondComboBox.currentText()370 second_bible = self.advancedSecondComboBox.currentText()
370 if second_bible != '':371 if second_bible != '':
@@ -406,7 +407,7 @@
406 self.initialise_chapter_verse(bible, first_book['name'], first_book['book_reference_id'])407 self.initialise_chapter_verse(bible, first_book['name'], first_book['book_reference_id'])
407408
408 def initialise_chapter_verse(self, bible, book, book_ref_id):409 def initialise_chapter_verse(self, bible, book, book_ref_id):
409 log.debug('initialise_chapter_verse %s, %s, %s', bible, book, book_ref_id)410 log.debug('initialise_chapter_verse {bible}, {book), {ref}'.format(bible=bible, book=book, ref=book_ref_id))
410 book = self.plugin.manager.get_book_by_id(bible, book_ref_id)411 book = self.plugin.manager.get_book_by_id(bible, book_ref_id)
411 self.chapter_count = self.plugin.manager.get_chapter_count(bible, book)412 self.chapter_count = self.plugin.manager.get_chapter_count(bible, book)
412 verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible, book_ref_id, 1)413 verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible, book_ref_id, 1)
@@ -427,9 +428,11 @@
427 """428 """
428 log.debug('update_auto_completer')429 log.debug('update_auto_completer')
429 # Save the current search type to the configuration.430 # Save the current search type to the configuration.
430 Settings().setValue('%s/last search type' % self.settings_section, self.quick_search_edit.current_search_type())431 Settings().setValue('{section}/last search type'.format(section=self.settings_section),
432 self.quick_search_edit.current_search_type())
431 # Save the current bible to the configuration.433 # Save the current bible to the configuration.
432 Settings().setValue(self.settings_section + '/quick bible', self.quickVersionComboBox.currentText())434 Settings().setValue('{section}/quick bible'.format(section=self.settings_section),
435 self.quickVersionComboBox.currentText())
433 books = []436 books = []
434 # We have to do a 'Reference Search'.437 # We have to do a 'Reference Search'.
435 if self.quick_search_edit.current_search_type() == BibleSearch.Reference:438 if self.quick_search_edit.current_search_type() == BibleSearch.Reference:
@@ -502,9 +505,10 @@
502 if bible:505 if bible:
503 if QtWidgets.QMessageBox.question(506 if QtWidgets.QMessageBox.question(
504 self, UiStrings().ConfirmDelete,507 self, UiStrings().ConfirmDelete,
505 translate('BiblesPlugin.MediaItem', 'Are you sure you want to completely delete "%s" Bible from '508 translate('BiblesPlugin.MediaItem',
506 'OpenLP?\n\nYou will need to re-import this Bible to use it '509 'Are you sure you want to completely delete "{bible}" Bible '
507 'again.') % bible,510 'from OpenLP?\n\nYou will need to re-import this Bible to use it '
511 'again.').format(bible=bible),
508 QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No),512 QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No),
509 QtWidgets.QMessageBox.Yes) == QtWidgets.QMessageBox.No:513 QtWidgets.QMessageBox.Yes) == QtWidgets.QMessageBox.No:
510 return514 return
@@ -606,7 +610,7 @@
606 :param combo: The combo box itself (QComboBox).610 :param combo: The combo box itself (QComboBox).
607 :param restore: If True, then the combo's currentText will be restored after adjusting (if possible).611 :param restore: If True, then the combo's currentText will be restored after adjusting (if possible).
608 """612 """
609 log.debug('adjust_combo_box %s, %s, %s', combo, range_from, range_to)613 log.debug('adjust_combo_box {box}, {start}, {end}'.format(box=combo, start=range_from, end=range_to))
610 if restore:614 if restore:
611 old_text = combo.currentText()615 old_text = combo.currentText()
612 combo.clear()616 combo.clear()
@@ -633,7 +637,7 @@
633 range_separator = get_reference_separator('sep_r_display')637 range_separator = get_reference_separator('sep_r_display')
634 verse_range = chapter_from + verse_separator + verse_from + range_separator + chapter_to + \638 verse_range = chapter_from + verse_separator + verse_from + range_separator + chapter_to + \
635 verse_separator + verse_to639 verse_separator + verse_to
636 verse_text = '%s %s' % (book, verse_range)640 verse_text = '{book} {verse}'.format(book=book, verse=verse_range)
637 self.application.set_busy_cursor()641 self.application.set_busy_cursor()
638 self.search_results = self.plugin.manager.get_verses(bible, verse_text, book_ref_id)642 self.search_results = self.plugin.manager.get_verses(bible, verse_text, book_ref_id)
639 if second_bible:643 if second_bible:
@@ -678,8 +682,8 @@
678 for verse in self.search_results:682 for verse in self.search_results:
679 db_book = bibles[second_bible].get_book_by_book_ref_id(verse.book.book_reference_id)683 db_book = bibles[second_bible].get_book_by_book_ref_id(verse.book.book_reference_id)
680 if not db_book:684 if not db_book:
681 log.debug('Passage "%s %d:%d" not found in Second Bible' %685 log.debug('Passage "{name} {chapter:d}:{verse:d}" not found in '
682 (verse.book.name, verse.chapter, verse.verse))686 'Second Bible'.format(name=verse.book.name, chapter=verse.chapter, verse=verse.verse))
683 passage_not_found = True687 passage_not_found = True
684 count += 1688 count += 1
685 continue689 continue
@@ -688,9 +692,10 @@
688 if passage_not_found:692 if passage_not_found:
689 QtWidgets.QMessageBox.information(693 QtWidgets.QMessageBox.information(
690 self, translate('BiblesPlugin.MediaItem', 'Information'),694 self, translate('BiblesPlugin.MediaItem', 'Information'),
691 translate('BiblesPlugin.MediaItem', 'The second Bible does not contain all the verses '695 translate('BiblesPlugin.MediaItem',
692 'that are in the main Bible. Only verses found in both Bibles will be shown. %d '696 'The second Bible does not contain all the verses that are in the main Bible. '
693 'verses have not been included in the results.') % count,697 'Only verses found in both Bibles will be shown. {count:d} verses have not been '
698 'included in the results.').format(count=count),
694 QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Ok))699 QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Ok))
695 self.search_results = new_search_results700 self.search_results = new_search_results
696 self.second_search_results = bibles[second_bible].get_verses(text)701 self.second_search_results = bibles[second_bible].get_verses(text)
@@ -767,10 +772,19 @@
767 except TypeError:772 except TypeError:
768 log.exception('The second_search_results does not have this book.')773 log.exception('The second_search_results does not have this book.')
769 break774 break
770 bible_text = '%s %d%s%d (%s, %s)' % (book, verse.chapter, verse_separator, verse.verse, version,775 bible_text = ('{book} {chapter:d}{sep}{verse:d} '
771 second_version)776 '({version1}, {version2})').format(book=book,
777 chapter=verse.chapter,
778 sep=verse_separator,
779 verse=verse.verse,
780 version1=version,
781 version2=second_version)
772 else:782 else:
773 bible_text = '%s %d%s%d (%s)' % (book, verse.chapter, verse_separator, verse.verse, version)783 bible_text = '{book} {chapter:d}{sep}{verse:d} ({version})'.format(book=book,
784 chapter=verse.chapter,
785 sep=verse_separator,
786 verse=verse.verse,
787 version=version)
774 bible_verse = QtWidgets.QListWidgetItem(bible_text)788 bible_verse = QtWidgets.QListWidgetItem(bible_text)
775 bible_verse.setData(QtCore.Qt.UserRole, data)789 bible_verse.setData(QtCore.Qt.UserRole, data)
776 items.append(bible_verse)790 items.append(bible_verse)
@@ -817,20 +831,22 @@
817 verses.add(book, chapter, verse, version, copyright, permissions)831 verses.add(book, chapter, verse, version, copyright, permissions)
818 verse_text = self.format_verse(old_chapter, chapter, verse)832 verse_text = self.format_verse(old_chapter, chapter, verse)
819 if second_bible:833 if second_bible:
820 bible_text = '%s%s\n\n%s&nbsp;%s' % (verse_text, text, verse_text, second_text)834 bible_text = '{verse}{text1}\n\n{verse}&nbsp;{text2}'.format(verse=verse_text,
835 text1=text,
836 text2=second_text)
821 raw_slides.append(bible_text.rstrip())837 raw_slides.append(bible_text.rstrip())
822 bible_text = ''838 bible_text = ''
823 # If we are 'Verse Per Slide' then create a new slide.839 # If we are 'Verse Per Slide' then create a new slide.
824 elif self.settings.layout_style == LayoutStyle.VersePerSlide:840 elif self.settings.layout_style == LayoutStyle.VersePerSlide:
825 bible_text = '%s%s' % (verse_text, text)841 bible_text = '{verse}{text}'.format(verse=verse_text, text=text)
826 raw_slides.append(bible_text.rstrip())842 raw_slides.append(bible_text.rstrip())
827 bible_text = ''843 bible_text = ''
828 # If we are 'Verse Per Line' then force a new line.844 # If we are 'Verse Per Line' then force a new line.
829 elif self.settings.layout_style == LayoutStyle.VersePerLine:845 elif self.settings.layout_style == LayoutStyle.VersePerLine:
830 bible_text = '%s%s%s\n' % (bible_text, verse_text, text)846 bible_text = '{bible}{verse}{text}\n'.format(bible=bible_text, verse=verse_text, text=text)
831 # We have to be 'Continuous'.847 # We have to be 'Continuous'.
832 else:848 else:
833 bible_text = '%s %s%s\n' % (bible_text, verse_text, text)849 bible_text = '{bible} {verse}{text}\n'.format(bible=bible_text, verse=verse_text, text=text)
834 bible_text = bible_text.strip(' ')850 bible_text = bible_text.strip(' ')
835 if not old_item:851 if not old_item:
836 start_item = bitem852 start_item = bitem
@@ -857,7 +873,7 @@
857 service_item.add_capability(ItemCapabilities.CanWordSplit)873 service_item.add_capability(ItemCapabilities.CanWordSplit)
858 service_item.add_capability(ItemCapabilities.CanEditTitle)874 service_item.add_capability(ItemCapabilities.CanEditTitle)
859 # Service Item: Title875 # Service Item: Title
860 service_item.title = '%s %s' % (verses.format_verses(), verses.format_versions())876 service_item.title = '{verse} {version}'.format(verse=verses.format_verses(), version=verses.format_versions())
861 # Service Item: Theme877 # Service Item: Theme
862 if not self.settings.bible_theme:878 if not self.settings.bible_theme:
863 service_item.theme = None879 service_item.theme = None
@@ -885,7 +901,7 @@
885 start_bible = self._decode_qt_object(start_bitem, 'bible')901 start_bible = self._decode_qt_object(start_bitem, 'bible')
886 start_second_bible = self._decode_qt_object(start_bitem, 'second_bible')902 start_second_bible = self._decode_qt_object(start_bitem, 'second_bible')
887 if start_second_bible:903 if start_second_bible:
888 bibles = '%s, %s' % (start_bible, start_second_bible)904 bibles = '{bible1}, {bible2}'.format(bible1=start_bible, bible2=start_second_bible)
889 else:905 else:
890 bibles = start_bible906 bibles = start_bible
891 if start_chapter == old_chapter:907 if start_chapter == old_chapter:
@@ -896,7 +912,7 @@
896 else:912 else:
897 verse_range = start_chapter + verse_separator + start_verse + \913 verse_range = start_chapter + verse_separator + start_verse + \
898 range_separator + old_chapter + verse_separator + old_verse914 range_separator + old_chapter + verse_separator + old_verse
899 return '%s %s (%s)' % (start_book, verse_range, bibles)915 return '{book} {verse} ({bible})'.format(book=start_book, verse=verse_range, bible=bibles)
900916
901 def check_title(self, bitem, old_bitem):917 def check_title(self, bitem, old_bitem):
902 """918 """
@@ -949,12 +965,12 @@
949 else:965 else:
950 verse_text = str(verse)966 verse_text = str(verse)
951 if self.settings.display_style == DisplayStyle.Round:967 if self.settings.display_style == DisplayStyle.Round:
952 return '{su}(%s){/su}&nbsp;' % verse_text968 return '{{su}}({verse}){{/su}}&nbsp;'.format(verse=verse_text)
953 if self.settings.display_style == DisplayStyle.Curly:969 if self.settings.display_style == DisplayStyle.Curly:
954 return '{su}{%s}{/su}&nbsp;' % verse_text970 return '{{su}}{{{verse}}}{{/su}}&nbsp;'.format(verse=verse_text)
955 if self.settings.display_style == DisplayStyle.Square:971 if self.settings.display_style == DisplayStyle.Square:
956 return '{su}[%s]{/su}&nbsp;' % verse_text972 return '{{su}}[{verse}]{{/su}}&nbsp;'.format(verse=verse_text)
957 return '{su}%s{/su}&nbsp;' % verse_text973 return '{{su}}{verse}{{/su}}&nbsp;'.format(verse=verse_text)
958974
959 def search(self, string, showError):975 def search(self, string, showError):
960 """976 """
961977
=== modified file 'openlp/plugins/bibles/lib/opensong.py'
--- openlp/plugins/bibles/lib/opensong.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/lib/opensong.py 2016-05-21 08:42:57 +0000
@@ -63,7 +63,7 @@
63 """63 """
64 Loads a Bible from file.64 Loads a Bible from file.
65 """65 """
66 log.debug('Starting OpenSong import from "%s"' % self.filename)66 log.debug('Starting OpenSong import from "{name}"'.format(name=self.filename))
67 if not isinstance(self.filename, str):67 if not isinstance(self.filename, str):
68 self.filename = str(self.filename, 'utf8')68 self.filename = str(self.filename, 'utf8')
69 import_file = None69 import_file = None
@@ -84,14 +84,14 @@
84 # No language info in the opensong format, so ask the user84 # No language info in the opensong format, so ask the user
85 language_id = self.get_language(bible_name)85 language_id = self.get_language(bible_name)
86 if not language_id:86 if not language_id:
87 log.error('Importing books from "%s" failed' % self.filename)87 log.error('Importing books from "{name}" failed'.format(name=self.filename))
88 return False88 return False
89 for book in bible.b:89 for book in bible.b:
90 if self.stop_import_flag:90 if self.stop_import_flag:
91 break91 break
92 book_ref_id = self.get_book_ref_id_by_name(str(book.attrib['n']), len(bible.b), language_id)92 book_ref_id = self.get_book_ref_id_by_name(str(book.attrib['n']), len(bible.b), language_id)
93 if not book_ref_id:93 if not book_ref_id:
94 log.error('Importing books from "%s" failed' % self.filename)94 log.error('Importing books from "{name}" failed'.format(name=self.filename))
95 return False95 return False
96 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)96 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
97 db_book = self.create_book(book.attrib['n'], book_ref_id, book_details['testament_id'])97 db_book = self.create_book(book.attrib['n'], book_ref_id, book_details['testament_id'])
@@ -117,14 +117,14 @@
117 if len(verse_parts) > 1:117 if len(verse_parts) > 1:
118 number = int(verse_parts[0])118 number = int(verse_parts[0])
119 except TypeError:119 except TypeError:
120 log.warning('Illegal verse number: %s', str(verse.attrib['n']))120 log.warning('Illegal verse number: {verse:d}'.format(verse.attrib['n']))
121 verse_number = number121 verse_number = number
122 else:122 else:
123 verse_number += 1123 verse_number += 1
124 self.create_verse(db_book.id, chapter_number, verse_number, self.get_text(verse))124 self.create_verse(db_book.id, chapter_number, verse_number, self.get_text(verse))
125 self.wizard.increment_progress_bar(125 self.wizard.increment_progress_bar(translate('BiblesPlugin.Opensong',
126 translate('BiblesPlugin.Opensong', 'Importing %(bookname)s %(chapter)s...') %126 'Importing {name} {chapter}...'
127 {'bookname': db_book.name, 'chapter': chapter_number})127 ).format(name=db_book.name, chapter=chapter_number))
128 self.session.commit()128 self.session.commit()
129 self.application.process_events()129 self.application.process_events()
130 except etree.XMLSyntaxError as inst:130 except etree.XMLSyntaxError as inst:
131131
=== modified file 'openlp/plugins/bibles/lib/osis.py'
--- openlp/plugins/bibles/lib/osis.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/lib/osis.py 2016-05-21 08:42:57 +0000
@@ -49,7 +49,7 @@
49 """49 """
50 Loads a Bible from file.50 Loads a Bible from file.
51 """51 """
52 log.debug('Starting OSIS import from "%s"' % self.filename)52 log.debug('Starting OSIS import from "{name}"'.format(name=self.filename))
53 if not isinstance(self.filename, str):53 if not isinstance(self.filename, str):
54 self.filename = str(self.filename, 'utf8')54 self.filename = str(self.filename, 'utf8')
55 import_file = None55 import_file = None
@@ -69,7 +69,7 @@
69 if not language_id:69 if not language_id:
70 language_id = self.get_language(bible_name)70 language_id = self.get_language(bible_name)
71 if not language_id:71 if not language_id:
72 log.error('Importing books from "%s" failed' % self.filename)72 log.error('Importing books from "{name}" failed'.format(name=self.filename))
73 return False73 return False
74 self.save_meta('language_id', language_id)74 self.save_meta('language_id', language_id)
75 num_books = int(osis_bible_tree.xpath("count(//ns:div[@type='book'])", namespaces=namespace))75 num_books = int(osis_bible_tree.xpath("count(//ns:div[@type='book'])", namespaces=namespace))
@@ -129,7 +129,7 @@
129 if not book_ref_id:129 if not book_ref_id:
130 book_ref_id = self.get_book_ref_id_by_localised_name(book.get('osisID'))130 book_ref_id = self.get_book_ref_id_by_localised_name(book.get('osisID'))
131 if not book_ref_id:131 if not book_ref_id:
132 log.error('Importing books from "%s" failed' % self.filename)132 log.error('Importing books from "{name}" failed'.format(name=self.filename))
133 return False133 return False
134 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)134 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
135 db_book = self.create_book(book_details['name'], book_ref_id, book_details['testament_id'])135 db_book = self.create_book(book_details['name'], book_ref_id, book_details['testament_id'])
@@ -187,7 +187,8 @@
187 trace_error_handler(log)187 trace_error_handler(log)
188 success = False188 success = False
189 critical_error_message_box(message=translate('BiblesPlugin.OsisImport',189 critical_error_message_box(message=translate('BiblesPlugin.OsisImport',
190 'The file is not a valid OSIS-XML file: \n%s' % e.msg))190 'The file is not a valid OSIS-XML file:'
191 '\n{text}').format(text=e.msg))
191 finally:192 finally:
192 if import_file:193 if import_file:
193 import_file.close()194 import_file.close()
194195
=== modified file 'openlp/plugins/bibles/lib/sword.py'
--- openlp/plugins/bibles/lib/sword.py 2016-04-23 18:33:53 +0000
+++ openlp/plugins/bibles/lib/sword.py 2016-05-21 08:42:57 +0000
@@ -51,7 +51,7 @@
51 """51 """
52 Loads a Bible from SWORD module.52 Loads a Bible from SWORD module.
53 """53 """
54 log.debug('Starting SWORD import from "%s"' % self.sword_key)54 log.debug('Starting SWORD import from "{key}"'.format(key=self.sword_key))
55 success = True55 success = True
56 try:56 try:
57 pysword_modules = modules.SwordModules(self.sword_path)57 pysword_modules = modules.SwordModules(self.sword_path)
@@ -84,14 +84,14 @@
84 verse_number += 184 verse_number += 1
85 self.create_verse(db_book.id, chapter_number, verse_number, verse)85 self.create_verse(db_book.id, chapter_number, verse_number, verse)
86 self.wizard.increment_progress_bar(86 self.wizard.increment_progress_bar(
87 translate('BiblesPlugin.Sword', 'Importing %s...') % db_book.name)87 translate('BiblesPlugin.Sword', 'Importing {name}...').format(name=db_book.name))
88 self.session.commit()88 self.session.commit()
89 self.application.process_events()89 self.application.process_events()
90 except Exception as e:90 except Exception as e:
91 critical_error_message_box(91 critical_error_message_box(
92 message=translate('BiblesPlugin.SwordImport', 'An unexpected error happened while importing the SWORD '92 message=translate('BiblesPlugin.SwordImport', 'An unexpected error happened while importing the SWORD '
93 'bible, please report this to the OpenLP developers.\n'93 'bible, please report this to the OpenLP developers.\n'
94 '%s' % e))94 '{error}').format(error=e))
95 log.exception(str(e))95 log.exception(str(e))
96 success = False96 success = False
97 if self.stop_import_flag:97 if self.stop_import_flag:
9898
=== modified file 'openlp/plugins/bibles/lib/upgrade.py'
--- openlp/plugins/bibles/lib/upgrade.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/lib/upgrade.py 2016-05-21 08:42:57 +0000
@@ -101,7 +101,7 @@
101 metadata_table.c.key == 'download source'101 metadata_table.c.key == 'download source'
102 )102 )
103 ).scalar()103 ).scalar()
104 log.debug('download source: %s', value_count)104 log.debug('download source: {count}'.format(count=value_count))
105 if value_count > 0:105 if value_count > 0:
106 session.execute(insert(metadata_table).values(106 session.execute(insert(metadata_table).values(
107 key='download_source',107 key='download_source',
@@ -121,7 +121,7 @@
121 metadata_table.c.key == 'download name'121 metadata_table.c.key == 'download name'
122 )122 )
123 ).scalar()123 ).scalar()
124 log.debug('download name: %s', value_count)124 log.debug('download name: {count}'.format(count=value_count))
125 if value_count > 0:125 if value_count > 0:
126 session.execute(insert(metadata_table).values(126 session.execute(insert(metadata_table).values(
127 key='download_name',127 key='download_name',
@@ -141,7 +141,7 @@
141 metadata_table.c.key == 'proxy server'141 metadata_table.c.key == 'proxy server'
142 )142 )
143 ).scalar()143 ).scalar()
144 log.debug('proxy server: %s', value_count)144 log.debug('proxy server: {count}'.format(count=value_count))
145 if value_count > 0:145 if value_count > 0:
146 session.execute(insert(metadata_table).values(146 session.execute(insert(metadata_table).values(
147 key='proxy_server',147 key='proxy_server',
@@ -161,7 +161,7 @@
161 metadata_table.c.key == 'proxy username'161 metadata_table.c.key == 'proxy username'
162 )162 )
163 ).scalar()163 ).scalar()
164 log.debug('proxy username: %s', value_count)164 log.debug('proxy username: {count}'.format(count=value_count))
165 if value_count > 0:165 if value_count > 0:
166 session.execute(insert(metadata_table).values(166 session.execute(insert(metadata_table).values(
167 key='proxy_username',167 key='proxy_username',
@@ -181,7 +181,7 @@
181 metadata_table.c.key == 'proxy password'181 metadata_table.c.key == 'proxy password'
182 )182 )
183 ).scalar()183 ).scalar()
184 log.debug('proxy password: %s', value_count)184 log.debug('proxy password: {count}'.format(count=value_count))
185 if value_count > 0:185 if value_count > 0:
186 session.execute(insert(metadata_table).values(186 session.execute(insert(metadata_table).values(
187 key='proxy_password',187 key='proxy_password',
188188
=== modified file 'openlp/plugins/bibles/lib/versereferencelist.py'
--- openlp/plugins/bibles/lib/versereferencelist.py 2015-12-31 22:46:06 +0000
+++ openlp/plugins/bibles/lib/versereferencelist.py 2016-05-21 08:42:57 +0000
@@ -61,23 +61,29 @@
61 result = ''61 result = ''
62 for index, verse in enumerate(self.verse_list):62 for index, verse in enumerate(self.verse_list):
63 if index == 0:63 if index == 0:
64 result = '%s %s%s%s' % (verse['book'], verse['chapter'], verse_sep, verse['start'])64 result = '{book} {chapter}{sep}{verse}'.format(book=verse['book'],
65 chapter=verse['chapter'],
66 sep=verse_sep,
67 verse=verse['start'])
65 if verse['start'] != verse['end']:68 if verse['start'] != verse['end']:
66 result = '%s%s%s' % (result, range_sep, verse['end'])69 result = '{result}{sep}{end}'.format(result=result, sep=range_sep, end=verse['end'])
67 continue70 continue
68 prev = index - 171 prev = index - 1
69 if self.verse_list[prev]['version'] != verse['version']:72 if self.verse_list[prev]['version'] != verse['version']:
70 result = '%s (%s)' % (result, self.verse_list[prev]['version'])73 result = '{result} ({version})'.format(result=result, version=self.verse_list[prev]['version'])
71 result += '%s ' % list_sep74 result += '{sep} '.format(sep=list_sep)
72 if self.verse_list[prev]['book'] != verse['book']:75 if self.verse_list[prev]['book'] != verse['book']:
73 result = '%s%s %s%s' % (result, verse['book'], verse['chapter'], verse_sep)76 result = '{result}{book} {chapter}{sep}'.format(result=result,
77 book=verse['book'],
78 chapter=verse['chapter'],
79 sep=verse_sep)
74 elif self.verse_list[prev]['chapter'] != verse['chapter']:80 elif self.verse_list[prev]['chapter'] != verse['chapter']:
75 result = '%s%s%s' % (result, verse['chapter'], verse_sep)81 result = '{result}{chapter}{sep}'.format(result=result, chapter=verse['chapter'], sep=verse_sep)
76 result += str(verse['start'])82 result += str(verse['start'])
77 if verse['start'] != verse['end']:83 if verse['start'] != verse['end']:
78 result = '%s%s%s' % (result, range_sep, verse['end'])84 result = '{result}{sep}{end}'.format(result=result, sep=range_sep, end=verse['end'])
79 if len(self.version_list) > 1:85 if len(self.version_list) > 1:
80 result = '%s (%s)' % (result, verse['version'])86 result = '{result} ({version})'.format(result=result, version=verse['version'])
81 return result87 return result
8288
83 def format_versions(self, copyright=True, permission=True):89 def format_versions(self, copyright=True, permission=True):
8490
=== modified file 'openlp/plugins/bibles/lib/zefania.py'
--- openlp/plugins/bibles/lib/zefania.py 2016-03-25 19:33:26 +0000
+++ openlp/plugins/bibles/lib/zefania.py 2016-05-21 08:42:57 +0000
@@ -48,7 +48,7 @@
48 """48 """
49 Loads a Bible from file.49 Loads a Bible from file.
50 """50 """
51 log.debug('Starting Zefania import from "%s"' % self.filename)51 log.debug('Starting Zefania import from "{name}"'.format(name=self.filename))
52 if not isinstance(self.filename, str):52 if not isinstance(self.filename, str):
53 self.filename = str(self.filename, 'utf8')53 self.filename = str(self.filename, 'utf8')
54 import_file = None54 import_file = None
@@ -67,7 +67,7 @@
67 if not language_id:67 if not language_id:
68 language_id = self.get_language(bible_name)68 language_id = self.get_language(bible_name)
69 if not language_id:69 if not language_id:
70 log.error('Importing books from "%s" failed' % self.filename)70 log.error('Importing books from "{name}" failed'.format(name=self.filename))
71 return False71 return False
72 self.save_meta('language_id', language_id)72 self.save_meta('language_id', language_id)
73 num_books = int(zefania_bible_tree.xpath('count(//BIBLEBOOK)'))73 num_books = int(zefania_bible_tree.xpath('count(//BIBLEBOOK)'))
@@ -92,7 +92,7 @@
92 log.debug('Could not find a name, will use number, basically a guess.')92 log.debug('Could not find a name, will use number, basically a guess.')
93 book_ref_id = int(bnumber)93 book_ref_id = int(bnumber)
94 if not book_ref_id:94 if not book_ref_id:
95 log.error('Importing books from "%s" failed' % self.filename)95 log.error('Importing books from "{name}" failed'.format(name=self.filename))
96 return False96 return False
97 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)97 book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
98 db_book = self.create_book(book_details['name'], book_ref_id, book_details['testament_id'])98 db_book = self.create_book(book_details['name'], book_ref_id, book_details['testament_id'])
@@ -104,8 +104,9 @@
104 verse_number = VERS.get("vnumber")104 verse_number = VERS.get("vnumber")
105 self.create_verse(db_book.id, chapter_number, verse_number, VERS.text.replace('<BR/>', '\n'))105 self.create_verse(db_book.id, chapter_number, verse_number, VERS.text.replace('<BR/>', '\n'))
106 self.wizard.increment_progress_bar(106 self.wizard.increment_progress_bar(
107 translate('BiblesPlugin.Zefnia', 'Importing %(bookname)s %(chapter)s...') %107 translate('BiblesPlugin.Zefnia',
108 {'bookname': db_book.name, 'chapter': chapter_number})108 'Importing {book} {chapter}...').format(book=db_book.name,
109 chapter=chapter_number))
109 self.session.commit()110 self.session.commit()
110 self.application.process_events()111 self.application.process_events()
111 except Exception as e:112 except Exception as e:
112113
=== modified file 'tests/functional/openlp_core_lib/test_projectordb.py'
--- tests/functional/openlp_core_lib/test_projectordb.py 2016-05-20 16:22:06 +0000
+++ tests/functional/openlp_core_lib/test_projectordb.py 2016-05-21 08:42:57 +0000
@@ -29,6 +29,7 @@
29from unittest import TestCase29from unittest import TestCase
3030
31from openlp.core.lib.projector.db import Manufacturer, Model, Projector, ProjectorDB, ProjectorSource, Source31from openlp.core.lib.projector.db import Manufacturer, Model, Projector, ProjectorDB, ProjectorSource, Source
32from openlp.core.lib.projector.constants import PJLINK_PORT
3233
33from tests.functional import MagicMock, patch34from tests.functional import MagicMock, patch
34from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA, TEST3_DATA35from tests.resources.projector.data import TEST_DB, TEST1_DATA, TEST2_DATA, TEST3_DATA
@@ -195,7 +196,7 @@
195196
196 def manufacturer_repr_test(self):197 def manufacturer_repr_test(self):
197 """198 """
198 Test manufacturer class __repr__ text199 Test Manufacturer.__repr__ text
199 """200 """
200 # GIVEN: Test object201 # GIVEN: Test object
201 manufacturer = Manufacturer()202 manufacturer = Manufacturer()
@@ -209,7 +210,7 @@
209210
210 def model_repr_test(self):211 def model_repr_test(self):
211 """212 """
212 Test model class __repr__ text213 Test Model.__repr__ text
213 """214 """
214 # GIVEN: Test object215 # GIVEN: Test object
215 model = Model()216 model = Model()
@@ -223,7 +224,7 @@
223224
224 def source_repr_test(self):225 def source_repr_test(self):
225 """226 """
226 Test source.__repr__ text227 Test Source.__repr__ text
227 """228 """
228 # GIVEN: Test object229 # GIVEN: Test object
229 source = Source()230 source = Source()
@@ -236,3 +237,31 @@
236 # THEN: __repr__ should return a proper string237 # THEN: __repr__ should return a proper string
237 self.assertEqual(str(source), '<Source(pjlink_name="Test object", pjlink_code="11", text="Input text")>',238 self.assertEqual(str(source), '<Source(pjlink_name="Test object", pjlink_code="11", text="Input text")>',
238 'Source.__repr__() should have returned a proper representation string')239 'Source.__repr__() should have returned a proper representation string')
240
241 def projector_repr_test(self):
242 """
243 Test Projector.__repr__() text
244 """
245 # GIVEN: Test object
246 projector = Projector()
247
248 # WHEN: projector() is populated
249 # NOTE: projector.pin, projector.other, projector.sources should all return None
250 # projector.source_list should return an empty list
251 projector.id = 0
252 projector.ip = '127.0.0.1'
253 projector.port = PJLINK_PORT
254 projector.name = 'Test One'
255 projector.location = 'Somewhere over the rainbow'
256 projector.notes = 'Not again'
257 projector.pjlink_name = 'TEST'
258 projector.manufacturer = 'IN YOUR DREAMS'
259 projector.model = 'OpenLP'
260
261 # THEN: __repr__ should return a proper string
262 self.assertEqual(str(projector),
263 '< Projector(id="0", ip="127.0.0.1", port="4352", pin="None", name="Test One", '
264 'location="Somewhere over the rainbow", notes="Not again", pjlink_name="TEST", '
265 'manufacturer="IN YOUR DREAMS", model="OpenLP", other="None", sources="None", '
266 'source_list="[]") >',
267 'Projector.__repr__() should have returned a proper representation string')
239268
=== modified file 'tests/functional/openlp_plugins/bibles/test_http.py'
--- tests/functional/openlp_plugins/bibles/test_http.py 2016-02-04 20:17:40 +0000
+++ tests/functional/openlp_plugins/bibles/test_http.py 2016-05-21 08:42:57 +0000
@@ -104,7 +104,7 @@
104 result = instance.get_books_from_http('NIV')104 result = instance.get_books_from_http('NIV')
105105
106 # THEN: The rest mocks should be called with known values and get_books_from_http should return None106 # THEN: The rest mocks should be called with known values and get_books_from_http should return None
107 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("%s")', 'NIV')107 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("{book}")'.format(book='NIV'))
108 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')108 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')
109 self.mock_get_soup_for_bible_ref.assert_called_once_with(109 self.mock_get_soup_for_bible_ref.assert_called_once_with(
110 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')110 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')
@@ -132,7 +132,7 @@
132 result = instance.get_books_from_http('NIV')132 result = instance.get_books_from_http('NIV')
133133
134 # THEN: The rest mocks should be called with known values and get_books_from_http should return None134 # THEN: The rest mocks should be called with known values and get_books_from_http should return None
135 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("%s")', 'NIV')135 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("{book}")'.format(book='NIV'))
136 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')136 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')
137 self.mock_get_soup_for_bible_ref.assert_called_once_with(137 self.mock_get_soup_for_bible_ref.assert_called_once_with(
138 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')138 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')
@@ -167,7 +167,7 @@
167167
168 # THEN: The rest mocks should be called with known values and get_books_from_http should return the two books168 # THEN: The rest mocks should be called with known values and get_books_from_http should return the two books
169 # in the test data169 # in the test data
170 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("%s")', 'NIV')170 self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("{book}")'.format(book='NIV'))
171 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')171 self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')
172 self.mock_get_soup_for_bible_ref.assert_called_once_with(172 self.mock_get_soup_for_bible_ref.assert_called_once_with(
173 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')173 'http://m.bibleserver.com/overlay/selectBook?translation=NIV')