Skip to content

Commit 7f8cc5c

Browse files
committed
Fix missing provider for lyrics
1 parent cf30840 commit 7f8cc5c

File tree

1 file changed

+31
-17
lines changed

1 file changed

+31
-17
lines changed

src/mediaplayer

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -290,17 +290,28 @@ def update_metadata(player, metadata, manager):
290290

291291
def download_lyrics(artist, title):
292292
stream = io.StringIO()
293-
logger = syncedlyrics.logger
294-
logger.propagate = False
295-
logger.handlers.clear()
296-
logger.addHandler(logging.StreamHandler(stream))
297-
logger.setLevel(logging.INFO)
293+
lyrlogger = syncedlyrics.logger
294+
lyrlogger.propagate = False
295+
lyrlogger.handlers.clear()
296+
lyrlogger.addHandler(logging.StreamHandler(stream))
297+
lyrlogger.setLevel(logging.INFO)
298298
lt = syncedlyrics.search(
299299
f"{artist} {title}",
300300
allow_plain_format=False,
301301
providers=config["lyrics_providers"],
302302
)
303-
lt = lt.split("\n")
303+
# This is the main logger
304+
# logger.debug("GOT LYRICS")
305+
# logger.debug("-"*10)
306+
# logger.debug(lt)
307+
# logger.debug("-"*10)
308+
lt = lt.replace("\n", "")
309+
lt = lt.split("[")
310+
lt = ["["+x for x in lt if x]
311+
# logger.debug("SPLITTING")
312+
# logger.debug("-"*10)
313+
# logger.debug(lt)
314+
# logger.debug("-"*10)
304315
provider = stream.getvalue().split("on ")[1].strip()
305316
stream.close()
306317
SyncedLyrics = namedtuple("SyncedLyrics", ["lt", "provider"])
@@ -313,13 +324,14 @@ def get_new_lyrics(artist, title):
313324
"secs": [0],
314325
"text": ["[INTRO]"],
315326
"last_ix": -1,
316-
"max_len": 7,
327+
"max_len": 0,
317328
"provider": None,
318329
}
319330
lyr = download_lyrics(artist, title)
320331
if lyr.lt is None:
321332
logger.debug("No lyrics, returning")
322333
return
334+
lyrics["provider"] = lyr.provider
323335
for i, line in enumerate(lyr.lt):
324336
m = re.match(r"\[(.*)\](.*)", line)
325337
if not m:
@@ -330,25 +342,22 @@ def get_new_lyrics(artist, title):
330342
if len(timing2) != 2:
331343
logger.debug(f"ERROR: timing2={timing2} is not of length 2")
332344
continue
333-
if not timing2[0].isnumeric():
334-
logger.debug(f"ERROR: timing2[0]={timing2[0]} is not numeric")
335-
continue
336-
if not timing2[1].isnumeric():
337-
logger.debug(f"ERROR: timing2[1]={timing2[1]} is not numeric")
345+
try:
346+
secs = int(timing2[0]) * 60.0 + float(timing2[1])
347+
except ValueError:
348+
logger.debug(f"ERROR: ValueError while converting timing2={timing2} to seconds")
338349
continue
339-
secs = int(timing2[0]) * 60.0 + float(timing2[1])
340350
# get lyrics text
341351
text = m.group(2).strip()
342352
if text == "":
343353
text = "[INTERMISSION]"
344354
lyrics["secs"].append(secs)
345355
lyrics["text"].append(text)
356+
lyrics["max_len"] = max(lyrics["max_len"], len(text))
346357
# DEBUG
347-
logger.debug(i, line, "->", "[" + str(secs) + "] ", text)
358+
logger.debug(str(i) + str(line) + "->" + "[" + str(secs) + "] " + text)
348359
lyrics["text"].append("[OUTRO]")
349360
lyrics["secs"].append(lyrics["secs"][-1] + 1)
350-
lyrics["max_len"] = max([len(x) for x in lyrics["text"]])
351-
lyrics["provider"] = lyr.provider
352361

353362

354363
def left_text(s):
@@ -471,7 +480,10 @@ def update_progressbar(manager, player):
471480
if lyrics:
472481
ll = lyrics.get("max_len", 3)
473482
s.append("-" * ll)
474-
s.append("["+lyrics.get("provider", "")+"]")
483+
provider = lyrics.get("provider","")
484+
if provider is None:
485+
provider = "NO PROVIDER"
486+
s.append("["+provider+"]")
475487

476488
# DEBUG
477489
# print(f"lyrics['secs']={lyrics['secs']}")
@@ -559,6 +571,8 @@ def main():
559571
logging.getLogger("urllib3").setLevel(loglevel)
560572
logging.getLogger("syncedlyrics").setLevel(loglevel)
561573

574+
logging.getLogger("syncedlyrics").setLevel(loglevel)
575+
562576
# Log the sent command line arguments
563577
logger.info("I was called")
564578
logger.debug("Arguments received {}".format(vars(arguments)))

0 commit comments

Comments
 (0)