generated by Claude-3.7-Sonnet

This commit is contained in:
2025-03-28 22:27:08 +08:00
commit fdde34e1f0
13 changed files with 1581 additions and 0 deletions

87
README.md Normal file
View File

@@ -0,0 +1,87 @@
# Podcast Search for Go
这是一个用于搜索播客和解析播客RSS订阅的Go库。支持iTunes和PodcastIndex目录以及章节和转录等新功能。
## 功能
- 通过iTunes和PodcastIndex搜索播客
- 解析播客RSS订阅
- 获取播客剧集详情
- 支持播客章节和转录
## 安装
```bash
go get github.com/amugofjava/podcast_search/golang
```
## 使用方法
### 搜索播客
```go
package main
import (
"fmt"
"github.com/amugofjava/podcast_search/golang/search"
)
func main() {
// 创建iTunes搜索提供者
searchProvider := search.NewITunesProvider()
// 搜索播客
result, err := searchProvider.SearchPodcasts("golang", nil)
if err != nil {
fmt.Printf("搜索错误: %v\n", err)
return
}
// 打印结果
fmt.Printf("找到 %d 个播客\n", result.ResultCount)
for _, item := range result.Items {
fmt.Printf("标题: %s\n", item.Title)
fmt.Printf("作者: %s\n", item.Author)
fmt.Printf("Feed URL: %s\n\n", item.FeedURL)
}
}
```
### 加载播客订阅
```go
package main
import (
"fmt"
"github.com/amugofjava/podcast_search/golang/model"
)
func main() {
// 加载播客订阅
podcast, err := model.LoadFeed("https://feeds.simplecast.com/XA_851k3")
if err != nil {
fmt.Printf("加载订阅错误: %v\n", err)
return
}
// 打印播客信息
fmt.Printf("标题: %s\n", podcast.Title)
fmt.Printf("描述: %s\n", podcast.Description)
fmt.Printf("剧集数量: %d\n\n", len(podcast.Episodes))
// 打印剧集信息
for i, episode := range podcast.Episodes {
if i >= 3 {
break // 只显示前3个剧集
}
fmt.Printf("剧集: %s\n", episode.Title)
fmt.Printf("发布日期: %s\n\n", episode.PublicationDate)
}
}
```
## 许可证
此库使用MIT许可证。详情请参阅LICENSE文件。