chore: enhance comments
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-25 02:33:26
|
||||
Description: Fetcher pipeline — registry and types
|
||||
Description: Fetcher pipeline — registry and types.
|
||||
"""
|
||||
|
||||
from typing import Literal, Optional
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-25 02:33:26
|
||||
Description: Base fetcher class and common interfaces
|
||||
Description: Base fetcher class and common interfaces.
|
||||
"""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-28 05:57:46
|
||||
Description: Cache-search fetcher — cross-album fuzzy lookup in the local cache
|
||||
"""
|
||||
Description: Cache-search fetcher — cross-album fuzzy lookup in the local cache.
|
||||
|
||||
"""
|
||||
Searches existing cache entries by artist + title with fuzzy normalization,
|
||||
ignoring album and source. Useful when the same track appears on different
|
||||
albums or is played from different players.
|
||||
Searches existing cache entries by artist + title with fuzzy normalization,
|
||||
ignoring album and source. Useful when the same track appears on different
|
||||
albums or is played from different players.
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-26 02:08:41
|
||||
Description: Local fetcher — reads lyrics from .lrc sidecar files or embedded audio metadata
|
||||
"""
|
||||
|
||||
"""
|
||||
Priority:
|
||||
1. Same-directory .lrc file (e.g. /path/to/track.lrc)
|
||||
2. Embedded lyrics in audio metadata (FLAC, MP3 USLT/SYLT tags)
|
||||
Description: Local fetcher — reads lyrics from .lrc sidecar files or embedded audio metadata.
|
||||
Priority:
|
||||
1. Same-directory .lrc file (e.g. /path/to/track.lrc)
|
||||
2. Embedded lyrics in audio metadata (FLAC, MP3 USLT/SYLT tags)
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-25 05:23:38
|
||||
Description: LRCLIB fetcher — queries lrclib.net for synced/plain lyrics
|
||||
"""
|
||||
|
||||
"""
|
||||
Requires complete track metadata (artist, title, album, duration).
|
||||
Description: LRCLIB fetcher — queries lrclib.net for synced/plain lyrics.
|
||||
Requires complete track metadata (artist, title, album, duration).
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-25 05:30:50
|
||||
Description: LRCLIB search fetcher — fuzzy search via lrclib.net /api/search
|
||||
"""
|
||||
|
||||
"""
|
||||
Used when metadata is incomplete (no album or duration) but title is available.
|
||||
Selects the best match by duration when track length is known.
|
||||
Description: LRCLIB search fetcher — fuzzy search via lrclib.net /api/search.
|
||||
Used when metadata is incomplete (no album or duration) but title is available.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-04-04 15:28:34
|
||||
Description: Musixmatch fetchers (desktop API, usertoken auth)
|
||||
"""
|
||||
Description: Musixmatch fetchers (desktop API, anonymous or usertoken auth).
|
||||
|
||||
"""
|
||||
Uses the Musixmatch desktop API (apic-desktop.musixmatch.com).
|
||||
Token and all HTTP calls are managed by MusixmatchAuthenticator.
|
||||
Uses the Musixmatch desktop API (apic-desktop.musixmatch.com).
|
||||
Token and all HTTP calls are managed by MusixmatchAuthenticator.
|
||||
|
||||
Two fetchers:
|
||||
musixmatch-spotify — direct lookup by Spotify track ID (exact, no search)
|
||||
musixmatch — metadata search + best-candidate fallback
|
||||
Two fetchers:
|
||||
musixmatch-spotify — direct lookup by Spotify track ID (exact, no search)
|
||||
musixmatch — metadata search + best-candidate fallback
|
||||
"""
|
||||
|
||||
import json
|
||||
@@ -24,9 +22,7 @@ from ..lrc import LRCData
|
||||
from ..models import CacheStatus, LyricResult, TrackMeta
|
||||
from ..config import TTL_NETWORK_ERROR, TTL_NOT_FOUND
|
||||
|
||||
_MUSIXMATCH_MACRO_URL = (
|
||||
"https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get"
|
||||
)
|
||||
_MUSIXMATCH_MACRO_URL = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get"
|
||||
_MUSIXMATCH_SEARCH_URL = "https://apic-desktop.musixmatch.com/ws/1.1/track.search"
|
||||
|
||||
# Macro-specific params (format/app_id injected by authenticator)
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-25 11:04:51
|
||||
Description: Netease Cloud Music fetcher
|
||||
"""
|
||||
Description: Netease Cloud Music fetcher.
|
||||
|
||||
"""
|
||||
Uses the public cloudsearch API for searching and the song/lyric API for
|
||||
retrieving lyrics. No authentication required.
|
||||
|
||||
Search results are filtered by duration when the track has a known length
|
||||
to avoid returning lyrics for the wrong version of a song.
|
||||
Uses the public cloudsearch API for searching and the song/lyric API for
|
||||
retrieving lyrics. No authentication required.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
"""
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-03-31 01:54:02
|
||||
Description: QQ Music fetcher via self-hosted API proxy
|
||||
"""
|
||||
Description: QQ Music fetcher via self-hosted API proxy.
|
||||
|
||||
"""
|
||||
Requires a running qq-music-api instance.
|
||||
The base URL is read from the QQ_MUSIC_API_URL environment variable.
|
||||
Requires a running qq-music-api instance.
|
||||
The base URL is read from the QQ_MUSIC_API_URL environment variable.
|
||||
|
||||
Search → pick best match by duration → fetch LRC lyrics.
|
||||
Search → pick best match → fetch LRC lyrics.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
"""
|
||||
Shared candidate-selection logic for search-based fetchers.
|
||||
Author: Uyanide pywang0608@foxmail.com
|
||||
Date: 2026-04-04 11:32:23
|
||||
Description: Shared candidate-selection logic for search-based fetchers.
|
||||
|
||||
Each fetcher maps its API-specific results to SearchCandidate, then calls
|
||||
select_best() which scores candidates by metadata similarity, duration
|
||||
proximity, and sync status.
|
||||
Each fetcher maps its API-specific results to SearchCandidate, then calls
|
||||
select_best() which scores candidates by metadata similarity, duration
|
||||
proximity, and sync status.
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
Reference in New Issue
Block a user