修复up主视频下载,不下载图文视频的bug
增加图文视频下载配置(是否合成视频,是否单独下载图片,单独下载音频)
This commit is contained in:
+36
-18
@@ -4,6 +4,7 @@ using dy.net.dto;
|
||||
using dy.net.model;
|
||||
using dy.net.service;
|
||||
using dy.net.utils;
|
||||
using Newtonsoft.Json;
|
||||
using Quartz;
|
||||
using Quartz.Util;
|
||||
using Serilog;
|
||||
@@ -133,6 +134,10 @@ namespace dy.net.job
|
||||
return;
|
||||
}
|
||||
|
||||
//将配置项打印日志
|
||||
Log.Debug($"最新:{JsonConvert.SerializeObject(config)}");
|
||||
|
||||
|
||||
// 2. 从配置中获取每页请求数量
|
||||
if (config.BatchCount > 0)
|
||||
count = config.BatchCount.ToString();
|
||||
@@ -356,9 +361,12 @@ namespace dy.net.job
|
||||
// 如果配置了下载图片视频,则处理图片集并合成视频
|
||||
if (_downImageVideo)
|
||||
{
|
||||
var mergevideo = await ProcessImageSetAndMergeToVideo(cookie, item, data, config);
|
||||
if (mergevideo != null)
|
||||
videos.Add(mergevideo);
|
||||
if(config.DownImage||config.DownMp3||config.DownImage)
|
||||
{
|
||||
var mergevideo = await ProcessImageSetAndMergeToVideo(cookie, item, data, config);
|
||||
if (mergevideo != null)
|
||||
videos.Add(mergevideo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return videos;
|
||||
@@ -404,9 +412,13 @@ namespace dy.net.job
|
||||
// 下载视频
|
||||
if (!await _douyinService.DownloadAsync(videoUrl, savePath, cookie.Cookies))
|
||||
{
|
||||
Log.Error($"{JobType}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载失败");
|
||||
Log.Error($"{JobType}-{item?.Author?.Nickname??""}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载失败");
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Debug($"{JobType}-{item?.Author?.Nickname ?? ""}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载完成");
|
||||
}
|
||||
|
||||
// 下载视频封面
|
||||
await DownVideoCover(item, saveFolder, cookie, config);
|
||||
@@ -455,7 +467,7 @@ namespace dy.net.job
|
||||
var imageService = _serviceProvider.GetService<ImageMergeToVideoService>();
|
||||
if (imageService == null)
|
||||
{
|
||||
Log.Error($"{JobType} -图片视频同步-无法创建 ImageMergeToVideoService。");
|
||||
Log.Error($"{JobType} -图片视频同步-无法实例化 ImageMergeToVideoService。");
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -484,29 +496,35 @@ namespace dy.net.job
|
||||
};
|
||||
|
||||
// 执行图片合成视频操作
|
||||
var mergeResult = await imageService.MergeToVideo(AppContext.BaseDirectory, reqParams, savePath, fileNamefolder);
|
||||
var mergeResult = await imageService.MergeToVideo(AppContext.BaseDirectory, reqParams, savePath, fileNamefolder,config.DownImageVideo,config.DownImage,config.DownMp3);
|
||||
if (!mergeResult)
|
||||
{
|
||||
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
|
||||
return null;
|
||||
}
|
||||
|
||||
// 检查合成后的视频文件是否有效
|
||||
if (!File.Exists(savePath) || new FileInfo(savePath).Length <= 0)
|
||||
if (config.DownImageVideo)
|
||||
{
|
||||
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
|
||||
// 清理无效的文件和文件夹
|
||||
if (Directory.Exists(fileNamefolder))
|
||||
// 检查合成后的视频文件是否有效
|
||||
if (!File.Exists(savePath) || new FileInfo(savePath).Length <= 0)
|
||||
{
|
||||
File.Delete(savePath);
|
||||
Directory.Delete(fileNamefolder, true);
|
||||
Log.Error($"{JobType}-图片视频同步-已删除合成失败的视频文件和目录");
|
||||
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
|
||||
// 清理无效的文件和文件夹
|
||||
if (Directory.Exists(fileNamefolder))
|
||||
{
|
||||
File.Delete(savePath);
|
||||
Directory.Delete(fileNamefolder, true);
|
||||
Log.Error($"{JobType}-图片视频同步-已删除合成失败的视频文件和目录");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
|
||||
// 下载视频封面(使用第一张图片作为封面)
|
||||
await DownVideoCover(imageUrls.FirstOrDefault(), fileNamefolder, cookie, item, config);
|
||||
// 下载视频封面(使用第一张图片作为封面)
|
||||
await DownVideoCover(imageUrls.FirstOrDefault(), fileNamefolder, cookie, item, config);
|
||||
// 下载作者头像
|
||||
var (avatarSavePath, avatarUrl) = await DownAuthorAvatar(cookie, item);
|
||||
// 生成NFO文件
|
||||
@@ -690,7 +708,7 @@ namespace dy.net.job
|
||||
if (!string.IsNullOrWhiteSpace(downImageVideoConfig))
|
||||
{
|
||||
downImageVideoConfig = downImageVideoConfig.ToLower();
|
||||
_downImageVideo = config.DownImageVideo && (downImageVideoConfig == "1" || downImageVideoConfig == "y" || downImageVideoConfig == "t" || downImageVideoConfig == "true");
|
||||
_downImageVideo = config.DownImageVideo && downImageVideoConfig == "1";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user