package main import ( "fmt" "os" "path" "github.com/yinhui87/go-component/language" ) func main() { dataSource := new(mockSource) episodeProvider := NewEpisodeDataProvider(dataSource) epdatas, err := episodeProvider.GetEpisodeData("av1742161", 143, 147) // epdatas, err := getEPData(episodeProvider, "ep173262") if err != nil { panic(err) } for i, epdata := range epdatas { fmt.Printf("%dep %d Cid: %v, Title: %s\n", i, epdata.Index, epdata.Cid, epdata.Title) } // 获取到所有集信息,开始准备文件 filenames, err := getFileList() if err != nil { panic(err) } if len(filenames) != len(epdatas) { panic(fmt.Errorf("file count[%d] diff with epdata count[%d]", len(filenames), len(epdatas))) } for i := 0; i < len(filenames); i++ { epdata := epdatas[i] fmt.Printf("file %s cid[%d] title is %s\n", filenames[i], epdata.Cid, epdata.Title) newName := fmt.Sprintf("%s%s", epdata.Title, path.Ext(filenames[i])) fmt.Println("rename ", filenames[i], " to ", newName) os.Rename(filenames[i], newName) } } func getFileList() (filenames []string, err error) { pwd, err := os.Open(".") if err != nil { return } files, err := pwd.Readdir(0) if err != nil { return } fileTimeMap := make(map[int]string) var fileTimes []int for _, fileInfo := range files { if !fileInfo.IsDir() { fileTimeMap[int(fileInfo.ModTime().Unix())] = fileInfo.Name() fileTimes = append(fileTimes, int(fileInfo.ModTime().Unix())) } } fileTimes = language.ArraySort(fileTimes).([]int) for _, t := range fileTimes { filenames = append(filenames, fileTimeMap[t]) } return }