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)}"; authorFolder = $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Author?.Nickname, item.Author?.Uid, true)}";
} }
var folder = Path.Combine(cookie.SavePath, authorFolder, $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, 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; return folder;
} }
+10 -1
View File
@@ -55,7 +55,16 @@ namespace dy.net.job
authorFolder = $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Author?.Nickname, item.Author?.Uid, true)}"; authorFolder = $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Author?.Nickname, item.Author?.Uid, true)}";
} }
var folder = Path.Combine(cookie.FavSavePath, authorFolder, $"{DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, 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; return folder;
} }
} }
+11 -18
View File
@@ -204,7 +204,16 @@ namespace dy.net.job
{ {
var subFolder = DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true); var subFolder = DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true);
var folder = Path.Combine(cookie.SavePath, subFolder); 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; 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> /// <summary>
/// 处理单个用户Cookie的同步逻辑 /// 处理单个用户Cookie的同步逻辑
/// 负责循环获取视频数据、处理视频、保存视频信息等 /// 负责循环获取视频数据、处理视频、保存视频信息等
@@ -1363,8 +1357,7 @@ namespace dy.net.job
{ {
if (string.IsNullOrWhiteSpace(coverUrl)) return; if (string.IsNullOrWhiteSpace(coverUrl)) return;
// 获取封面图片文件名 // 获取封面图片文件名
var coverImgName = GetNfoFileName(cookie, item, config, "poster.jpg", cate); var coverSavePath = Path.Combine(saveFolder, "poster.jpg");
var coverSavePath = Path.Combine(saveFolder, coverImgName);
// 如果封面文件不存在,则下载 // 如果封面文件不存在,则下载
if (!File.Exists(coverSavePath)) if (!File.Exists(coverSavePath))
+10 -1
View File
@@ -19,7 +19,16 @@ namespace dy.net.job
if (cate != null) if (cate != null)
{ {
var folder = Path.Combine(cookie.SavePath, DouyinFileNameHelper.SanitizeLinuxFileName(cate.SaveFolder, "", true), DouyinFileNameHelper.SanitizeLinuxFileName(item.Desc, item.AwemeId, true)); 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; return folder;
} }
else else
+2 -2
View File
@@ -64,9 +64,9 @@ namespace dy.net.utils
} }
}, },
Author = DouyinFileNameHelper.SanitizeLinuxFileName(video.Author, "", true), Author = DouyinFileNameHelper.SanitizeLinuxFileName(video.Author, "", true),
Poster = $"{video.AwemeId}_poster.jpg", Poster = "poster.jpg",
Title = video.VideoTitle, Title = video.VideoTitle,
Thumbnail = $"{video.AwemeId}_poster.jpg",// 使用poster作为缩略图 Thumbnail = "poster.jpg",// 使用poster作为缩略图
ReleaseDate = video.CreateTime, ReleaseDate = video.CreateTime,
Genres = new List<string> { video.Tag1, video.Tag2, video.Tag3 }.Where(t => !string.IsNullOrWhiteSpace(t)).ToList() Genres = new List<string> { video.Tag1, video.Tag2, video.Tag3 }.Where(t => !string.IsNullOrWhiteSpace(t)).ToList()
}; };