forked from openlp/openlp
Fix an issue with easyslide import not handling verse order correctly.
This commit is contained in:
parent
706d52ad5d
commit
02ee7ac7dc
@ -180,7 +180,7 @@ class EasySlidesImport(SongImport):
|
|||||||
reg = default_region
|
reg = default_region
|
||||||
verses[reg] = {}
|
verses[reg] = {}
|
||||||
# instance differentiates occurrences of same verse tag
|
# instance differentiates occurrences of same verse tag
|
||||||
vt = 'V'
|
vt = 'v'
|
||||||
vn = '1'
|
vn = '1'
|
||||||
inst = 1
|
inst = 1
|
||||||
for line in lines:
|
for line in lines:
|
||||||
@ -193,14 +193,14 @@ class EasySlidesImport(SongImport):
|
|||||||
inst += 1
|
inst += 1
|
||||||
else:
|
else:
|
||||||
# separators are not used, so empty line starts a new verse
|
# separators are not used, so empty line starts a new verse
|
||||||
vt = 'V'
|
vt = 'v'
|
||||||
vn = len(verses[reg].get(vt, {})) + 1
|
vn = len(verses[reg].get(vt, {})) + 1
|
||||||
inst = 1
|
inst = 1
|
||||||
elif line[0:7] == '[region':
|
elif line[0:7] == '[region':
|
||||||
reg = self._extract_region(line)
|
reg = self._extract_region(line)
|
||||||
verses.setdefault(reg, {})
|
verses.setdefault(reg, {})
|
||||||
if not regions_in_verses:
|
if not regions_in_verses:
|
||||||
vt = 'V'
|
vt = 'v'
|
||||||
vn = '1'
|
vn = '1'
|
||||||
inst = 1
|
inst = 1
|
||||||
elif line[0] == '[':
|
elif line[0] == '[':
|
||||||
@ -213,7 +213,7 @@ class EasySlidesImport(SongImport):
|
|||||||
if match:
|
if match:
|
||||||
marker = match.group(1).strip()
|
marker = match.group(1).strip()
|
||||||
vn = match.group(2)
|
vn = match.group(2)
|
||||||
vt = MarkTypes.get(marker, 'O') if marker else 'V'
|
vt = MarkTypes.get(marker, 'o') if marker else 'v'
|
||||||
if regions_in_verses:
|
if regions_in_verses:
|
||||||
region = default_region
|
region = default_region
|
||||||
inst = 1
|
inst = 1
|
||||||
@ -238,13 +238,13 @@ class EasySlidesImport(SongImport):
|
|||||||
lines = '\n'.join(verses[reg][vt][vn][inst])
|
lines = '\n'.join(verses[reg][vt][vn][inst])
|
||||||
self.add_verse(lines, versetag)
|
self.add_verse(lines, versetag)
|
||||||
SeqTypes = {
|
SeqTypes = {
|
||||||
'p': 'P1',
|
'p': 'p1',
|
||||||
'q': 'P2',
|
'q': 'p2',
|
||||||
'c': 'C1',
|
'c': 'c1',
|
||||||
't': 'C2',
|
't': 'c2',
|
||||||
'b': 'B1',
|
'b': 'b1',
|
||||||
'w': 'B2',
|
'w': 'b2',
|
||||||
'e': 'E1'}
|
'e': 'e1'}
|
||||||
# Make use of Sequence data, determining the order of verses
|
# Make use of Sequence data, determining the order of verses
|
||||||
try:
|
try:
|
||||||
order = str(song.Sequence).strip().split(',')
|
order = str(song.Sequence).strip().split(',')
|
||||||
@ -252,7 +252,7 @@ class EasySlidesImport(SongImport):
|
|||||||
if not tag:
|
if not tag:
|
||||||
continue
|
continue
|
||||||
elif tag[0].isdigit():
|
elif tag[0].isdigit():
|
||||||
tag = 'V' + tag
|
tag = 'v' + tag
|
||||||
elif tag.lower() in SeqTypes:
|
elif tag.lower() in SeqTypes:
|
||||||
tag = SeqTypes[tag.lower()]
|
tag = SeqTypes[tag.lower()]
|
||||||
else:
|
else:
|
||||||
|
@ -43,3 +43,5 @@ class TestEasySlidesFileImport(SongImportTestHelper):
|
|||||||
"""
|
"""
|
||||||
self.file_import(os.path.join(TEST_PATH, 'amazing-grace.xml'),
|
self.file_import(os.path.join(TEST_PATH, 'amazing-grace.xml'),
|
||||||
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
|
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
|
||||||
|
self.file_import(os.path.join(TEST_PATH, 'Export_2017-01-12_BB.xml'),
|
||||||
|
self.load_external_result_data(os.path.join(TEST_PATH, 'Export_2017-01-12_BB.json')))
|
||||||
|
@ -6,27 +6,27 @@
|
|||||||
"verses": [
|
"verses": [
|
||||||
[
|
[
|
||||||
"Amazing grace! How sweet the sound\nThat saved a wretch like me;\nI once was lost, but now am found,\nWas blind, but now I see.",
|
"Amazing grace! How sweet the sound\nThat saved a wretch like me;\nI once was lost, but now am found,\nWas blind, but now I see.",
|
||||||
"V1"
|
"v1"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"'Twas grace that taught my heart to fear,\nAnd grace my fears relieved;\nHow precious did that grace appear,\nThe hour I first believed!",
|
"'Twas grace that taught my heart to fear,\nAnd grace my fears relieved;\nHow precious did that grace appear,\nThe hour I first believed!",
|
||||||
"V2"
|
"v2"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"Through many dangers, toils and snares\nI have already come;\n'Tis grace that brought me safe thus far,\nAnd grace will lead me home.",
|
"Through many dangers, toils and snares\nI have already come;\n'Tis grace that brought me safe thus far,\nAnd grace will lead me home.",
|
||||||
"V3"
|
"v3"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"The Lord has promised good to me,\nHis word my hope secures;\nHe will my shield and portion be\nAs long as life endures.",
|
"The Lord has promised good to me,\nHis word my hope secures;\nHe will my shield and portion be\nAs long as life endures.",
|
||||||
"V4"
|
"v4"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"Yes, when this heart and flesh shall fail,\nAnd mortal life shall cease,\nI shall possess within the veil\nA life of joy and peace.",
|
"Yes, when this heart and flesh shall fail,\nAnd mortal life shall cease,\nI shall possess within the veil\nA life of joy and peace.",
|
||||||
"V5"
|
"v5"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"When we've been there a thousand years,\nBright shining as the sun,\nWe've no less days to sing God's praise\nThan when we first begun.",
|
"When we've been there a thousand years,\nBright shining as the sun,\nWe've no less days to sing God's praise\nThan when we first begun.",
|
||||||
"V6"
|
"v6"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
44
tests/resources/easyslidessongs/Export_2017-01-12_BB.json
Normal file
44
tests/resources/easyslidessongs/Export_2017-01-12_BB.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"title": "BBBBBBBBB",
|
||||||
|
"authors": [
|
||||||
|
"John Newton (1725-1807)"
|
||||||
|
],
|
||||||
|
"verses": [
|
||||||
|
[
|
||||||
|
"V1V1V1V1V1V1\nV1V1V1V1V1V1",
|
||||||
|
"v1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V2V2V2V2V2V2\nV2V2V2V2V2V2",
|
||||||
|
"v2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C1C1C1C1C1C1\nC1C1C1C1C1C1",
|
||||||
|
"c1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C2C2C2C2C2C2\nC2C2C2C2C2C2",
|
||||||
|
"c2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B1B1B1B1B1B1\nB1B1B1B1B1B1",
|
||||||
|
"b1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B2B2B2B2B2B2\nB2B2B2B2B2B2",
|
||||||
|
"b2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"PRE1PRE1PRE1\nPRE1PRE1PRE1",
|
||||||
|
"p1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"PRE2PRE2PRE2\nPRE2PRE2PRE2",
|
||||||
|
"p2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ENDENDENDEND\nENDENDENDEND",
|
||||||
|
"e1"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
50
tests/resources/easyslidessongs/Export_2017-01-12_BB.xml
Normal file
50
tests/resources/easyslidessongs/Export_2017-01-12_BB.xml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<EasiSlides>
|
||||||
|
<Item>
|
||||||
|
<Title1>BBBBBBBBB</Title1>
|
||||||
|
<Title2 />
|
||||||
|
<Folder>NAGY</Folder>
|
||||||
|
<SongNumber>0</SongNumber>
|
||||||
|
<Contents>[1]
|
||||||
|
V1V1V1V1V1V1
|
||||||
|
V1V1V1V1V1V1
|
||||||
|
[2]
|
||||||
|
V2V2V2V2V2V2
|
||||||
|
V2V2V2V2V2V2
|
||||||
|
[chorus]
|
||||||
|
C1C1C1C1C1C1
|
||||||
|
C1C1C1C1C1C1
|
||||||
|
[chorus 2]
|
||||||
|
C2C2C2C2C2C2
|
||||||
|
C2C2C2C2C2C2
|
||||||
|
[bridge]
|
||||||
|
B1B1B1B1B1B1
|
||||||
|
B1B1B1B1B1B1
|
||||||
|
[bridge 2]
|
||||||
|
B2B2B2B2B2B2
|
||||||
|
B2B2B2B2B2B2
|
||||||
|
[prechorus]
|
||||||
|
PRE1PRE1PRE1
|
||||||
|
PRE1PRE1PRE1
|
||||||
|
[prechorus 2]
|
||||||
|
PRE2PRE2PRE2
|
||||||
|
PRE2PRE2PRE2
|
||||||
|
[ending]
|
||||||
|
ENDENDENDEND
|
||||||
|
ENDENDENDEND</Contents>
|
||||||
|
<Notations />
|
||||||
|
<Sequence>1,2,c,t,b,w,p,q,e</Sequence>
|
||||||
|
<Writer />
|
||||||
|
<Copyright />
|
||||||
|
<Category />
|
||||||
|
<Timing />
|
||||||
|
<MusicKey />
|
||||||
|
<Capo>-1</Capo>
|
||||||
|
<LicenceAdmin1 />
|
||||||
|
<LicenceAdmin2 />
|
||||||
|
<BookReference />
|
||||||
|
<UserReference />
|
||||||
|
<FormatData />
|
||||||
|
<Settings>10=></Settings>
|
||||||
|
</Item>
|
||||||
|
</EasiSlides>
|
Loading…
Reference in New Issue
Block a user