From ff0e1266a7cc33056a207b2ff92608ebddf5962b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20K=C3=B6hler?= Date: Thu, 24 Feb 2011 21:56:31 +0100 Subject: [PATCH 1/5] changed the handling of author unknown --- openlp/plugins/songs/lib/foilpresenterimport.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 25d5ae69c..7b555ac23 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -94,11 +94,10 @@ import os from lxml import etree, objectify from openlp.core.ui.wizard import WizardStrings -from openlp.plugins.songs.lib import VerseType +from openlp.plugins.songs.lib import add_author_unknown, VerseType from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib.db import Author, Book, Song, Topic from openlp.plugins.songs.lib.xml import SongXML -from openlp.plugins.songs.lib.ui import SongStrings log = logging.getLogger(__name__) @@ -293,13 +292,13 @@ class FoilPresenter(object): if copyright.find(u'Rechte') != -1: temp = copyright.partition(u'Rechte') copyright = temp[0] - markers = [u'Text +u\.?n?d? +Melodie[a-zA-Z0-9\,\. ]*:', + markers = [u'Text +u\.?n?d? +Melodie[\w\,\. ]*:', u'Text +u\.?n?d? +Musik', u'T & M', u'Melodie und Satz', - u'Text[a-zA-Z0-9\,\. ]*:', u'Melodie', u'Musik', u'Satz', + u'Text[\w\,\. ]*:', u'Melodie', u'Musik', u'Satz', u'Weise', u'[dD]eutsch', u'[dD]t[\.\:]', u'Englisch', u'[oO]riginal', u'Bearbeitung', u'[R|r]efrain'] for marker in markers: - copyright = re.compile(marker).sub(u'', copyright) + copyright = re.compile(marker).sub(u'', copyright, re.U) copyright = re.compile(u'(?<=) *:').sub(u'', copyright) i = 0 x = 0 @@ -338,8 +337,6 @@ class FoilPresenter(object): authors.append(tempx) elif (len(author) > 2): authors.append(author) - if not authors: - authors.append(SongStrings.AuthorUnknown) for display_name in authors: author = self.manager.get_object_filtered(Author, Author.display_name == display_name) @@ -350,6 +347,8 @@ class FoilPresenter(object): first_name = u' '.join(display_name.split(u' ')[:-1])) self.manager.save_object(author) song.authors.append(author) + if not song.authors: + add_author_unknown(self.manager, song) def _process_cclinumber(self, foilpresenterfolie, song): """ From f91713b2ef7dec0ace759802966f4617a1dcf8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20K=C3=B6hler?= Date: Thu, 24 Feb 2011 22:27:14 +0100 Subject: [PATCH 2/5] removed double space and control line length --- openlp/plugins/songs/lib/foilpresenterimport.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 7b555ac23..1a2aaa18d 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -298,7 +298,7 @@ class FoilPresenter(object): u'Weise', u'[dD]eutsch', u'[dD]t[\.\:]', u'Englisch', u'[oO]riginal', u'Bearbeitung', u'[R|r]efrain'] for marker in markers: - copyright = re.compile(marker).sub(u'', copyright, re.U) + copyright = re.compile(marker).sub(u'', copyright, re.U) copyright = re.compile(u'(?<=) *:').sub(u'', copyright) i = 0 x = 0 From 83fba055d5e712b6c9ca3d3b0db9841e3d0685aa Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 25 Feb 2011 01:03:25 +0000 Subject: [PATCH 3/5] Fix non-saving OpenLyrics authors --- openlp/plugins/songs/lib/xml.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 91111e40a..a2a73ec97 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -381,6 +381,7 @@ class OpenLyrics(object): author = Author.populate(display_name=display_name, last_name=display_name.split(u' ')[-1], first_name=u' '.join(display_name.split(u' ')[:-1])) + song.authors.append(author) if not song.authors: add_author_unknown(self.manager, song) From 6bcbd3526e87a7926daca66923d72196dd9a8b4f Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 25 Feb 2011 08:16:32 +0200 Subject: [PATCH 4/5] Fixed bug #700859: Bible importers do not clean up properly after a failed import. --- openlp/plugins/bibles/forms/bibleimportform.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index fc37fad58..aea7c62e0 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -739,6 +739,7 @@ class BibleImportForm(OpenLPWizard): name=license_version, filename=unicode(self.field(u'openlp1_location').toString()) ) + bible_name = importer.name if importer.do_import(): self.manager.save_meta_data(license_version, license_version, license_copyright, license_permissions) @@ -754,3 +755,4 @@ class BibleImportForm(OpenLPWizard): self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) delete_database(self.plugin.settingsSection, importer.file) + del self.manager.db_cache[bible_name] From 5f48a38769e7c44755478fee3868645954427846 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 25 Feb 2011 08:24:35 +0200 Subject: [PATCH 5/5] Removed the need for the extra variable. --- openlp/plugins/bibles/forms/bibleimportform.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index aea7c62e0..67996e158 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -739,7 +739,6 @@ class BibleImportForm(OpenLPWizard): name=license_version, filename=unicode(self.field(u'openlp1_location').toString()) ) - bible_name = importer.name if importer.do_import(): self.manager.save_meta_data(license_version, license_version, license_copyright, license_permissions) @@ -754,5 +753,5 @@ class BibleImportForm(OpenLPWizard): else: self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) + del self.manager.db_cache[importer.name] delete_database(self.plugin.settingsSection, importer.file) - del self.manager.db_cache[bible_name]