. * */ namespace Friendica\Object\Api\Mastodon; use Friendica\BaseDataTransferObject; use Friendica\Core\Protocol; use Friendica\Database\DBA; use Friendica\DI; /** * Class Stats * * @see https://docs.joinmastodon.org/api/entities/#stats */ class Stats extends BaseDataTransferObject { /** @var int */ protected $user_count = 0; /** @var int */ protected $status_count = 0; /** @var int */ protected $domain_count = 0; /** * Creates a stats record * * @return Stats * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function get() { $stats = new Stats(); if (!empty(DI::config()->get('system', 'nodeinfo'))) { $stats->user_count = intval(DI::config()->get('nodeinfo', 'total_users')); $stats->status_count = DI::config()->get('nodeinfo', 'local_posts') + DI::config()->get('nodeinfo', 'local_comments'); $stats->domain_count = DBA::count('gserver', ["`network` in (?, ?) AND NOT `failed`", Protocol::DFRN, Protocol::ACTIVITYPUB]); } return $stats; } }