diff --git a/openlp/plugins/songs/lib/importers/songbeamer.py b/openlp/plugins/songs/lib/importers/songbeamer.py index 8dc7deb5e..4771ce7ce 100644 --- a/openlp/plugins/songs/lib/importers/songbeamer.py +++ b/openlp/plugins/songs/lib/importers/songbeamer.py @@ -22,8 +22,6 @@ """ 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 @@ -120,7 +118,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() diff --git a/tests/functional/openlp_plugins/songs/test_songbeamerimport.py b/tests/functional/openlp_plugins/songs/test_songbeamerimport.py index 0e3ff059d..7a9266b44 100644 --- a/tests/functional/openlp_plugins/songs/test_songbeamerimport.py +++ b/tests/functional/openlp_plugins/songs/test_songbeamerimport.py @@ -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): """ diff --git a/tests/resources/songbeamersongs/cp1252song.json b/tests/resources/songbeamersongs/cp1252song.json new file mode 100644 index 000000000..5e92d7038 --- /dev/null +++ b/tests/resources/songbeamersongs/cp1252song.json @@ -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"] + ] +} diff --git a/tests/resources/songbeamersongs/cp1252song.sng b/tests/resources/songbeamersongs/cp1252song.sng new file mode 100644 index 000000000..f1288e731 --- /dev/null +++ b/tests/resources/songbeamersongs/cp1252song.sng @@ -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…. +