From 2f97d61a09a3200c32b527b89096c35e8f45633e Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 10 Mar 2022 21:50:00 +0000 Subject: [PATCH] Estimate active server users when not provided by the system --- src/Model/GServer.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Model/GServer.php b/src/Model/GServer.php index c4138cc2d0..b739c74208 100644 --- a/src/Model/GServer.php +++ b/src/Model/GServer.php @@ -546,6 +546,22 @@ class GServer Logger::info('Update registered users', ['id' => $id, 'url' => $serverdata['nurl'], 'registered-users' => $max_users]); DBA::update('gserver', ['registered-users' => $max_users], ['id' => $id]); } + + if (empty($serverdata['active-month-users'])) { + $contacts = DBA::count('contact', ["`uid` = ? AND `gsid` = ? AND NOT `failed` AND `last-item` > ?", 0, $id, DateTimeFormat::utc('now - 30 days')]); + if ($contacts > 0) { + Logger::info('Update monthly users', ['id' => $id, 'url' => $serverdata['nurl'], 'monthly-users' => $contacts]); + DBA::update('gserver', ['active-month-users' => $contacts], ['id' => $id]); + } + } + + if (empty($serverdata['active-halfyear-users'])) { + $contacts = DBA::count('contact', ["`uid` = ? AND `gsid` = ? AND NOT `failed` AND `last-item` > ?", 0, $id, DateTimeFormat::utc('now - 180 days')]); + if ($contacts > 0) { + Logger::info('Update halfyear users', ['id' => $id, 'url' => $serverdata['nurl'], 'halfyear-users' => $contacts]); + DBA::update('gserver', ['active-halfyear-users' => $contacts], ['id' => $id]); + } + } } if (!empty($serverdata['network']) && in_array($serverdata['network'], [Protocol::DFRN, Protocol::DIASPORA])) {