Fix server post stats

This fixes the homepage, showing how many posts have been made by the
server.
The prior logic includes posts from remote servers by an indirect check
for if it's a local post.
This commit changes the query behavior to directly check for the local
flag in the statuses column, and additionally excludes shares
pull/5902/head
Anil Kulkarni 2 months ago
parent e727431fef
commit 8db8258cab
No known key found for this signature in database
GPG Key ID: 4806669421E998D3

@ -53,9 +53,8 @@ class InstanceUpdateTotalLocalPosts extends Command
protected function initCache()
{
$count = DB::table('statuses')->whereNull(['url', 'deleted_at'])->count();
$res = [
'count' => $count,
'count' => $this->getTotalLocalPosts(),
];
Storage::put('total_local_posts.json', json_encode($res, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
ConfigCacheService::put('instance.stats.total_local_posts', $res['count']);
@ -68,12 +67,20 @@ class InstanceUpdateTotalLocalPosts extends Command
protected function updateAndCache()
{
$count = DB::table('statuses')->whereNull(['url', 'deleted_at'])->count();
$res = [
'count' => $count,
'count' => $this->getTotalLocalPosts(),
];
Storage::put('total_local_posts.json', json_encode($res, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
ConfigCacheService::put('instance.stats.total_local_posts', $res['count']);
}
protected function getTotalLocalPosts()
{
return DB::table('statuses')
->whereNull('deleted_at')
->where('local', true)
->whereNot('type', 'share') # Ignore boosts for the post count
->count();
}
}

Loading…
Cancel
Save