add Summary field for ApplePodcast

This commit is contained in:
2025-03-29 16:20:28 +08:00
parent cd03851e2b
commit 06f1d31abe
3 changed files with 11 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ func main() {
provider := search.NewITunesProvider() provider := search.NewITunesProvider()
// podcast, err := provider.SearchPodcasts("golang", &search.SearchOptions{Country: "us", Language: "en-us"}) // podcast, err := provider.SearchPodcasts("golang", &search.SearchOptions{Country: "us", Language: "en-us"})
podcast, err := provider.Charts(&search.ChartsOptions{Country: "us", Language: "en-us", Limit: 200}) podcast, err := provider.Charts(&search.ChartsOptions{Country: "us", Language: "en-us", Limit: 10})
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@@ -18,6 +18,7 @@ type ApplePodcast struct {
TrackCensoredName string `json:"trackCensoredName,omitempty"` TrackCensoredName string `json:"trackCensoredName,omitempty"`
CollectionViewURL string `json:"collectionViewUrl,omitempty"` CollectionViewURL string `json:"collectionViewUrl,omitempty"`
FeedURL string `json:"feedUrl,omitempty"` FeedURL string `json:"feedUrl,omitempty"`
Summary string `json:"summary,omitempty"`
TrackViewURL string `json:"trackViewUrl,omitempty"` TrackViewURL string `json:"trackViewUrl,omitempty"`
ArtworkURL30 string `json:"artworkUrl30,omitempty"` ArtworkURL30 string `json:"artworkUrl30,omitempty"`
ArtworkURL60 string `json:"artworkUrl60,omitempty"` ArtworkURL60 string `json:"artworkUrl60,omitempty"`

View File

@@ -147,7 +147,7 @@ func (p *ITunesProvider) SearchPodcasts(term string, options *SearchOptions) (*m
// 构建URL // 构建URL
url := fmt.Sprintf("%s?%s", p.SearchAPIEndpoint, params.Encode()) url := fmt.Sprintf("%s?%s", p.SearchAPIEndpoint, params.Encode())
fmt.Printf("url: %s\n", url) // fmt.Printf("url: %s\n", url)
// 发送请求 // 发送请求
req, err := http.NewRequest("GET", url, nil) req, err := http.NewRequest("GET", url, nil)
@@ -175,13 +175,7 @@ func (p *ITunesProvider) SearchPodcasts(term string, options *SearchOptions) (*m
if err != nil { if err != nil {
return nil, fmt.Errorf("读取响应失败: %w", err) return nil, fmt.Errorf("读取响应失败: %w", err)
} }
fmt.Printf("body: %s\n", string(body)) // fmt.Printf("body: %s\n", string(body))
// 解析JSON响应
// var response struct {
// ResultCount int `json:"resultCount"`
// Results []model.ApplePodcast `json:"results"`
// }
// 创建搜索结果 // 创建搜索结果
result := &model.SearchResult2{ result := &model.SearchResult2{
@@ -205,7 +199,7 @@ func (p *ITunesProvider) SearchPodcasts(term string, options *SearchOptions) (*m
func (p *ITunesProvider) Charts(options *ChartsOptions) (*model.SearchResult2, error) { func (p *ITunesProvider) Charts(options *ChartsOptions) (*model.SearchResult2, error) {
// 构建URL // 构建URL
url := p.buildChartsURL(options) url := p.buildChartsURL(options)
fmt.Printf("url: %s\n", url) // fmt.Printf("url: %s\n", url)
// 发送请求 // 发送请求
req, err := http.NewRequest("GET", url, nil) req, err := http.NewRequest("GET", url, nil)
@@ -279,15 +273,16 @@ func (p *ITunesProvider) Charts(options *ChartsOptions) (*model.SearchResult2, e
if err != nil { if err != nil {
continue continue
} }
fmt.Printf("lookupBody: %s\n", string(lookupBody)) // fmt.Printf("lookupBody: %s\n", string(lookupBody))
var tempResult model.LookupResult var lookupResult model.LookupResult
if err := json.Unmarshal(lookupBody, &tempResult); err != nil { if err := json.Unmarshal(lookupBody, &lookupResult); err != nil {
continue continue
} }
if tempResult.ResultCount > 0 && len(tempResult.Items) > 0 { if lookupResult.ResultCount > 0 && len(lookupResult.Items) > 0 {
result.Items = append(result.Items, tempResult.Items[0]) lookupResult.Items[0].Summary = entry.Summary.Label
result.Items = append(result.Items, lookupResult.Items[0])
} }
} }
result.ResultCount = len(result.Items) result.ResultCount = len(result.Items)