config = $config; $this->keyValue = $keyValue; $this->addonHelper = $addonHelper; if (!$this->config->get("system", "nodeinfo")) { throw new NotFoundException(); } } protected function rawContent(array $request = []) { $registration_open = Register::getPolicy() !== Register::CLOSED && !$this->config->get('config', 'invitation_only'); /// @todo mark the "service" addons and load them dynamically here $services = [ 'appnet' => $this->addonHelper->isAddonEnabled('appnet'), 'bluesky' => $this->addonHelper->isAddonEnabled('bluesky'), 'dreamwidth' => $this->addonHelper->isAddonEnabled('dreamwidth'), 'gnusocial' => $this->addonHelper->isAddonEnabled('gnusocial'), 'libertree' => $this->addonHelper->isAddonEnabled('libertree'), 'livejournal' => $this->addonHelper->isAddonEnabled('livejournal'), 'pumpio' => $this->addonHelper->isAddonEnabled('pumpio'), 'twitter' => $this->addonHelper->isAddonEnabled('twitter'), 'tumblr' => $this->addonHelper->isAddonEnabled('tumblr'), 'wordpress' => $this->addonHelper->isAddonEnabled('wordpress'), ]; $statistics = array_merge([ 'name' => $this->config->get('config', 'sitename'), 'network' => App::PLATFORM, 'version' => App::VERSION . '-' . DB_UPDATE_VERSION, 'registrations_open' => $registration_open, 'total_users' => $this->keyValue->get('nodeinfo_total_users'), 'active_users_halfyear' => $this->keyValue->get('nodeinfo_active_users_halfyear'), 'active_users_monthly' => $this->keyValue->get('nodeinfo_active_users_monthly'), 'local_posts' => $this->keyValue->get('nodeinfo_local_posts'), 'services' => $services, ], $services); $this->logger->debug("statistics.", ['statistics' => $statistics]); $this->jsonExit($statistics); } }