From 31f4df3ff3d23a49d5206345d549aa3916e96478 Mon Sep 17 00:00:00 2001 From: Xavier Hocquet Date: Sun, 11 Apr 2021 17:30:45 -0500 Subject: [PATCH 1/3] Fix falso positive lyric pages for Tekstowo --- beetsplug/lyrics.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index 125d1330d..b154d58ce 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -416,12 +416,16 @@ class Tekstowo(Backend): def fetch(self, artist, title): url = self.build_url(title, artist) + print(url) search_results = self.fetch_url(url) song_page_url = self.parse_search_results(search_results) if not song_page_url: return None + print('--------------------') + print(song_page_url) + song_page_html = self.fetch_url(song_page_url) return self.extract_lyrics(song_page_html) @@ -437,8 +441,14 @@ class Tekstowo(Backend): except HTMLParseError: return None - song_row = html.find("div", class_="content"). \ - find_all("div", class_="box-przeboje")[0] + song_rows = html.find("div", class_="content"). \ + find("div", class_="card"). \ + find_all("div", class_="box-przeboje") + + if len(song_rows) < 1: + return None + + song_row = song_rows[0] if not song_row: return None From 0dd569a884baa2b8b6083a1614de069270e3ba65 Mon Sep 17 00:00:00 2001 From: Xavier Hocquet Date: Sun, 11 Apr 2021 17:34:46 -0500 Subject: [PATCH 2/3] Add changelog --- docs/changelog.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 6aca3ac8e..88338f7a7 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -353,6 +353,8 @@ Fixes: :bug:`3870` * Allow equals within ``--set`` value when importing. :bug:`2984` +* :doc:`/plugins/lyrics`: Fix crashes for Tekstowo false positives + :bug:`3904` For plugin developers: From 8b979f2a50f526350b91461f230b8f5f0e171a19 Mon Sep 17 00:00:00 2001 From: Xavier Hocquet Date: Sun, 11 Apr 2021 18:38:01 -0500 Subject: [PATCH 3/3] Review comments --- beetsplug/lyrics.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index b154d58ce..f0290f74a 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -416,16 +416,12 @@ class Tekstowo(Backend): def fetch(self, artist, title): url = self.build_url(title, artist) - print(url) search_results = self.fetch_url(url) song_page_url = self.parse_search_results(search_results) if not song_page_url: return None - print('--------------------') - print(song_page_url) - song_page_html = self.fetch_url(song_page_url) return self.extract_lyrics(song_page_html) @@ -445,7 +441,7 @@ class Tekstowo(Backend): find("div", class_="card"). \ find_all("div", class_="box-przeboje") - if len(song_rows) < 1: + if not song_rows: return None song_row = song_rows[0]