Removed potential utf8-bom found in some lyrics

This commit is contained in:
emeric
2024-10-26 20:05:03 +02:00
parent 2d28ea61eb
commit 1e3dad7acc
2 changed files with 21 additions and 0 deletions
+5
View File
@@ -159,6 +159,11 @@ namespace lms::metadata
{
std::string_view trimmedLine{ core::stringUtils::stringTrimEnd(line) };
// Remove potential UTF8 BOM
constexpr std::string_view utf8BOM{ "\xEF\xBB\xBF" };
if (trimmedLine.starts_with(utf8BOM))
trimmedLine = trimmedLine.substr(utf8BOM.size());
// Skip comments
if (!trimmedLine.empty() && trimmedLine.front() == '#')
continue;
+16
View File
@@ -72,6 +72,22 @@ namespace lms::metadata::tests
EXPECT_EQ(lyrics.synchronizedLines.find(9s + 160ms)->second, "I, I just woke up from a dream");
}
TEST(Lyrics, tagAtTheEndOfLyrics)
{
std::istringstream is{ R"([00:03.30]Ooh, ooh
[00:09.16]I, I just woke up from a dream
[id: dqsxdkbu])" };
const Lyrics lyrics{ parseLyrics(is) };
EXPECT_EQ(lyrics.unsynchronizedLines.size(), 0);
ASSERT_EQ(lyrics.synchronizedLines.size(), 2);
ASSERT_TRUE(lyrics.synchronizedLines.contains(3s + 300ms));
EXPECT_EQ(lyrics.synchronizedLines.find(3s + 300ms)->second, "Ooh, ooh");
ASSERT_TRUE(lyrics.synchronizedLines.contains(9s + 160ms));
EXPECT_EQ(lyrics.synchronizedLines.find(9s + 160ms)->second, "I, I just woke up from a dream");
}
TEST(Lyrics, skipEmptyBeginLines)
{
std::istringstream is{ R"(