diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index f7474e3..f365952 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -26,6 +26,7 @@ protected function schedule(Schedule $schedule): void AISerpGenArticleJob::dispatch()->onQueue('default')->onConnection('default'); })->everyMinute()->when(function () use ($mins_between_posts, $launched_date) { $minutes_since_launch = now()->diffInMinutes($launched_date); + return $minutes_since_launch % $mins_between_posts === 0; }); diff --git a/app/Http/Controllers/Front/FrontPostController.php b/app/Http/Controllers/Front/FrontPostController.php index a8d17e4..bff9b70 100644 --- a/app/Http/Controllers/Front/FrontPostController.php +++ b/app/Http/Controllers/Front/FrontPostController.php @@ -189,21 +189,26 @@ private function injectTableOfContents($html) } // Create the Table of Contents - $toc = '
    '; - $h2Elements->each(function (Crawler $node, $i) use (&$toc) { - $content = $node->text(); - $id = 'link-'.$i; // Creating a simple id based on the index - $node->getNode(0)->setAttribute('id', $id); // Set the id to the h2 tag - $toc .= "
  1. {$content}
  2. "; + $domDocument = $crawler->getNode(0)->ownerDocument; + $tocDiv = $domDocument->createElement('div'); + $tocDiv->setAttribute('class', 'p-3 rounded-3 bg-light mb-3'); + $ol = $domDocument->createElement('ol'); + $tocDiv->appendChild($ol); + + $h2Elements->each(function (Crawler $node, $i) use ($ol) { + $content = htmlspecialchars($node->text(), ENT_XML1 | ENT_COMPAT, 'UTF-8'); + $id = 'link-'.$i; + $node->getNode(0)->setAttribute('id', $id); + $li = $ol->appendChild(new \DOMElement('li')); + $li->setAttribute('class', 'py-1'); + $a = $li->appendChild(new \DOMElement('a', $content)); + $a->setAttribute('class', 'text-decoration-none hover-text-decoration-underline'); + $a->setAttribute('href', '#'.$id); }); - $toc .= '
'; // Insert TOC after h1 - $domDocument = $crawler->getNode(0)->ownerDocument; - $fragment = $domDocument->createDocumentFragment(); - $fragment->appendXML($toc); $h1Node = $crawler->filter('h1')->getNode(0); - $h1Node->parentNode->insertBefore($fragment, $h1Node->nextSibling); + $h1Node->parentNode->insertBefore($tocDiv, $h1Node->nextSibling); // Get the updated HTML $updatedHtml = $crawler->filter('body')->html(); diff --git a/app/Http/Controllers/Tests/TestController.php b/app/Http/Controllers/Tests/TestController.php index d3170b7..01ec29b 100644 --- a/app/Http/Controllers/Tests/TestController.php +++ b/app/Http/Controllers/Tests/TestController.php @@ -4,22 +4,20 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; - use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow; use LaravelGoogleIndexing; class TestController extends Controller { - public function indexing(Request $request) - { - $url = $request->input('url'); - - if (is_null($url)) + public function indexing(Request $request) { - abort(404); - } + $url = $request->input('url'); - IndexNow::submit($url); - LaravelGoogleIndexing::create()->update($url); - } + if (is_null($url)) { + abort(404); + } + + IndexNow::submit($url); + LaravelGoogleIndexing::create()->update($url); + } } diff --git a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php index 72ad9c2..10be8d5 100644 --- a/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php +++ b/app/Jobs/Tasks/GenerateArticleFeaturedImageTask.php @@ -17,12 +17,10 @@ public static function handle($post) { $keyword = $post->main_keyword; - if (is_array($post->keywords)) - { - if (count($post->keywords) > 0) - { - $keyword .= " " . implode(" ", $post->keywords); - } + if (is_array($post->keywords)) { + if (count($post->keywords) > 0) { + $keyword .= ' '.implode(' ', $post->keywords); + } } $title = $post->short_title; diff --git a/app/Jobs/Tasks/GetNewsSerpTask.php b/app/Jobs/Tasks/GetNewsSerpTask.php index 26415ae..6ea6215 100644 --- a/app/Jobs/Tasks/GetNewsSerpTask.php +++ b/app/Jobs/Tasks/GetNewsSerpTask.php @@ -10,7 +10,6 @@ use Exception; use Illuminate\Support\Facades\Log; - class GetNewsSerpTask { public static function handle(Category $category, $country_iso) @@ -76,6 +75,7 @@ public static function handle(Category $category, $country_iso) } catch (Exception $e) { Log::error(json_encode($serp_obj)); inspector()->reportException($e); + return null; } diff --git a/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php b/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php index 68d81ce..233e101 100644 --- a/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php +++ b/app/Jobs/Tasks/ParseNewsSerpDomainsTask.php @@ -6,7 +6,6 @@ use App\Models\Category; use App\Models\NewsSerpResult; use App\Models\SerpUrl; -use Carbon\Carbon; use Exception; class ParseNewsSerpDomainsTask diff --git a/app/Jobs/Tasks/PublishIndexPostTask.php b/app/Jobs/Tasks/PublishIndexPostTask.php index f66af4a..7228225 100644 --- a/app/Jobs/Tasks/PublishIndexPostTask.php +++ b/app/Jobs/Tasks/PublishIndexPostTask.php @@ -4,7 +4,6 @@ use App\Models\Post; use Exception; - use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow; use LaravelGoogleIndexing; diff --git a/routes/tests.php b/routes/tests.php index 101c368..30e3f54 100644 --- a/routes/tests.php +++ b/routes/tests.php @@ -29,17 +29,15 @@ */ Route::get('/now-minute', function (Request $request) { - dd(now()->minute); + dd(now()->minute); }); - Route::get('/indexing', [App\Http\Controllers\Tests\TestController::class, 'indexing']); Route::get('/serp-ai-gen', function (Request $request) { - AISerpGenArticleJob::dispatch()->onQueue('default')->onConnection('default'); + AISerpGenArticleJob::dispatch()->onQueue('default')->onConnection('default'); }); - Route::get('/exponential', function (Request $request) { $post_counts = get_exponential_posts_gen_by_day($request->input('day', 1));