From 4e79c772826f0e2db4c01259a1d27c5d79c7b3dc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 25 Mar 2023 06:19:04 -0600 Subject: [PATCH] Update ApiV1Controller, improve timeline account hydration --- app/Http/Controllers/Api/ApiV1Controller.php | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index d4c994bc5..0877fc9db 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -2130,6 +2130,10 @@ class ApiV1Controller extends Controller ->get() ->map(function($s) use($pid, $napi) { try { + $account = $napi ? AccountService::get($s['profile_id'], true) : AccountService::getMastodon($s['profile_id'], true); + if(!$account) { + return false; + } $status = $napi ? StatusService::get($s['id'], false) : StatusService::getMastodon($s['id'], false); if(!$status || !isset($status['account']) || !isset($status['account']['id'])) { return false; @@ -2138,6 +2142,8 @@ class ApiV1Controller extends Controller return false; } + $status['account'] = $account; + if($pid) { $status['favourited'] = (bool) LikeService::liked($pid, $s['id']); $status['reblogged'] = (bool) ReblogService::get($pid, $status['id']); @@ -2167,7 +2173,7 @@ class ApiV1Controller extends Controller ->get() ->map(function($s) use($pid, $napi) { try { - $account = AccountService::get($s['profile_id'], true); + $account = $napi ? AccountService::get($s['profile_id'], true) : AccountService::getMastodon($s['profile_id'], true); if(!$account) { return false; } @@ -2179,6 +2185,8 @@ class ApiV1Controller extends Controller return false; } + $status['account'] = $account; + if($pid) { $status['favourited'] = (bool) LikeService::liked($pid, $s['id']); $status['reblogged'] = (bool) ReblogService::get($pid, $status['id']); @@ -2289,11 +2297,21 @@ class ApiV1Controller extends Controller } }) ->map(function($k) use($user, $napi) { - $status = $napi ? StatusService::get($k) : StatusService::getMastodon($k); - if(!$status || !isset($status['account']) || !isset($status['account']['id'])) { + try { + $status = $napi ? StatusService::get($k) : StatusService::getMastodon($k); + } catch(\Exception $e) { + if(!$status || !isset($status['account']) || !isset($status['account']['id'])) { + return false; + } + } + + $account = $napi ? AccountService::get($status['account']['id'], true) : AccountService::getMastodon($status['account']['id'], true); + if(!$account) { return false; } + $status['account'] = $account; + if($user) { $status['favourited'] = (bool) LikeService::liked($user->profile_id, $k); $status['reblogged'] = (bool) ReblogService::get($user->profile_id, $status['id']);