forked from openlp/openlp
Backport songbeamer fix
bzr-revno: 2682
This commit is contained in:
commit
991296d8e3
@ -22,11 +22,10 @@
|
||||
"""
|
||||
The :mod:`songbeamer` module provides the functionality for importing SongBeamer songs into the OpenLP database.
|
||||
"""
|
||||
import chardet
|
||||
import codecs
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import chardet
|
||||
|
||||
from openlp.plugins.songs.lib import VerseType
|
||||
from openlp.plugins.songs.lib.importers.songimport import SongImport
|
||||
@ -120,7 +119,7 @@ class SongBeamerImport(SongImport):
|
||||
# The encoding should only be ANSI (cp1252), UTF-8, Unicode, Big-Endian-Unicode.
|
||||
# So if it doesn't start with 'u' we default to cp1252. See:
|
||||
# https://forum.songbeamer.com/viewtopic.php?p=419&sid=ca4814924e37c11e4438b7272a98b6f2
|
||||
if self.input_file_encoding.lower().startswith('u'):
|
||||
if not self.input_file_encoding.lower().startswith('u'):
|
||||
self.input_file_encoding = 'cp1252'
|
||||
infile = open(import_file, 'rt', encoding=self.input_file_encoding)
|
||||
song_data = infile.readlines()
|
||||
|
@ -49,6 +49,13 @@ class TestSongBeamerFileImport(SongImportTestHelper):
|
||||
self.file_import([os.path.join(TEST_PATH, 'Lobsinget dem Herrn.sng')],
|
||||
self.load_external_result_data(os.path.join(TEST_PATH, 'Lobsinget dem Herrn.json')))
|
||||
|
||||
def test_cp1252_encoded_file(self):
|
||||
"""
|
||||
Test that a CP1252 encoded file get's decoded properly.
|
||||
"""
|
||||
self.file_import([os.path.join(TEST_PATH, 'cp1252song.sng')],
|
||||
self.load_external_result_data(os.path.join(TEST_PATH, 'cp1252song.json')))
|
||||
|
||||
|
||||
class TestSongBeamerImport(TestCase):
|
||||
"""
|
||||
|
8
tests/resources/songbeamersongs/cp1252song.json
Normal file
8
tests/resources/songbeamersongs/cp1252song.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"title": "Some Song",
|
||||
"authors": ["Author"],
|
||||
"verses" : [
|
||||
["Here are a couple of \"weird\" chars’’’.\n", "v"],
|
||||
["Here is another one….\n\n", "v"]
|
||||
]
|
||||
}
|
15
tests/resources/songbeamersongs/cp1252song.sng
Normal file
15
tests/resources/songbeamersongs/cp1252song.sng
Normal file
@ -0,0 +1,15 @@
|
||||
#LangCount=1
|
||||
#Editor=SongBeamer 4.28a
|
||||
#Version=3
|
||||
#Format=F/K//
|
||||
#TitleFormat=U
|
||||
#Title=Some Song
|
||||
#Author=Author
|
||||
#Melody=Author
|
||||
#(c)=No copyright
|
||||
#CCLI=0000000000
|
||||
---
|
||||
Here are a couple of "weird" chars’’’.
|
||||
---
|
||||
Here is another one….
|
||||
|
Loading…
Reference in New Issue
Block a user