@@ -12,19 +12,26 @@ import (
1212 "github.com/OpenListTeam/OpenList/v4/internal/model"
1313)
1414
15- const discogsBaseURL = "https://api.discogs.com"
15+ const discogsDefaultBaseURL = "https://api.discogs.com"
1616
1717// DiscogsScraper Discogs音乐刮削器
1818type DiscogsScraper struct {
19- Token string
20- client * http.Client
19+ Token string
20+ BaseURL string // 可自定义的 Discogs API 地址
21+ client * http.Client
2122}
2223
2324// NewDiscogsScraper 创建Discogs刮削器
24- func NewDiscogsScraper (token string ) * DiscogsScraper {
25+ // baseURL 为可自定义的 Discogs API 服务地址,为空时使用默认 https://api.discogs.com
26+ func NewDiscogsScraper (token string , baseURL string ) * DiscogsScraper {
27+ base := strings .TrimRight (strings .TrimSpace (baseURL ), "/" )
28+ if base == "" {
29+ base = discogsDefaultBaseURL
30+ }
2531 return & DiscogsScraper {
26- Token : token ,
27- client : & http.Client {Timeout : 15 * time .Second },
32+ Token : token ,
33+ BaseURL : base ,
34+ client : & http.Client {Timeout : 15 * time .Second },
2835 }
2936}
3037
@@ -121,7 +128,7 @@ func parseMusicFileName(fileName string) []string {
121128// doDiscogsSearch 执行单次Discogs搜索
122129func (s * DiscogsScraper ) doDiscogsSearch (query string ) (* discogsSearchResult , error ) {
123130 searchURL := fmt .Sprintf ("%s/database/search?q=%s&type=release&token=%s" ,
124- discogsBaseURL , url .QueryEscape (query ), s .Token )
131+ s . BaseURL , url .QueryEscape (query ), s .Token )
125132
126133 req , _ := http .NewRequest ("GET" , searchURL , nil )
127134 req .Header .Set ("User-Agent" , "OpenList/4.0 +https://github.com/OpenListTeam/OpenList" )
@@ -214,7 +221,7 @@ func (s *DiscogsScraper) ScrapeMusic(item *model.MediaItem) error {
214221 first := searchResult .Results [0 ]
215222
216223 // 获取详情
217- detailURL := fmt .Sprintf ("%s/releases/%d?token=%s" , discogsBaseURL , first .ID , s .Token )
224+ detailURL := fmt .Sprintf ("%s/releases/%d?token=%s" , s . BaseURL , first .ID , s .Token )
218225 detailReq , _ := http .NewRequest ("GET" , detailURL , nil )
219226 detailReq .Header .Set ("User-Agent" , "OpenList/4.0 +https://github.com/OpenListTeam/OpenList" )
220227
0 commit comments