]> git.mxchange.org Git - friendica.git/blob - src/Object/Api/Mastodon/Stats.php
Merge pull request #8222 from annando/ap-gnusocial
[friendica.git] / src / Object / Api / Mastodon / Stats.php
1 <?php
2
3 namespace Friendica\Object\Api\Mastodon;
4
5 use Friendica\BaseEntity;
6 use Friendica\Core\Protocol;
7 use Friendica\Database\DBA;
8 use Friendica\DI;
9
10 /**
11  * Class Stats
12  *
13  * @see https://docs.joinmastodon.org/api/entities/#stats
14  */
15 class Stats extends BaseEntity
16 {
17         /** @var int */
18         protected $user_count = 0;
19         /** @var int */
20         protected $status_count = 0;
21         /** @var int */
22         protected $domain_count = 0;
23
24         /**
25          * Creates a stats record
26          *
27          * @return Stats
28          * @throws \Friendica\Network\HTTPException\InternalServerErrorException
29          */
30         public static function get() {
31                 $stats = new Stats();
32                 if (!empty(DI::config()->get('system', 'nodeinfo'))) {
33                         $stats->user_count = intval(DI::config()->get('nodeinfo', 'total_users'));
34                         $stats->status_count = DI::config()->get('nodeinfo', 'local_posts') + DI::config()->get('nodeinfo', 'local_comments');
35                         $stats->domain_count = DBA::count('gserver', ["`network` in (?, ?) AND `last_contact` >= `last_failure`", Protocol::DFRN, Protocol::ACTIVITYPUB]);
36                 }
37                 return $stats;
38         }
39 }