Merge pull request #4154 from pixelfed/staging

Staging
This commit is contained in:
daniel 2023-02-05 22:51:18 -07:00 committed by GitHub
commit 88ddf55f6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 4 deletions

View file

@ -1972,6 +1972,11 @@ class ApiV1Controller extends Controller
return $following->push($pid)->toArray(); 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)) { if(config('instance.timeline.home.cached') && (!$min && !$max)) {
$ttl = config('instance.timeline.home.cache_ttl'); $ttl = config('instance.timeline.home.cache_ttl');
$res = Cache::remember( $res = Cache::remember(
@ -1980,7 +1985,8 @@ class ApiV1Controller extends Controller
function() use( function() use(
$following, $following,
$limit, $limit,
$pid $pid,
$includeReplies
) { ) {
return Status::select( return Status::select(
'id', 'id',
@ -2002,6 +2008,11 @@ class ApiV1Controller extends Controller
'created_at', 'created_at',
'updated_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('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
->whereIn('profile_id', $following) ->whereIn('profile_id', $following)
->whereIn('visibility',['public', 'unlisted', 'private']) ->whereIn('visibility',['public', 'unlisted', 'private'])
@ -2053,6 +2064,11 @@ class ApiV1Controller extends Controller
) )
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album']) ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
->where('id', $dir, $id) ->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('profile_id', $following)
->whereIn('visibility',['public', 'unlisted', 'private']) ->whereIn('visibility',['public', 'unlisted', 'private'])
->latest() ->latest()

View file

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

View file

@ -38,7 +38,8 @@ class Media extends Model
public function url() public function url()
{ {
if($this->cdn_url) { if($this->cdn_url) {
return Storage::disk(config('filesystems.cloud'))->url($this->media_path); // return Storage::disk(config('filesystems.cloud'))->url($this->media_path);
return $this->cdn_url;
} }
if($this->remote_media && $this->remote_url) { if($this->remote_media && $this->remote_url) {