forked from openlp/openlp
Head
This commit is contained in:
commit
6d2c85592d
@ -138,6 +138,6 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
|
|||||||
if re.search(r'[/\\]openlp[/\\]', line):
|
if re.search(r'[/\\]openlp[/\\]', line):
|
||||||
source = re.sub(r'.*[/\\]openlp[/\\](.*)".*', r'\1', line)
|
source = re.sub(r'.*[/\\]openlp[/\\](.*)".*', r'\1', line)
|
||||||
if u':' in line:
|
if u':' in line:
|
||||||
exception = line.split(u'\n')[-1].split(u':')[0]
|
exception = line.split(u'\n')[-1].split(u':')[0]
|
||||||
subject = u'Bug report: %s in %s' % (exception, source)
|
subject = u'Bug report: %s in %s' % (exception, source)
|
||||||
mailto(address=u'bugs@openlp.org', subject=subject, body=body % content)
|
mailto(address=u'bugs@openlp.org', subject=subject, body=body % content)
|
||||||
|
@ -350,7 +350,7 @@ class HTTPBible(BibleDB):
|
|||||||
Run the import. This method overrides the parent class method. Returns
|
Run the import. This method overrides the parent class method. Returns
|
||||||
``True`` on success, ``False`` on failure.
|
``True`` on success, ``False`` on failure.
|
||||||
"""
|
"""
|
||||||
self.wizard.ImportProgressBar.setMaximum(2)
|
self.wizard.importProgressBar.setMaximum(2)
|
||||||
self.wizard.incrementProgressBar('Registering bible...')
|
self.wizard.incrementProgressBar('Registering bible...')
|
||||||
self.create_meta(u'download source', self.download_source)
|
self.create_meta(u'download source', self.download_source)
|
||||||
self.create_meta(u'download name', self.download_name)
|
self.create_meta(u'download name', self.download_name)
|
||||||
|
@ -134,9 +134,9 @@ class OSISBible(BibleDB):
|
|||||||
testament)
|
testament)
|
||||||
if last_chapter == 0:
|
if last_chapter == 0:
|
||||||
if book == u'Gen':
|
if book == u'Gen':
|
||||||
self.wizard.ImportProgressBar.setMaximum(1188)
|
self.wizard.importProgressBar.setMaximum(1188)
|
||||||
else:
|
else:
|
||||||
self.wizard.ImportProgressBar.setMaximum(260)
|
self.wizard.importProgressBar.setMaximum(260)
|
||||||
if last_chapter != chapter:
|
if last_chapter != chapter:
|
||||||
if last_chapter != 0:
|
if last_chapter != 0:
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
|
@ -108,6 +108,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
self.TopicsListView.setSortingEnabled(False)
|
self.TopicsListView.setSortingEnabled(False)
|
||||||
self.TopicsListView.setAlternatingRowColors(True)
|
self.TopicsListView.setAlternatingRowColors(True)
|
||||||
self.findVerseSplit = re.compile(u'---\[\]---\n', re.UNICODE)
|
self.findVerseSplit = re.compile(u'---\[\]---\n', re.UNICODE)
|
||||||
|
self.whitespace = re.compile(r'\W+', re.UNICODE)
|
||||||
|
|
||||||
def initialise(self):
|
def initialise(self):
|
||||||
self.VerseEditButton.setEnabled(False)
|
self.VerseEditButton.setEnabled(False)
|
||||||
@ -738,7 +739,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
verseId = unicode(item.data(QtCore.Qt.UserRole).toString())
|
verseId = unicode(item.data(QtCore.Qt.UserRole).toString())
|
||||||
bits = verseId.split(u':')
|
bits = verseId.split(u':')
|
||||||
sxml.add_verse_to_lyrics(bits[0], bits[1], unicode(item.text()))
|
sxml.add_verse_to_lyrics(bits[0], bits[1], unicode(item.text()))
|
||||||
text = text + re.sub(r'\W+', u' ',
|
text = text + whitespace.sub(u' ',
|
||||||
unicode(self.VerseListWidget.item(i, 0).text())) + u' '
|
unicode(self.VerseListWidget.item(i, 0).text())) + u' '
|
||||||
if (bits[1] > u'1') and (bits[0][0] not in multiple):
|
if (bits[1] > u'1') and (bits[0][0] not in multiple):
|
||||||
multiple.append(bits[0][0])
|
multiple.append(bits[0][0])
|
||||||
|
@ -197,7 +197,7 @@ class CCLIFileImport(SongImport):
|
|||||||
verse_text = verse_lines[1]
|
verse_text = verse_lines[1]
|
||||||
elif verse_lines[0].startswith(u'('):
|
elif verse_lines[0].startswith(u'('):
|
||||||
verse_type = u'O'
|
verse_type = u'O'
|
||||||
verse_text = verse_lines[1]
|
verse_text = verse_lines[1]
|
||||||
if len(verse_text) > 0:
|
if len(verse_text) > 0:
|
||||||
self.add_verse(verse_text, verse_type)
|
self.add_verse(verse_text, verse_type)
|
||||||
check_first_verse_line = False
|
check_first_verse_line = False
|
||||||
@ -303,13 +303,13 @@ class CCLIFileImport(SongImport):
|
|||||||
verse_type = u'P'
|
verse_type = u'P'
|
||||||
elif line.startswith(u'(BRIDGE'):
|
elif line.startswith(u'(BRIDGE'):
|
||||||
verse_type = u'B'
|
verse_type = u'B'
|
||||||
# Handle all other misc types
|
# Handle all other misc types
|
||||||
elif line.startswith(u'('):
|
elif line.startswith(u'('):
|
||||||
verse_type = u'O'
|
verse_type = u'O'
|
||||||
else:
|
else:
|
||||||
verse_text = verse_text + line
|
verse_text = verse_text + line
|
||||||
check_first_verse_line = False
|
check_first_verse_line = False
|
||||||
else:
|
else:
|
||||||
# We have verse content or the start of the
|
# We have verse content or the start of the
|
||||||
# last part. Add l so as to keep the CRLF
|
# last part. Add l so as to keep the CRLF
|
||||||
verse_text = verse_text + line
|
verse_text = verse_text + line
|
||||||
|
@ -369,7 +369,7 @@ class SofImport(OooImport):
|
|||||||
if song_number == 50:
|
if song_number == 50:
|
||||||
return 8
|
return 8
|
||||||
if song_number == 70:
|
if song_number == 70:
|
||||||
return 4
|
return 4
|
||||||
if song_number == 75:
|
if song_number == 75:
|
||||||
return 8
|
return 8
|
||||||
if song_number == 79:
|
if song_number == 79:
|
||||||
@ -529,7 +529,7 @@ class SofImport(OooImport):
|
|||||||
if song_number == 955:
|
if song_number == 955:
|
||||||
return 9
|
return 9
|
||||||
if song_number == 968:
|
if song_number == 968:
|
||||||
return 8
|
return 8
|
||||||
if song_number == 972:
|
if song_number == 972:
|
||||||
return 7
|
return 7
|
||||||
if song_number == 974:
|
if song_number == 974:
|
||||||
|
@ -247,7 +247,7 @@ class SongImport(QtCore.QObject):
|
|||||||
"""
|
"""
|
||||||
Extracts alphanumeric words for searchable fields
|
Extracts alphanumeric words for searchable fields
|
||||||
"""
|
"""
|
||||||
return re.sub(r'\W+', u' ', text)
|
return re.sub(r'\W+', u' ', text, re.UNICODE)
|
||||||
|
|
||||||
def finish(self):
|
def finish(self):
|
||||||
"""
|
"""
|
||||||
|
@ -56,11 +56,11 @@ def test():
|
|||||||
assert o.title == u'Martins Test'
|
assert o.title == u'Martins Test'
|
||||||
assert o.alternate_title == u''
|
assert o.alternate_title == u''
|
||||||
assert o.song_number == u'1'
|
assert o.song_number == u'1'
|
||||||
assert [u'C1', u'Chorus 1'] in o.verses
|
assert [u'C1', u'Chorus 1'] in o.verses
|
||||||
assert [u'C2', u'Chorus 2'] in o.verses
|
assert [u'C2', u'Chorus 2'] in o.verses
|
||||||
assert not [u'C3', u'Chorus 3'] in o.verses
|
assert not [u'C3', u'Chorus 3'] in o.verses
|
||||||
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
||||||
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
||||||
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
||||||
assert [u'V3A', u'V3 Line 1\nV3 Line 2'] in o.verses
|
assert [u'V3A', u'V3 Line 1\nV3 Line 2'] in o.verses
|
||||||
assert [u'RAP1', u'Rap 1 Line 1\nRap 1 Line 2'] in o.verses
|
assert [u'RAP1', u'Rap 1 Line 1\nRap 1 Line 2'] in o.verses
|
||||||
@ -80,11 +80,11 @@ def test():
|
|||||||
assert o.title == u'Martins Test'
|
assert o.title == u'Martins Test'
|
||||||
assert o.alternate_title == u''
|
assert o.alternate_title == u''
|
||||||
assert o.song_number == u'1'
|
assert o.song_number == u'1'
|
||||||
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
||||||
assert [u'C1', u'Chorus 1'] in o.verses
|
assert [u'C1', u'Chorus 1'] in o.verses
|
||||||
assert [u'C2', u'Chorus 2'] in o.verses
|
assert [u'C2', u'Chorus 2'] in o.verses
|
||||||
assert not [u'C3', u'Chorus 3'] in o.verses
|
assert not [u'C3', u'Chorus 3'] in o.verses
|
||||||
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
||||||
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
||||||
print o.verse_order_list
|
print o.verse_order_list
|
||||||
assert o.verse_order_list == [u'V1', u'C1', u'V2', u'C2', u'V3', u'B1', u'V1']
|
assert o.verse_order_list == [u'V1', u'C1', u'V2', u'C2', u'V3', u'B1', u'V1']
|
||||||
@ -99,11 +99,11 @@ def test():
|
|||||||
assert o.alternate_title == u''
|
assert o.alternate_title == u''
|
||||||
assert o.song_number == u'2'
|
assert o.song_number == u'2'
|
||||||
print o.verses
|
print o.verses
|
||||||
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
assert [u'B1', u'Bridge 1\nBridge 1 line 2'] in o.verses
|
||||||
assert [u'C1', u'Chorus 1'] in o.verses
|
assert [u'C1', u'Chorus 1'] in o.verses
|
||||||
assert [u'C2', u'Chorus 2'] in o.verses
|
assert [u'C2', u'Chorus 2'] in o.verses
|
||||||
assert not [u'C3', u'Chorus 3'] in o.verses
|
assert not [u'C3', u'Chorus 3'] in o.verses
|
||||||
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
assert [u'V1', u'v1 Line 1\nV1 Line 2'] in o.verses
|
||||||
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
assert [u'V2', u'v2 Line 1\nV2 Line 2'] in o.verses
|
||||||
print o.verse_order_list
|
print o.verse_order_list
|
||||||
assert o.verse_order_list == [u'V1', u'V2', u'B1', u'C1', u'C2']
|
assert o.verse_order_list == [u'V1', u'V2', u'B1', u'C1', u'C2']
|
||||||
@ -120,7 +120,7 @@ def test():
|
|||||||
assert o.verse_order_list == [u'V1']
|
assert o.verse_order_list == [u'V1']
|
||||||
assert o.topics == [u'Worship: Declaration']
|
assert o.topics == [u'Worship: Declaration']
|
||||||
print o.verses[0]
|
print o.verses[0]
|
||||||
assert [u'V1', u'Line 1\nLine 2'] in o.verses
|
assert [u'V1', u'Line 1\nLine 2'] in o.verses
|
||||||
|
|
||||||
print "Tests passed"
|
print "Tests passed"
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui
|
|||||||
|
|
||||||
from openlp.core.lib import Plugin, StringContent, build_icon, translate
|
from openlp.core.lib import Plugin, StringContent, build_icon, translate
|
||||||
from openlp.core.lib.db import Manager
|
from openlp.core.lib.db import Manager
|
||||||
from openlp.plugins.songs.lib import SongMediaItem, SongsTab
|
from openlp.plugins.songs.lib import SongMediaItem, SongsTab, SongXMLParser
|
||||||
from openlp.plugins.songs.lib.db import init_schema, Song
|
from openlp.plugins.songs.lib.db import init_schema, Song
|
||||||
from openlp.plugins.songs.lib.importer import SongFormat
|
from openlp.plugins.songs.lib.importer import SongFormat
|
||||||
|
|
||||||
@ -150,9 +150,13 @@ class SongsPlugin(Plugin):
|
|||||||
song.title = u''
|
song.title = u''
|
||||||
if song.alternate_title is None:
|
if song.alternate_title is None:
|
||||||
song.alternate_title = u''
|
song.alternate_title = u''
|
||||||
song.search_title = self.whitespace.sub(u' ', \
|
song.search_title = self.whitespace.sub(u' ', song.title.lower() + \
|
||||||
song.title.lower()) + u' ' + \
|
u' ' + song.alternate_title.lower())
|
||||||
self.whitespace.sub(u' ', song.alternate_title.lower())
|
lyrics = u''
|
||||||
|
verses = SongXMLParser(song.lyrics).get_verses()
|
||||||
|
for verse in verses:
|
||||||
|
lyrics = lyrics + self.whitespace.sub(u' ', verse[1]) + u' '
|
||||||
|
song.search_lyrics = lyrics.lower()
|
||||||
progressDialog.setValue(counter)
|
progressDialog.setValue(counter)
|
||||||
self.manager.save_objects(songs)
|
self.manager.save_objects(songs)
|
||||||
counter += 1
|
counter += 1
|
||||||
|
Loading…
Reference in New Issue
Block a user