]> git.mxchange.org Git - friendica.git/commitdiff
Estimate active server users when not provided by the system
authorMichael <heluecht@pirati.ca>
Thu, 10 Mar 2022 21:50:00 +0000 (21:50 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 10 Mar 2022 21:50:00 +0000 (21:50 +0000)
src/Model/GServer.php

index c4138cc2d01aba5f6eeb8670acf6d8018baf65f6..b739c742089be3082bcb039f3b93e8ab78f35c66 100644 (file)
@@ -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])) {