Improve image handling and logging in CreateVkPostJob for better error tracking and validation
This commit is contained in:
@@ -74,7 +74,6 @@ class CreateVkPostJob implements ShouldQueue
|
|||||||
Log::info("{$logPrefix} Видео: " . count($attached_videos) . ", Осталось слотов для фото: {$remaining_slots}");
|
Log::info("{$logPrefix} Видео: " . count($attached_videos) . ", Осталось слотов для фото: {$remaining_slots}");
|
||||||
|
|
||||||
if ($remaining_slots > 0 && !empty($this->images)) {
|
if ($remaining_slots > 0 && !empty($this->images)) {
|
||||||
// Подготовка только тех изображений, которые поместятся
|
|
||||||
$images_to_attach = array_slice($this->images, 0, $remaining_slots);
|
$images_to_attach = array_slice($this->images, 0, $remaining_slots);
|
||||||
|
|
||||||
Log::info("{$logPrefix} Начинаем подготовку фото для стены", ['files' => $images_to_attach]);
|
Log::info("{$logPrefix} Начинаем подготовку фото для стены", ['files' => $images_to_attach]);
|
||||||
@@ -89,14 +88,12 @@ class CreateVkPostJob implements ShouldQueue
|
|||||||
Log::info("{$logPrefix} Фото не будут добавлены (нет слотов или нет фото).");
|
Log::info("{$logPrefix} Фото не будут добавлены (нет слотов или нет фото).");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Собираем все вложения с учетом приоритетов
|
|
||||||
$selected_attachments = array_merge($doc_list, $attached_videos, $image_list);
|
$selected_attachments = array_merge($doc_list, $attached_videos, $image_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверяем, все ли изображения прикреплены
|
|
||||||
if (count($this->images) > count($image_list)) {
|
if (count($this->images) > count($image_list)) {
|
||||||
Log::info("{$logPrefix} Не все фото вошли в пост. Создаем альбом.");
|
Log::info("{$logPrefix} Не все фото вошли в пост. Создаем альбом.");
|
||||||
// Если не все изображения вошли, создаем альбом
|
|
||||||
$album = $this->createAlbum($this->title, $this->images);
|
$album = $this->createAlbum($this->title, $this->images);
|
||||||
if (isset($album['id'])) {
|
if (isset($album['id'])) {
|
||||||
$albumLink = "https://vk.ru/album-{$this->public_id}_{$album['id']}";
|
$albumLink = "https://vk.ru/album-{$this->public_id}_{$album['id']}";
|
||||||
@@ -127,14 +124,31 @@ class CreateVkPostJob implements ShouldQueue
|
|||||||
|
|
||||||
private function prepareWallPhotos(array $images): string
|
private function prepareWallPhotos(array $images): string
|
||||||
{
|
{
|
||||||
$baseUrl = config('app.url');
|
|
||||||
try {
|
try {
|
||||||
$imagePaths = array_map(function($img) use ($baseUrl) {
|
$imagePaths = [];
|
||||||
// Убираем двойные слеши если есть, для красоты логов, но не обязательно
|
|
||||||
return $baseUrl . $img;
|
|
||||||
}, $images);
|
|
||||||
|
|
||||||
Log::info("URL изображений для загрузки:", $imagePaths);
|
foreach ($images as $img) {
|
||||||
|
$relativePath = ltrim($img, '/');
|
||||||
|
|
||||||
|
$fullPath = public_path($relativePath);
|
||||||
|
|
||||||
|
if (!file_exists($fullPath)) {
|
||||||
|
$fullPath = storage_path('app/public/' . $relativePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($fullPath)) {
|
||||||
|
$imagePaths[] = $fullPath;
|
||||||
|
} else {
|
||||||
|
Log::warning("Файл не найден на диске: {$img} (Искали: {$fullPath})");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($imagePaths)) {
|
||||||
|
Log::info("Нет валидных локальных путей для фото.");
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info("Локальные пути изображений для загрузки:", $imagePaths);
|
||||||
|
|
||||||
$photos = $this->uploadWallPhotos($imagePaths, $this->public_id);
|
$photos = $this->uploadWallPhotos($imagePaths, $this->public_id);
|
||||||
|
|
||||||
@@ -143,6 +157,7 @@ class CreateVkPostJob implements ShouldQueue
|
|||||||
}, $photos));
|
}, $photos));
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error("Ошибка при подготовке фотографий: " . $e->getMessage());
|
Log::error("Ошибка при подготовке фотографий: " . $e->getMessage());
|
||||||
return '';
|
return '';
|
||||||
|
|||||||
Reference in New Issue
Block a user