From 27035c1a9b5a32bea733a6af5dddb3e89d703ac5 Mon Sep 17 00:00:00 2001 From: Charles Teh Date: Tue, 21 Nov 2023 20:02:28 +0800 Subject: [PATCH] Update (fixes) --- app/Http/Controllers/Front/FrontListController.php | 4 ++-- app/Jobs/Tasks/ParseRssPostMetadataTask.php | 4 +--- app/Models/RssPost.php | 2 ++ .../migrations/2023_11_21_073326_create_rss_posts_table.php | 1 + routes/web.php | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Front/FrontListController.php b/app/Http/Controllers/Front/FrontListController.php index 8dec6a6..813da85 100644 --- a/app/Http/Controllers/Front/FrontListController.php +++ b/app/Http/Controllers/Front/FrontListController.php @@ -28,7 +28,7 @@ public function searchResults(Request $request, $query) $breadcrumbs = collect([ ['name' => 'Home', 'url' => route('front.home')], - ['name' => 'News Bites', 'url' => route('front.search.results',['query' => $query])], + ['name' => 'News Bites', 'url' => route('front.all')], ['name' => $query, 'url' => null], ]); @@ -42,7 +42,7 @@ public function searchResults(Request $request, $query) $rss_posts = RssPost::with('category') ->where('status', 'published') - ->whereRaw("to_tsvector('english', title || ' ' || bites || ' ' || body) @@ plainto_tsquery('english', ?)", [trim(preg_replace('/\s+/', ' ', $query))]) + ->whereRaw("to_tsvector('english', title || ' ' || bites || ' ' || keyword_list) @@ plainto_tsquery('english', ?)", [trim(preg_replace('/\s+/', ' ', $query))]) ->where('published_at', '<=', now()) ->orderBy('published_at', 'desc') ->cursorPaginate(60); diff --git a/app/Jobs/Tasks/ParseRssPostMetadataTask.php b/app/Jobs/Tasks/ParseRssPostMetadataTask.php index d599213..938ca47 100644 --- a/app/Jobs/Tasks/ParseRssPostMetadataTask.php +++ b/app/Jobs/Tasks/ParseRssPostMetadataTask.php @@ -106,9 +106,7 @@ public static function handle(int $rss_post_id) $rss_post->category_id = $category->id; } - $post_body = $rss_post->body; - $post_body .= implode($words_to_add_in_body); - $rss_post->body = $post_body; + $rss_post->keyword_list = implode(",", $words_to_add_in_body); $rss_post->status = 'published'; $rss_post->save(); diff --git a/app/Models/RssPost.php b/app/Models/RssPost.php index 01f82cf..55d8a03 100644 --- a/app/Models/RssPost.php +++ b/app/Models/RssPost.php @@ -24,6 +24,7 @@ * @property string|null $entities * @property string|null $metadata * @property string|null $bites + * @property string|null $keyword_list * @property string|null $impact * @property string $impact_level * @property Carbon $published_at @@ -56,6 +57,7 @@ class RssPost extends Model 'entities', 'metadata', 'bites', + 'keyword_list', 'impact', 'impact_level', 'published_at', diff --git a/database/migrations/2023_11_21_073326_create_rss_posts_table.php b/database/migrations/2023_11_21_073326_create_rss_posts_table.php index 6e76274..f8b8ebb 100644 --- a/database/migrations/2023_11_21_073326_create_rss_posts_table.php +++ b/database/migrations/2023_11_21_073326_create_rss_posts_table.php @@ -25,6 +25,7 @@ public function up(): void $table->jsonb('keywords')->nullable(); $table->jsonb('entities')->nullable(); $table->json('metadata')->nullable(); + $table->mediumText('keyword_list')->nullable(); $table->mediumText('bites')->nullable(); $table->mediumText('impact')->nullable(); $table->enum('impact_level', ['low', 'medium', 'high'])->default('low'); diff --git a/routes/web.php b/routes/web.php index d4711b2..efc7d37 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,11 +23,11 @@ Route::get('/disclaimer', [App\Http\Controllers\Front\FrontHomeController::class, 'disclaimer'])->name('front.disclaimer'); -Route::get('/latest', [App\Http\Controllers\Front\FrontListController::class, 'index'])->name('front.all'); +Route::get('/bites', [App\Http\Controllers\Front\FrontListController::class, 'index'])->name('front.all'); Route::post('/search', [App\Http\Controllers\Front\FrontListController::class, 'search'])->name('front.search'); -Route::get('/search/{query}', [App\Http\Controllers\Front\FrontListController::class, 'searchResults'])->name('front.search.results'); +Route::get('/bites/{query}', [App\Http\Controllers\Front\FrontListController::class, 'searchResults'])->name('front.search.results'); Route::get('/{category_slug}/{slug}', [App\Http\Controllers\Front\FrontPostController::class, 'index'])->name('front.post');