commit e2b55f91dfe5fdd2a5e6a96707231c96e4fe0f5e
parent f2182dd129eb126bc97a93fdbbfa4e951c70751f
Author: AsherMorgan <59518073+AsherMorgan@users.noreply.github.com>
Date: Sun, 6 Sep 2020 12:19:06 -0700
Improve removal of content inside parentheses.
Diffstat:
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/Songs2Slides/core.py b/Songs2Slides/core.py
@@ -66,10 +66,7 @@ def ParseLyrics(title, artist, settings):
# Remove content in parentheses
if (settings["remove-parentheses"]):
- rawLyrics = re.sub(r'\([^)]*\)', '', rawLyrics)
-
- # Remove extra spaces before commas
- rawLyrics = rawLyrics.replace(" ,", ",")
+ rawLyrics = re.sub(r'\s?\([^)]*\)', '', rawLyrics)
# Parse Lyrics
rawLines = rawLyrics.split("\n")
diff --git a/Tests/test_core.py b/Tests/test_core.py
@@ -55,32 +55,32 @@ class TestCore(unittest.TestCase):
# Mock core.getLyrics method
with patch('Songs2Slides.core.GetLyrics') as mocked_get:
# Initialize mocked_get
- mocked_get.return_value = ("[Verse 1]\nTest1\nTest2\nTest3\nTest4\nTest5 (Test5)\n\n[Verse 2]\nTest10\nTest20\nTest30\nTest40\nTest50 (Test50)", "Test Song", "Test Artist")
+ mocked_get.return_value = ("[Verse 1]\nTest1\nTest2\nTest3\nTest4\nTest5 (Test5)\n\n[Verse 2]\nTest10\nTest20\nTest30\nTest40\nTest50(Test50)", "Test Song", "Test Artist")
# Test parser
lyrics = core.ParseLyrics("tEsT sOnG 2", "tEsT aRtIsT", settings)
- self.assertEqual(lyrics, ["Test Song\nTest Artist", "Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50 (Test50)", ""])
+ self.assertEqual(lyrics, ["Test Song\nTest Artist", "Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50(Test50)", ""])
mocked_get.assert_called_with("tEsT sOnG 2", "tEsT aRtIsT")
# Test parser without title slide
settings["title-slides"] = False
lyrics = core.ParseLyrics("tEsT sOnG", "tEsT aRtIsT", settings)
- self.assertEqual(lyrics, ["Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50 (Test50)", ""])
+ self.assertEqual(lyrics, ["Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50(Test50)", ""])
# Test parser without slide at end
settings["slide-between-songs"] = False
lyrics = core.ParseLyrics("tEsT sOnG", "tEsT aRtIsT", settings)
- self.assertEqual(lyrics, ["Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50 (Test50)"])
+ self.assertEqual(lyrics, ["Test1\nTest2\nTest3\nTest4", "Test5 (Test5)", "Test10\nTest20\nTest30\nTest40", "Test50(Test50)"])
# Test parser with 3 lines per slide
settings["lines-per-slide"] = 3
lyrics = core.ParseLyrics("tEsT sOnG", "tEsT aRtIsT", settings)
- self.assertEqual(lyrics, ["Test1\nTest2\nTest3", "Test4\nTest5 (Test5)", "Test10\nTest20\nTest30", "Test40\nTest50 (Test50)"])
+ self.assertEqual(lyrics, ["Test1\nTest2\nTest3", "Test4\nTest5 (Test5)", "Test10\nTest20\nTest30", "Test40\nTest50(Test50)"])
# Test parser with parentheses remover
settings["remove-parentheses"] = True
lyrics = core.ParseLyrics("tEsT sOnG 2", "tEsT aRtIsT", settings)
- self.assertEqual(lyrics, ["Test1\nTest2\nTest3", "Test4\nTest5 ", "Test10\nTest20\nTest30", "Test40\nTest50 "])
+ self.assertEqual(lyrics, ["Test1\nTest2\nTest3", "Test4\nTest5", "Test10\nTest20\nTest30", "Test40\nTest50"])
# Test parser with blank line
mocked_get.return_value = ("[Verse 1]\nTest1\n\n[Instrumental]\n\n[Verse 2]\nTest2", "Test Song", "Test Artist")