Просмотр исходного кода

调整导出分镜的逻辑,优先导出视频

lh 2 месяцев назад
Родитель
Сommit
d72ea580eb
1 измененных файлов с 20 добавлено и 15 удалено
  1. 20 15
      app/Http/Controllers/Anime/AnimeController.php

+ 20 - 15
app/Http/Controllers/Anime/AnimeController.php

@@ -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;
                 }
             }