|
|
@@ -26,16 +26,16 @@ func OrganizeDlSubFiles(tmpFolderName string, subInfos []common.SupplierSubInfo)
|
|
|
// 第三方的解压库,首先不支持 io.Reader 的操作,也就是得缓存到本地硬盘再读取解压
|
|
|
// 且使用 walk 会无法解压 rar,得指定具体的实例,太麻烦了,直接用通用的接口得了,就是得都缓存下来再判断
|
|
|
// 基于以上两点,写了一堆啰嗦的逻辑···
|
|
|
- for _, subInfo := range subInfos {
|
|
|
+ for i, _ := range subInfos {
|
|
|
// 先存下来,保存是时候需要前缀,前缀就是从那个网站下载来的
|
|
|
- nowFileSaveFullPath := path.Join(tmpFolderFullPath, GetFrontNameAndOrgName(subInfo))
|
|
|
- err = utils.OutputFile(nowFileSaveFullPath, subInfo.Data)
|
|
|
+ nowFileSaveFullPath := path.Join(tmpFolderFullPath, GetFrontNameAndOrgName(&subInfos[i]))
|
|
|
+ err = utils.OutputFile(nowFileSaveFullPath, subInfos[i].Data)
|
|
|
if err != nil {
|
|
|
- GetLogger().Errorln("getFrontNameAndOrgName - OutputFile",subInfo.FromWhere, subInfo.Name, subInfo.TopN, err)
|
|
|
+ GetLogger().Errorln("getFrontNameAndOrgName - OutputFile",subInfos[i].FromWhere, subInfos[i].Name, subInfos[i].TopN, err)
|
|
|
continue
|
|
|
}
|
|
|
- nowExt := strings.ToLower(subInfo.Ext)
|
|
|
- epsKey := GetEpisodeKeyName(subInfo.Season, subInfo.Episode)
|
|
|
+ nowExt := strings.ToLower(subInfos[i].Ext)
|
|
|
+ epsKey := GetEpisodeKeyName(subInfos[i].Season, subInfos[i].Episode)
|
|
|
_, ok := siteSubInfoDict[epsKey]
|
|
|
if ok == false {
|
|
|
// 不存在则实例化
|
|
|
@@ -51,7 +51,7 @@ func OrganizeDlSubFiles(tmpFolderName string, subInfos []common.SupplierSubInfo)
|
|
|
} else {
|
|
|
// 那么就是需要解压的文件了
|
|
|
// 解压,给一个单独的文件夹
|
|
|
- unzipTmpFolder := path.Join(tmpFolderFullPath, subInfo.FromWhere)
|
|
|
+ unzipTmpFolder := path.Join(tmpFolderFullPath, subInfos[i].FromWhere)
|
|
|
err = os.MkdirAll(unzipTmpFolder, os.ModePerm)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -59,23 +59,23 @@ func OrganizeDlSubFiles(tmpFolderName string, subInfos []common.SupplierSubInfo)
|
|
|
err = UnArchiveFile(nowFileSaveFullPath, unzipTmpFolder)
|
|
|
// 解压完成后,遍历受支持的字幕列表,加入缓存列表
|
|
|
if err != nil {
|
|
|
- GetLogger().Errorln("archiver.UnArchive", subInfo.FromWhere, subInfo.Name, subInfo.TopN, err)
|
|
|
+ GetLogger().Errorln("archiver.UnArchive", subInfos[i].FromWhere, subInfos[i].Name, subInfos[i].TopN, err)
|
|
|
continue
|
|
|
}
|
|
|
// 搜索这个目录下的所有符合字幕格式的文件
|
|
|
subFileFullPaths, err := SearchMatchedSubFile(unzipTmpFolder)
|
|
|
if err != nil {
|
|
|
- GetLogger().Errorln("searchMatchedSubFile", subInfo.FromWhere, subInfo.Name, subInfo.TopN, err)
|
|
|
+ GetLogger().Errorln("searchMatchedSubFile", subInfos[i].FromWhere, subInfos[i].Name, subInfos[i].TopN, err)
|
|
|
continue
|
|
|
}
|
|
|
// 这里需要给这些下载到的文件进行改名,加是从那个网站来的前缀,后续好查找
|
|
|
for _, fileFullPath := range subFileFullPaths {
|
|
|
- newSubName := AddFrontName(subInfo, filepath.Base(fileFullPath))
|
|
|
+ newSubName := AddFrontName(subInfos[i], filepath.Base(fileFullPath))
|
|
|
newSubNameFullPath := path.Join(tmpFolderFullPath, newSubName)
|
|
|
// 改名
|
|
|
err = os.Rename(fileFullPath, newSubNameFullPath)
|
|
|
if err != nil {
|
|
|
- GetLogger().Errorln("os.Rename", subInfo.FromWhere, subInfo.Name, subInfo.TopN, err)
|
|
|
+ GetLogger().Errorln("os.Rename", subInfos[i].FromWhere, subInfos[i].Name, subInfos[i].TopN, err)
|
|
|
continue
|
|
|
}
|
|
|
// 加入缓存列表
|