bilibili-rename/main.go

61 lines
1.2 KiB
Go

package main
import (
"fmt"
"strconv"
)
type episode struct {
Index int64 `json:"index"`
Cid int64 `json:"cid"`
Title string `json:"title"`
}
func main() {
episodeProvider := new(mockProvider)
// epdatas, err := getEPData(episodeProvider, "av1742161")
epdatas, err := getEPData(episodeProvider, "ep173262")
if err != nil {
panic(err)
}
for i, epdata := range epdatas {
fmt.Printf("ep %d Cid: %v, Title: %s\n", i, epdata.Cid, epdata.Title)
}
}
func getEPData(provider EpisodeDataProvider, videoNo string) (episodes []episode, err error) {
videoType := videoNo[0:2]
videoID, err := strconv.ParseInt(videoNo[2:], 10, 64)
if err != nil {
return
}
fmt.Println(videoType, videoID)
switch videoType {
case "av":
avdatas, err := provider.GetAVData(videoID)
if err != nil {
return episodes, err
}
for i, avdata := range avdatas {
episodes = append(episodes, episode{
Index: int64(i),
Cid: avdata.Cid,
Title: avdata.Part,
})
}
case "ep":
epdatas, err := provider.GetEPData(videoID)
if err != nil {
return episodes, err
}
for i, epdata := range epdatas {
episodes = append(episodes, episode{
Index: int64(i),
Cid: epdata.Cid,
Title: epdata.LongTitle,
})
}
}
return
}