From 9417a648fa4ab9768b569a12caad3970c3b75eac Mon Sep 17 00:00:00 2001 From: Charles Teh Date: Tue, 21 Nov 2023 01:41:32 +0800 Subject: [PATCH] Update (Task) --- app/Jobs/Tasks/FillPostMetadataTask.php | 70 +++++++++++++------------ 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/app/Jobs/Tasks/FillPostMetadataTask.php b/app/Jobs/Tasks/FillPostMetadataTask.php index bc58e9e..8b8b98d 100644 --- a/app/Jobs/Tasks/FillPostMetadataTask.php +++ b/app/Jobs/Tasks/FillPostMetadataTask.php @@ -176,42 +176,46 @@ private static function setPostImage($post) continue; } - $main_image_url = $serp_url_research->main_image; - $image_ref_url = $serp_url_research->url; - - $image_response = Http::timeout(300)->withHeaders([ - 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', - ])->get($main_image_url); - - $image_content = $image_response->body(); - - // Get the size of the image content in KB - $imageSizeInKb = strlen($image_response->body()) / 1024; - - // Skip this iteration if the image exceeds the maximum size - if ($imageSizeInKb > 1024) { - continue; - } - - $post_description = strtoupper(now()->format('j M')).' • '.$post->main_keyword.' • '.markdown_min_read($post->body); - - $image = ImageGen::getMainImage($image_content, 1007, 567); - $og_image = ImageGen::getOpenGraphImage($image_content, 1007, 567, $post->title, $post_description); - - $epoch_now_timestamp = epoch_now_timestamp(); - $filename = $post->slug.'-'.$epoch_now_timestamp.'.jpg'; - $og_filename = $post->slug.'-'.$epoch_now_timestamp.'_og.jpg'; - - OSSUploader::uploadFile('r2', 'post_images/', $filename, (string) $image->stream('jpeg', 75)); - OSSUploader::uploadFile('r2', 'post_images/', $og_filename, (string) $og_image->stream('jpeg', 75)); - - $post->featured_image = 'post_images/'.$filename; - $post->image_ref_url = $image_ref_url; - - $image->destroy(); + try { + + $main_image_url = $serp_url_research->main_image; + $image_ref_url = $serp_url_research->url; + + $image_response = Http::timeout(300)->withHeaders([ + 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', + ])->get($main_image_url); + + $image_content = $image_response->body(); + + // Get the size of the image content in KB + $imageSizeInKb = strlen($image_response->body()) / 1024; + + // Skip this iteration if the image exceeds the maximum size + if ($imageSizeInKb > 1024) { + continue; + } + + $post_description = strtoupper(now()->format('j M')).' • '.$post->main_keyword.' • '.markdown_min_read($post->body); + + $image = ImageGen::getMainImage($image_content, 1007, 567); + $og_image = ImageGen::getOpenGraphImage($image_content, 1007, 567, $post->title, $post_description); + + $epoch_now_timestamp = epoch_now_timestamp(); + $filename = $post->slug.'-'.$epoch_now_timestamp.'.jpg'; + $og_filename = $post->slug.'-'.$epoch_now_timestamp.'_og.jpg'; + + OSSUploader::uploadFile('r2', 'post_images/', $filename, (string) $image->stream('jpeg', 75)); + OSSUploader::uploadFile('r2', 'post_images/', $og_filename, (string) $og_image->stream('jpeg', 75)); + + $post->featured_image = 'post_images/'.$filename; + $post->image_ref_url = $image_ref_url; + + $image->destroy(); + break; + } catch (Exception $e) { continue; }