nfo文件封面识别失败问题处理

This commit is contained in:
jianzhichu
2026-01-28 09:56:18 +08:00
parent 8af041cf91
commit 3578962a4c
5 changed files with 43 additions and 23 deletions
+10 -1
View File
@@ -49,7 +49,16 @@ namespace dy.net.job
authorFolder = $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Author?.Nickname, item.Author?.Uid, true)}";
}
var folder = Path.Combine(cookie.SavePath, authorFolder, $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)}");
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
else
{
//说明文件夹存在,检查里面有没有文件,如果已经有视频文件了,说明视频标题相同,那么应该重新创建文件夹,+id
folder = Path.Combine(cookie.SavePath, authorFolder , $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)}"+"_" + item.AwemeId);
}
return folder;
}
+10 -1
View File
@@ -55,7 +55,16 @@ namespace dy.net.job
authorFolder = $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Author?.Nickname, item.Author?.Uid, true)}";
}
var folder = Path.Combine(cookie.FavSavePath, authorFolder, $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)}");
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
else
{
//说明文件夹存在,检查里面有没有文件,如果已经有视频文件了,说明视频标题相同,那么应该重新创建文件夹,+id
folder = Path.Combine(cookie.SavePath, authorFolder, $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)}" + "_" + item.AwemeId);
}
return folder;
}
}
+11 -18
View File
@@ -204,7 +204,16 @@ namespace dy.net.job
{
var subFolder = DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true);
var folder = Path.Combine(cookie.SavePath, subFolder);
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
else
{
//说明文件夹存在,检查里面有没有文件,如果已经有视频文件了,说明视频标题相同,那么应该重新创建文件夹,+id
folder = Path.Combine(cookie.SavePath, subFolder + "_" + item.AwemeId);
}
return folder;
}
@@ -267,21 +276,6 @@ namespace dy.net.job
}
}
/// <summary>
/// 获取NFO文件中的图片(如海报)文件名
/// </summary>
/// <param name="cookie">当前操作的Cookie</param>
/// <param name="item">视频信息</param>
/// <param name="config">应用配置</param>
/// <param name="fileName">原文件名称(如poster.jpg</param>
/// <param name="cate"></param>
/// <returns>封面图片的文件名</returns>
protected virtual string GetNfoFileName(DouyinCookie cookie, Aweme item, AppConfig config, string fileName, DouyinCollectCate cate)
{
return $"{item.AwemeId}_{fileName}";
}
/// <summary>
/// 处理单个用户Cookie的同步逻辑
/// 负责循环获取视频数据、处理视频、保存视频信息等
@@ -1363,8 +1357,7 @@ namespace dy.net.job
{
if (string.IsNullOrWhiteSpace(coverUrl)) return;
// 获取封面图片文件名
var coverImgName = GetNfoFileName(cookie, item, config, "poster.jpg", cate);
var coverSavePath = Path.Combine(saveFolder, coverImgName);
var coverSavePath = Path.Combine(saveFolder, "poster.jpg");
// 如果封面文件不存在,则下载
if (!File.Exists(coverSavePath))
+10 -1
View File
@@ -19,7 +19,16 @@ namespace dy.net.job
if (cate != null)
{
var folder = Path.Combine(cookie.SavePath, DouyinFileNameHelper.SanitizeLinuxFileName(cate.SaveFolder, "", true), DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true));
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
else
{
//说明文件夹存在,检查里面有没有文件,如果已经有视频文件了,说明视频标题相同,那么应该重新创建文件夹,+id
folder = Path.Combine(cookie.SavePath, DouyinFileNameHelper.SanitizeLinuxFileName(cate.SaveFolder, "", true), DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)+"_"+item.AwemeId);
}
return folder;
}
else
+2 -2
View File
@@ -64,9 +64,9 @@ namespace dy.net.utils
}
},
Author = DouyinFileNameHelper.SanitizeLinuxFileName(video.Author, "", true),
Poster = $"{video.AwemeId}_poster.jpg",
Poster = "poster.jpg",
Title = video.VideoTitle,
Thumbnail = $"{video.AwemeId}_poster.jpg",// 使用poster作为缩略图
Thumbnail = "poster.jpg",// 使用poster作为缩略图
ReleaseDate = video.CreateTime,
Genres = new List<string> { video.Tag1, video.Tag2, video.Tag3 }.Where(t => !string.IsNullOrWhiteSpace(t)).ToList()
};