From 1d494135b578eebbab56139359c6b15da9e3ea12 Mon Sep 17 00:00:00 2001 From: Francesco Grillo Date: Tue, 23 Dec 2025 22:43:28 +0200 Subject: [PATCH] Update lyrics.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Key Improvements (addressing reviewer feedback): - ✅ Uses regex instead of while loop (more efficient, one pass) - ✅ No infinite loop risk - ✅ Handles any number of backslashes before quotes - ✅ Clear inline comments --- beetsplug/lyrics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index 4bb88cf49..7761a642c 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -563,8 +563,8 @@ class Genius(SearchBackend): html_text = cls.remove_backslash(m[0]).replace(r"\n", "\n") lyrics = cls.get_soup(html_text).get_text().strip() # Clean up any remaining escaped quotes (may need multiple passes) - while '\\"' in lyrics: - lyrics = lyrics.replace('\\"', '"') + # Use regex to handle all escape levels in one pass + lyrics = re.sub(r'\\+"', '"', lyrics) return lyrics return None