From 94503a1cf9cab4b1ec032ae743271657b710b5e8 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Mar 2024 03:11:36 -0700 Subject: [PATCH] Update ApiV1Controller, use admin filter service --- app/Http/Controllers/Api/ApiV1Controller.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index c9967c192..8253e1373 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -37,6 +37,7 @@ use App\Models\Conversation; use App\Notification; use App\Profile; use App\Services\AccountService; +use App\Services\AdminShadowFilterService; use App\Services\BookmarkService; use App\Services\BouncerService; use App\Services\CollectionService; @@ -2648,7 +2649,7 @@ class ApiV1Controller extends Controller $domainBlocks = UserFilterService::domainBlocks($user->profile_id); $hideNsfw = config('instance.hide_nsfw_on_public_feeds'); $amin = SnowflakeService::byDate(now()->subDays(config('federation.network_timeline_days_falloff'))); - + $asf = AdminShadowFilterService::getHideFromPublicFeedsList(); if ($local && $remote) { $feed = Status::select( 'id', @@ -2824,6 +2825,21 @@ class ApiV1Controller extends Controller return ! in_array($domain, $domainBlocks); }) + ->filter(function ($s) use ($asf, $user) { + if (! $asf || count($asf) === 0) { + return true; + } + + if (in_array($s['account']['id'], $asf)) { + if ($user->profile_id == $s['account']['id']) { + return true; + } + + return false; + } + + return true; + }) ->take($limit) ->values();