Update ApiV1Controller

This commit is contained in:
Daniel Supernault 2023-02-05 22:50:12 -07:00
parent c6fe213f93
commit 2881b6626a
No known key found for this signature in database
GPG Key ID: 0DEF1C662C9033F7
2 changed files with 19 additions and 3 deletions

View File

@ -1972,6 +1972,11 @@ class ApiV1Controller extends Controller
return $following->push($pid)->toArray();
});
$includeReplies = false;
if(config('exp.top')) {
$includeReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
}
if(config('instance.timeline.home.cached') && (!$min && !$max)) {
$ttl = config('instance.timeline.home.cache_ttl');
$res = Cache::remember(
@ -1980,7 +1985,8 @@ class ApiV1Controller extends Controller
function() use(
$following,
$limit,
$pid
$pid,
$includeReplies
) {
return Status::select(
'id',
@ -2002,6 +2008,11 @@ class ApiV1Controller extends Controller
'created_at',
'updated_at'
)
->when($includeReplies, function($q, $includeReplies) {
return $q;
}, function($q, $includeReplies) {
return $q->whereNull('in_reply_to_id');
})
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
->whereIn('profile_id', $following)
->whereIn('visibility',['public', 'unlisted', 'private'])
@ -2053,6 +2064,11 @@ class ApiV1Controller extends Controller
)
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
->where('id', $dir, $id)
->when($includeReplies, function($q, $includeReplies) {
return $q;
}, function($q, $includeReplies) {
return $q->whereNull('in_reply_to_id');
})
->whereIn('profile_id', $following)
->whereIn('visibility',['public', 'unlisted', 'private'])
->latest()

View File

@ -472,10 +472,10 @@ class PublicApiController extends Controller
// $types = ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album', 'text'];
$textOnlyReplies = false;
$textOnlyReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
if(config('exp.top')) {
$textOnlyPosts = (bool) Redis::zscore('pf:tl:top', $pid);
$textOnlyReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
if($textOnlyPosts) {
array_push($types, 'text');
@ -587,7 +587,7 @@ class PublicApiController extends Controller
'updated_at'
)
->whereIn('type', $types)
->when($textOnlyReplies != true, function($q, $textOnlyReplies) {
->when(!$textOnlyReplies, function($q, $textOnlyReplies) {
return $q->whereNull('in_reply_to_id');
})
->where('id', $dir, $id)