Update ApiV1Controller, fix network timeline

This commit is contained in:
Daniel Supernault 2024-02-11 14:26:45 -07:00
parent e5bbe9340a
commit 0faf59e3b7
No known key found for this signature in database
GPG key ID: 23740873EE6F76A1
2 changed files with 30 additions and 12 deletions

View file

@ -2536,7 +2536,8 @@ class ApiV1Controller extends Controller
AccountService::setLastActive($user->id); AccountService::setLastActive($user->id);
$domainBlocks = UserFilterService::domainBlocks($user->profile_id); $domainBlocks = UserFilterService::domainBlocks($user->profile_id);
if($remote && config('instance.timeline.network.cached')) { if($remote) {
if(config('instance.timeline.network.cached')) {
Cache::remember('api:v1:timelines:network:cache_check', 10368000, function() { Cache::remember('api:v1:timelines:network:cache_check', 10368000, function() {
if(NetworkTimelineService::count() == 0) { if(NetworkTimelineService::count() == 0) {
NetworkTimelineService::warmCache(true, config('instance.timeline.network.cache_dropoff')); NetworkTimelineService::warmCache(true, config('instance.timeline.network.cache_dropoff'));
@ -2550,6 +2551,23 @@ class ApiV1Controller extends Controller
} else { } else {
$feed = NetworkTimelineService::get(0, $limit + 5); $feed = NetworkTimelineService::get(0, $limit + 5);
} }
} else {
$feed = Status::select(
'id',
'profile_id',
'type',
'visibility',
'in_reply_to_id',
'reblog_of_id'
)
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
->where('visibility', 'public')
->whereLocal(false)
->orderByDesc('id')
->take(($limit * 2))
->pluck('id');
}
} }
if($local || !$remote && !$local) { if($local || !$remote && !$local) {

View file

@ -33,7 +33,7 @@ return [
], ],
'network' => [ 'network' => [
'cached' => env('PF_NETWORK_TIMELINE') ? env('INSTANCE_NETWORK_TIMELINE_CACHED', true) : false, 'cached' => env('PF_NETWORK_TIMELINE') ? env('INSTANCE_NETWORK_TIMELINE_CACHED', false) : false,
'cache_dropoff' => env('INSTANCE_NETWORK_TIMELINE_CACHE_DROPOFF', 100), 'cache_dropoff' => env('INSTANCE_NETWORK_TIMELINE_CACHE_DROPOFF', 100),
'max_hours_old' => env('INSTANCE_NETWORK_TIMELINE_CACHE_MAX_HOUR_INGEST', 6) 'max_hours_old' => env('INSTANCE_NETWORK_TIMELINE_CACHE_MAX_HOUR_INGEST', 6)
] ]