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)