Andreas Preikschat has proposed merging lp:~googol-hush/openlp/fixes into 
lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #598393 in OpenLP: "After adding a new image to a selected (image) item 
in the service manager it is not selected anymore"
  https://bugs.launchpad.net/openlp/+bug/598393
  Bug #730979 in OpenLP: "Song export crashes"
  https://bugs.launchpad.net/openlp/+bug/730979

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/fixes/+merge/52880

Hello,

fixed bug #730979

(Note, I actually wanted to add a method to core/lib/__init__ to prevent having 
things twice. However, the code in plugins/bibles/lib/db needs to deal 
differently with particular characters.)
-- 
https://code.launchpad.net/~googol-hush/openlp/fixes/+merge/52880
Your team OpenLP Core is requested to review the proposed merge of 
lp:~googol-hush/openlp/fixes into lp:openlp.
=== modified file 'openlp/plugins/songs/lib/openlyricsexport.py'
--- openlp/plugins/songs/lib/openlyricsexport.py	2011-02-24 05:47:38 +0000
+++ openlp/plugins/songs/lib/openlyricsexport.py	2011-03-10 16:28:20 +0000
@@ -29,10 +29,11 @@
 """
 import logging
 import os
+import re
 
 from lxml import etree
 
-from openlp.core.lib import Receiver, translate
+from openlp.core.lib import check_directory_exists, Receiver, translate
 from openlp.plugins.songs.lib import OpenLyrics
 
 log = logging.getLogger(__name__)
@@ -50,8 +51,7 @@
         self.manager = parent.plugin.manager
         self.songs = songs
         self.save_path = save_path
-        if not os.path.exists(self.save_path):
-            os.mkdir(self.save_path)
+        check_directory_exists(self.save_path)
 
     def do_export(self):
         """
@@ -69,6 +69,10 @@
                 song.title)
             xml = openLyrics.song_to_xml(song)
             tree = etree.ElementTree(etree.fromstring(xml))
-            tree.write(os.path.join(self.save_path, song.title + u'.xml'),
+            filename = u'%s (%s).xml' % (song.title,
+                u', '.join([author.display_name for author in song.authors]))
+            filename = re.sub(
+                r'[/\\?*|<>\[\]":<>+%]+', u'_', filename).strip(u'_')
+            tree.write(os.path.join(self.save_path, filename),
                 encoding=u'utf-8', xml_declaration=True, pretty_print=True)
         return True

_______________________________________________
Mailing list: https://launchpad.net/~openlp-core
Post to     : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to