diff --git a/endpoints/__init__.py b/endpoints/__init__.py index d09dd4d..aef3a79 100644 --- a/endpoints/__init__.py +++ b/endpoints/__init__.py @@ -1 +1 @@ -# Radio endpoints package \ No newline at end of file +# Radio endpoints package diff --git a/lyric_search/sources/lrclib.py b/lyric_search/sources/lrclib.py index 694d00b..87c41ad 100644 --- a/lyric_search/sources/lrclib.py +++ b/lyric_search/sources/lrclib.py @@ -29,7 +29,11 @@ class LRCLib: @retry(stop=stop_after_attempt(2), wait=wait_fixed(0.5)) async def search( - self, artist: str, song: str, plain: Optional[bool] = True, duration: Optional[int] = None + self, + artist: str, + song: str, + plain: Optional[bool] = True, + duration: Optional[int] = None, ) -> Optional[LyricsResult]: """ LRCLib Search @@ -81,7 +85,11 @@ class LRCLib: # Filter by duration if provided if duration: - search_data = [r for r in search_data if abs(r.get("duration", 0) - duration) <= 10] + search_data = [ + r + for r in search_data + if abs(r.get("duration", 0) - duration) <= 10 + ] if plain: possible_matches = [ @@ -107,7 +115,8 @@ class LRCLib: best_match = None try: match_result = self.matcher.find_best_match( - input_track, possible_matches # type: ignore + input_track, + possible_matches, # type: ignore ) if match_result: best_match = match_result[0] diff --git a/utils/__init__.py b/utils/__init__.py index 67b9db6..dd7ee44 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -1 +1 @@ -# Utils package \ No newline at end of file +# Utils package diff --git a/utils/rip_background.py b/utils/rip_background.py index 306496b..b21ac48 100644 --- a/utils/rip_background.py +++ b/utils/rip_background.py @@ -479,7 +479,9 @@ def bulk_download(track_list: list, quality: str = "FLAC"): except Exception as e: tb = traceback.format_exc() - is_no_stream_url = isinstance(e, RuntimeError) and str(e) == "No stream URL" + is_no_stream_url = ( + isinstance(e, RuntimeError) and str(e) == "No stream URL" + ) if is_no_stream_url: if attempt == 1 or attempt == MAX_RETRIES: msg = f"Track {track_id} attempt {attempt} failed: {e}\n{tb}" @@ -492,9 +494,13 @@ def bulk_download(track_list: list, quality: str = "FLAC"): "ERROR", target, ) - await asyncio.sleep(random.uniform(THROTTLE_MIN, THROTTLE_MAX)) + await asyncio.sleep( + random.uniform(THROTTLE_MIN, THROTTLE_MAX) + ) else: - msg = f"Track {track_id} attempt {attempt} failed: {e}\n{tb}" + msg = ( + f"Track {track_id} attempt {attempt} failed: {e}\n{tb}" + ) send_log_to_discord(msg, "ERROR", target) track_info["error"] = str(e) if attempt >= MAX_RETRIES: @@ -504,7 +510,9 @@ def bulk_download(track_list: list, quality: str = "FLAC"): "ERROR", target, ) - await asyncio.sleep(random.uniform(THROTTLE_MIN, THROTTLE_MAX)) + await asyncio.sleep( + random.uniform(THROTTLE_MIN, THROTTLE_MAX) + ) finally: try: diff --git a/utils/sr_wrapper.py b/utils/sr_wrapper.py index dfc4107..8fe7680 100644 --- a/utils/sr_wrapper.py +++ b/utils/sr_wrapper.py @@ -751,14 +751,16 @@ class SRUtil: """Get LRC lyrics by track ID.""" logging.info(f"SR: Fetching metadata for track ID {track_id}") metadata = await self.get_metadata_by_track_id(track_id) - lrc = metadata.get('lyrics') if metadata else None + lrc = metadata.get("lyrics") if metadata else None logging.info(f"SR: LRC {'found' if lrc else 'not found'}") return lrc - - async def get_lrc_by_artist_song( - self, artist: str, song: str, album: Optional[str] = None, duration: Optional[int] = None + self, + artist: str, + song: str, + album: Optional[str] = None, + duration: Optional[int] = None, ) -> Optional[str]: """Get LRC lyrics by artist and song, optionally filtering by album and duration.""" logging.info(f"SR: Searching tracks for {artist} - {song}") @@ -766,21 +768,22 @@ class SRUtil: logging.info(f"SR: Found {len(tracks) if tracks else 0} tracks") if not tracks: return None - + # Filter by album if provided if album: tracks = [ - t for t in tracks - if t.get('album', {}).get('title', '').lower() == album.lower() + t + for t in tracks + if t.get("album", {}).get("title", "").lower() == album.lower() ] - + if not tracks: return None - + # If duration provided, select the track with closest duration match if duration is not None: tracks_with_diff = [ - (t, abs(t.get('duration', 0) - duration)) for t in tracks + (t, abs(t.get("duration", 0) - duration)) for t in tracks ] tracks_with_diff.sort(key=lambda x: x[1]) best_track, min_diff = tracks_with_diff[0] @@ -791,10 +794,10 @@ class SRUtil: return None else: best_track = tracks[0] - - track_id = best_track.get('id') + + track_id = best_track.get("id") logging.info(f"SR: Using track ID {track_id}") if not track_id: return None - + return await self.get_lrc_by_track_id(track_id)