Fix an issue with easyslide import not handling verse order correctly.

This commit is contained in:
Tomas Groth 2017-01-12 22:31:01 +01:00
parent 706d52ad5d
commit 02ee7ac7dc
5 changed files with 114 additions and 18 deletions

View File

@ -180,7 +180,7 @@ class EasySlidesImport(SongImport):
reg = default_region
verses[reg] = {}
# instance differentiates occurrences of same verse tag
vt = 'V'
vt = 'v'
vn = '1'
inst = 1
for line in lines:
@ -193,14 +193,14 @@ class EasySlidesImport(SongImport):
inst += 1
else:
# separators are not used, so empty line starts a new verse
vt = 'V'
vt = 'v'
vn = len(verses[reg].get(vt, {})) + 1
inst = 1
elif line[0:7] == '[region':
reg = self._extract_region(line)
verses.setdefault(reg, {})
if not regions_in_verses:
vt = 'V'
vt = 'v'
vn = '1'
inst = 1
elif line[0] == '[':
@ -213,7 +213,7 @@ class EasySlidesImport(SongImport):
if match:
marker = match.group(1).strip()
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:
region = default_region
inst = 1
@ -238,13 +238,13 @@ class EasySlidesImport(SongImport):
lines = '\n'.join(verses[reg][vt][vn][inst])
self.add_verse(lines, versetag)
SeqTypes = {
'p': 'P1',
'q': 'P2',
'c': 'C1',
't': 'C2',
'b': 'B1',
'w': 'B2',
'e': 'E1'}
'p': 'p1',
'q': 'p2',
'c': 'c1',
't': 'c2',
'b': 'b1',
'w': 'b2',
'e': 'e1'}
# Make use of Sequence data, determining the order of verses
try:
order = str(song.Sequence).strip().split(',')
@ -252,7 +252,7 @@ class EasySlidesImport(SongImport):
if not tag:
continue
elif tag[0].isdigit():
tag = 'V' + tag
tag = 'v' + tag
elif tag.lower() in SeqTypes:
tag = SeqTypes[tag.lower()]
else:

View File

@ -43,3 +43,5 @@ class TestEasySlidesFileImport(SongImportTestHelper):
"""
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.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')))

View File

@ -6,27 +6,27 @@
"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.",
"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!",
"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.",
"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.",
"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.",
"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.",
"V6"
"v6"
]
]
}

View 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"
]
]
}

View 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=&gt;</Settings>
</Item>
</EasiSlides>