|
|
@@ -1504,6 +1504,16 @@ class AnimeController extends BaseController
|
|
|
$animeId = $data['anime_id'];
|
|
|
$episodeId = $data['episode_id'];
|
|
|
|
|
|
+ // 查询没有pic_task_id的分镜个数
|
|
|
+ $noPicTaskCount = DB::table('mp_episode_segments')
|
|
|
+ ->where('anime_id', $animeId)
|
|
|
+ ->where('episode_id', $episodeId)
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->whereNull('pic_task_id')
|
|
|
+ ->orWhere('pic_task_id', '');
|
|
|
+ })
|
|
|
+ ->count('id');
|
|
|
+
|
|
|
// 获取所有分镜信息
|
|
|
$segments = DB::table('mp_episode_segments')
|
|
|
->where('anime_id', $animeId)
|
|
|
@@ -1526,7 +1536,7 @@ class AnimeController extends BaseController
|
|
|
$checkInterval = 5; // 每5秒检查一次
|
|
|
|
|
|
// 设置 SSE 响应头并开始长连接
|
|
|
- return response()->stream(function () use ($segments, $animeId, $episodeId, $startTime, $maxDuration, $checkInterval, $count) {
|
|
|
+ return response()->stream(function () use ($segments, $animeId, $episodeId, $startTime, $maxDuration, $checkInterval, $count, $noPicTaskCount) {
|
|
|
|
|
|
if ($count == 0) {
|
|
|
$completedCount = DB::table('mp_episode_segments')->where('anime_id', $animeId)->where('episode_id', $episodeId)->where('pic_task_id', '<>', '')->where('pic_task_status', '已完成')->count('id');
|
|
|
@@ -1536,8 +1546,8 @@ class AnimeController extends BaseController
|
|
|
'anime_id' => $animeId,
|
|
|
'episode_id' => $episodeId,
|
|
|
'completed_count' => $completedCount, // 成功完成的数量
|
|
|
- 'processed_count' => count($segments), // 已处理完成的数量(成功+失败)
|
|
|
- 'total_count' => count($segments),
|
|
|
+ 'processed_count' => count($segments) + $noPicTaskCount, // 已处理完成的数量(成功+失败)+ 没有pic_task_id的分镜
|
|
|
+ 'total_count' => count($segments) + $noPicTaskCount, // 总数包含没有pic_task_id的分镜
|
|
|
'total_elapsed_time' => time() - $startTime,
|
|
|
'episode_info' => $episode ?? null
|
|
|
]
|
|
|
@@ -1553,7 +1563,7 @@ class AnimeController extends BaseController
|
|
|
'data' => [
|
|
|
'anime_id' => $animeId,
|
|
|
'episode_id' => $episodeId,
|
|
|
- 'total_segments' => count($segments),
|
|
|
+ 'total_segments' => count($segments) + $noPicTaskCount, // 总数包含没有pic_task_id的分镜
|
|
|
'start_time' => $startTime,
|
|
|
'max_duration' => $maxDuration
|
|
|
]
|
|
|
@@ -1681,8 +1691,8 @@ class AnimeController extends BaseController
|
|
|
'episode_id' => $episodeId,
|
|
|
'updated_images' => $updatedImages,
|
|
|
'completed_count' => count($completedSegments), // 成功完成的数量
|
|
|
- 'processed_count' => count($processedSegments), // 已处理完成的数量(成功+失败)
|
|
|
- 'total_count' => count($segments),
|
|
|
+ 'processed_count' => count($processedSegments) + $noPicTaskCount, // 已处理完成的数量(成功+失败)+ 没有pic_task_id的分镜
|
|
|
+ 'total_count' => count($segments) + $noPicTaskCount, // 总数包含没有pic_task_id的分镜
|
|
|
'elapsed_time' => time() - $startTime,
|
|
|
'remaining_time' => max(0, $maxDuration - (time() - $startTime))
|
|
|
]
|
|
|
@@ -1768,8 +1778,8 @@ class AnimeController extends BaseController
|
|
|
'anime_id' => $animeId,
|
|
|
'episode_id' => $episodeId,
|
|
|
'completed_count' => count($completedSegments), // 成功完成的数量
|
|
|
- 'processed_count' => count($processedSegments), // 已处理完成的数量(成功+失败)
|
|
|
- 'total_count' => count($segments),
|
|
|
+ 'processed_count' => count($processedSegments) + $noPicTaskCount, // 已处理完成的数量(成功+失败)+ 没有pic_task_id的分镜
|
|
|
+ 'total_count' => count($segments) + $noPicTaskCount, // 总数包含没有pic_task_id的分镜
|
|
|
'total_elapsed_time' => time() - $startTime,
|
|
|
'episode_info' => $episode ?? null
|
|
|
]
|
|
|
@@ -1813,8 +1823,8 @@ class AnimeController extends BaseController
|
|
|
'anime_id' => $animeId,
|
|
|
'episode_id' => $episodeId,
|
|
|
'completed_count' => count($completedSegments), // 成功完成的数量
|
|
|
- 'processed_count' => count($processedSegments), // 已处理完成的数量(成功+失败)
|
|
|
- 'total_count' => count($segments),
|
|
|
+ 'processed_count' => count($processedSegments) + $noPicTaskCount, // 已处理完成的数量(成功+失败)+ 没有pic_task_id的分镜
|
|
|
+ 'total_count' => count($segments) + $noPicTaskCount, // 总数包含没有pic_task_id的分镜
|
|
|
'total_elapsed_time' => time() - $startTime,
|
|
|
'timeout_duration' => $maxDuration
|
|
|
]
|