|
|
@@ -1258,19 +1258,22 @@ class AnimeController extends BaseController
|
|
|
mkdir($tempDir, 0755, true);
|
|
|
}
|
|
|
|
|
|
- // 下载图片
|
|
|
+ // 下载图片或视频
|
|
|
$downloadedFiles = [];
|
|
|
foreach ($segments as $segment) {
|
|
|
try {
|
|
|
- $imgUrl = $segment->img_url;
|
|
|
- if (empty($imgUrl)) {
|
|
|
+ // 优先使用video_url,如果没有则使用img_url
|
|
|
+ $mediaUrl = !empty($segment->video_url) ? $segment->video_url : $segment->img_url;
|
|
|
+
|
|
|
+ if (empty($mediaUrl)) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // 获取图片扩展名
|
|
|
- $extension = pathinfo(parse_url($imgUrl, PHP_URL_PATH), PATHINFO_EXTENSION);
|
|
|
+ // 获取文件扩展名
|
|
|
+ $extension = pathinfo(parse_url($mediaUrl, PHP_URL_PATH), PATHINFO_EXTENSION);
|
|
|
if (empty($extension)) {
|
|
|
- $extension = 'jpg';
|
|
|
+ // 根据URL类型设置默认扩展名
|
|
|
+ $extension = !empty($segment->video_url) ? 'mp4' : 'jpg';
|
|
|
}
|
|
|
|
|
|
// 构建文件名:分镜序号.扩展名
|
|
|
@@ -1281,7 +1284,7 @@ class AnimeController extends BaseController
|
|
|
);
|
|
|
$filePath = $tempDir . '/' . $fileName;
|
|
|
|
|
|
- // 下载图片(使用file_get_contents,兼容性更好)
|
|
|
+ // 下载文件(使用file_get_contents,兼容性更好)
|
|
|
$context = stream_context_create([
|
|
|
'http' => [
|
|
|
'timeout' => 30,
|
|
|
@@ -1294,28 +1297,30 @@ class AnimeController extends BaseController
|
|
|
]
|
|
|
]);
|
|
|
|
|
|
- $imageData = @file_get_contents($imgUrl, false, $context);
|
|
|
+ $fileData = @file_get_contents($mediaUrl, false, $context);
|
|
|
|
|
|
- if ($imageData !== false && !empty($imageData)) {
|
|
|
- file_put_contents($filePath, $imageData);
|
|
|
+ if ($fileData !== false && !empty($fileData)) {
|
|
|
+ file_put_contents($filePath, $fileData);
|
|
|
$downloadedFiles[] = $filePath;
|
|
|
} else {
|
|
|
$logData = [
|
|
|
'segment_id' => $segment->segment_id,
|
|
|
- 'img_url' => $imgUrl
|
|
|
+ 'media_url' => $mediaUrl,
|
|
|
+ 'type' => !empty($segment->video_url) ? 'video' : 'image'
|
|
|
];
|
|
|
- dLog('anime')->warning('图片下载失败', $logData);
|
|
|
- logDB('anime', 'warning', '图片下载失败', $logData);
|
|
|
+ dLog('anime')->warning('文件下载失败', $logData);
|
|
|
+ logDB('anime', 'warning', '文件下载失败', $logData);
|
|
|
}
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
$logData = [
|
|
|
'segment_id' => $segment->segment_id,
|
|
|
+ 'video_url' => $segment->video_url,
|
|
|
'img_url' => $segment->img_url,
|
|
|
'error' => $e->getMessage()
|
|
|
];
|
|
|
- dLog('anime')->error('下载图片异常', $logData);
|
|
|
- logDB('anime', 'error', '下载图片异常', $logData);
|
|
|
+ dLog('anime')->error('下载文件异常', $logData);
|
|
|
+ logDB('anime', 'error', '下载文件异常', $logData);
|
|
|
continue;
|
|
|
}
|
|
|
}
|