From 416f06b344247f6ffd0759fac2b99c1f3f0104bb Mon Sep 17 00:00:00 2001 From: Charles Teh Date: Thu, 23 Nov 2023 03:38:45 +0800 Subject: [PATCH] Update (kernel): Auto submit index --- app/Console/Kernel.php | 13 +++++ .../Controllers/Front/FrontHomeController.php | 6 ++- .../Controllers/Front/FrontListController.php | 2 +- app/Jobs/PublishRssSearchResultJob.php | 52 +++++++++++++++++++ app/Models/HybridTopRssPostKeywords.php | 42 +++++++++++++++ .../views/front/partials/news_bites.blade.php | 8 +-- resources/views/front/welcome.blade.php | 25 +++++++-- .../vendor/googletagmanager/head.blade.php | 2 +- 8 files changed, 139 insertions(+), 11 deletions(-) create mode 100644 app/Jobs/PublishRssSearchResultJob.php create mode 100644 app/Models/HybridTopRssPostKeywords.php diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index aa4bc97..2548409 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -5,6 +5,8 @@ use App\Jobs\BrowseDFSAndWriteWithAIJob; use App\Jobs\BrowseRSSPostJob; use App\Jobs\PublishIndexPostJob; +use App\Jobs\PublishRssSearchResultJob; +use App\Models\HybridTopRssPostKeywords; use App\Models\Post; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; @@ -22,6 +24,17 @@ protected function schedule(Schedule $schedule): void BrowseRSSPostJob::dispatch(1)->onQueue('default')->onConnection('default'); })->hourly()->name('browse-rss-post-job-hourly'); + $schedule->call(function () { + + $top_rss_keywords = HybridTopRssPostKeywords::get(1, 20); + + foreach ($top_rss_keywords as $rss_keyword) + { + PublishRssSearchResultJob::dispatch($rss_keyword->value_lowercased)->onQueue('default')->onConnection('default'); + } + + })->twiceDaily(0, 12)->name('top-rss-keywords-indexing-daily'); + // $schedule->call(function () { // BrowseDFSAndWriteWithAIJob::dispatch()->onQueue('default')->onConnection('default'); // })->everySixHours()->name('write-a-job-6hrs'); diff --git a/app/Http/Controllers/Front/FrontHomeController.php b/app/Http/Controllers/Front/FrontHomeController.php index 733f885..6b65380 100644 --- a/app/Http/Controllers/Front/FrontHomeController.php +++ b/app/Http/Controllers/Front/FrontHomeController.php @@ -5,6 +5,8 @@ use App\Http\Controllers\Controller; use App\Models\Post; use App\Models\RssPost; +use App\Models\HybridTopRssPostKeywords; + use Artesaos\SEOTools\Facades\SEOMeta; use Artesaos\SEOTools\Facades\SEOTools; use GrahamCampbell\Markdown\Facades\Markdown; @@ -25,9 +27,11 @@ public function home(Request $request) // $query->whereNotIn('id', $featured_posts->pluck('id')->toArray()); // })->where('status', 'publish')->where('published_at', '<=', now())->orderBy('published_at', 'desc')->limit(10)->get(); + $top_rss_keywords = HybridTopRssPostKeywords::get(1, 10); + $rss_posts = RssPost::with('entities_keywords')->where('status', 'published')->orderBy('published_at', 'desc')->paginate(15); - return response(view('front.welcome', compact('rss_posts')), 200); + return response(view('front.welcome', compact('rss_posts','top_rss_keywords')), 200); } public function terms(Request $request) diff --git a/app/Http/Controllers/Front/FrontListController.php b/app/Http/Controllers/Front/FrontListController.php index d78a916..421ac4a 100644 --- a/app/Http/Controllers/Front/FrontListController.php +++ b/app/Http/Controllers/Front/FrontListController.php @@ -29,7 +29,7 @@ public function searchResults(Request $request, $query) $breadcrumbs = collect([ ['name' => 'Home', 'url' => route('front.home')], ['name' => 'News Bites', 'url' => route('front.all')], - ['name' => $query, 'url' => null], + ['name' => '#'.$query, 'url' => null], ]); $title = 'Latest News about '.ucwords($query).' in FutureWalker'; diff --git a/app/Jobs/PublishRssSearchResultJob.php b/app/Jobs/PublishRssSearchResultJob.php new file mode 100644 index 0000000..64526a2 --- /dev/null +++ b/app/Jobs/PublishRssSearchResultJob.php @@ -0,0 +1,52 @@ +query = $query; + } + + /** + * Execute the job. + */ + public function handle(): void + { + if ((app()->environment() == 'production') && (config('platform.global.indexing'))) { + $url = get_route_search_result(strtolower($this->query)); + + try { + IndexNow::submit($url); + } catch (Exception) { + } + + try { + LaravelGoogleIndexing::create()->update($url); + } catch (Exception) { + } + + } + } +} \ No newline at end of file diff --git a/app/Models/HybridTopRssPostKeywords.php b/app/Models/HybridTopRssPostKeywords.php new file mode 100644 index 0000000..1475836 --- /dev/null +++ b/app/Models/HybridTopRssPostKeywords.php @@ -0,0 +1,42 @@ +select('value', 'value_lowercased', DB::raw('COUNT(value_lowercased) as value_count')) + ->where('created_at', '>=', now()->subDays($days)) + ->groupBy('value', 'value_lowercased') + ->orderBy(DB::raw('COUNT(value_lowercased)'), 'desc') + ->limit($limit) + ->get(); + + return self::hydrate($queryResults->toArray()); + + }); + } +} diff --git a/resources/views/front/partials/news_bites.blade.php b/resources/views/front/partials/news_bites.blade.php index 32d7b4e..e608367 100644 --- a/resources/views/front/partials/news_bites.blade.php +++ b/resources/views/front/partials/news_bites.blade.php @@ -2,9 +2,9 @@ @foreach ($rss_posts as $key => $post)
-

+

-
+
The Bite:
{{ $post->bites }}
diff --git a/resources/views/front/welcome.blade.php b/resources/views/front/welcome.blade.php index cd3a9e5..67d5dd2 100644 --- a/resources/views/front/welcome.blade.php +++ b/resources/views/front/welcome.blade.php @@ -3,7 +3,7 @@
-
+
Your Future Depends on Today's News
@@ -11,10 +11,24 @@ optional—it's critical for your future success. Stay updated with daily news 🍪 bites from FutureWalker. + Start reading now
+
+
+ +

Monitoring top tags for the past 24 hours

+ + @foreach ($top_rss_keywords as $rss_keyword) + + #{{ $rss_keyword->value }} + + @endforeach + +
+
@@ -53,7 +67,7 @@ class="text-secondary">{{ $post->published_at->diffForHumans() }} @endif --}} -
+
@@ -61,7 +75,7 @@ class="text-secondary">{{ $post->published_at->diffForHumans() }} @if ($rss_posts->count() > 0)
-

+

🍪 Tech Bites

UPDATED HOURLY
-
1 minute news bites worth every second
+
+ Tap on to read the 1 minute news bite worth every second +
+
diff --git a/resources/views/vendor/googletagmanager/head.blade.php b/resources/views/vendor/googletagmanager/head.blade.php index 24b3202..0c05cf1 100644 --- a/resources/views/vendor/googletagmanager/head.blade.php +++ b/resources/views/vendor/googletagmanager/head.blade.php @@ -25,4 +25,4 @@ f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', '{{ $id }}'); -@endif +@endif \ No newline at end of file