← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~sam92/openlp/bug-1326664-2.0 into lp:openlp/2.0

 

Samuel Mehrbrodt has proposed merging lp:~sam92/openlp/bug-1326664-2.0 into lp:openlp/2.0.

Requested reviews:
  Raoul Snyman (raoul-snyman)
Related bugs:
  Bug #1326664 in OpenLP: "Can't import EasyWorship DB"
  https://bugs.launchpad.net/openlp/+bug/1326664

For more details, see:
https://code.launchpad.net/~sam92/openlp/bug-1326664-2.0/+merge/222746

Add proper error messages to EasyWorship import.
Also make sure that Songs.db (lowercase ending) is also being recognized.
-- 
https://code.launchpad.net/~sam92/openlp/bug-1326664-2.0/+merge/222746
Your team OpenLP Core is subscribed to branch lp:openlp/2.0.
=== modified file 'openlp/plugins/songs/lib/ewimport.py'
--- openlp/plugins/songs/lib/ewimport.py	2014-05-20 16:19:06 +0000
+++ openlp/plugins/songs/lib/ewimport.py	2014-06-11 05:26:57 +0000
@@ -64,13 +64,23 @@
 
     def doImport(self):
         # Open the DB and MB files if they exist
-        import_source_mb = self.importSource.replace('.DB', '.MB')
+        import_source_mb = self.importSource.replace('.DB', '.MB').replace('.db', '.mb')
         if not os.path.isfile(self.importSource):
+            self.logError(self.importSource, translate(
+                'SongsPlugin.EasyWorshipSongImport',
+                'This file does not exist.'))
             return
         if not os.path.isfile(import_source_mb):
+            self.logError(self.importSource, translate(
+                'SongsPlugin.EasyWorshipSongImport', 
+                'Could not find the "Songs.MB" file. It must be in the same '
+                'folder as the "Songs.DB" file.'))
             return
         db_size = os.path.getsize(self.importSource)
         if db_size < 0x800:
+            self.logError(self.importSource, translate(
+                'SongsPlugin.EasyWorshipSongImport',
+                'This file is not a valid EasyWorship database.'))
             return
         db_file = open(self.importSource, 'rb')
         self.memoFile = open(import_source_mb, 'rb')
@@ -80,6 +90,9 @@
         if header_size != 0x800 or block_size < 1 or block_size > 4:
             db_file.close()
             self.memoFile.close()
+            self.logError(self.importSource, translate(
+                'SongsPlugin.EasyWorshipSongImport',
+                'This file is not a valid EasyWorship database.'))
             return
         # Take a stab at how text is encoded
         self.encoding = u'cp1252'
@@ -193,8 +206,9 @@
                         result = strip_rtf(words, self.encoding)
                     except UnicodeDecodeError:
                         # The unicode chars in the rtf was not escaped in the expected manner.
-                        self.logError(self.title, unicode(translate('SongsPlugin.EasyWorshipSongImport',
-                                                                    'Unexpected data formatting.')))
+                        self.logError(self.title, unicode(translate(
+                            'SongsPlugin.EasyWorshipSongImport',
+                            'Unexpected data formatting.')))
                         continue
                     if result is None:
                         return


Follow ups