. * */ namespace Friendica\Module\Api\Mastodon; use Friendica\Core\System; use Friendica\DI; use Friendica\Model\User; use Friendica\Module\BaseApi; /** * @see https://docs.joinmastodon.org/methods/accounts/preferences/ */ class Preferences extends BaseApi { /** * @param array $parameters * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function rawContent(array $parameters = []) { self::login(); $uid = self::getCurrentUserID(); $user = User::getById($uid, ['language', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']); if (!empty($user['allow_cid']) || !empty($user['allow_gid']) || !empty($user['deny_cid']) || !empty($user['deny_gid'])) { $visibility = 'private'; } elseif (DI::pConfig()->get($uid, 'system', 'unlisted')) { $visibility = 'unlisted'; } else { $visibility = 'public'; } $sensitive = false; $language = $user['language']; $media = DI::pConfig()->get($uid, 'nsfw', 'disable') ? 'show_all' : 'default'; $spoilers = DI::pConfig()->get($uid, 'system', 'disable_cw'); $preferences = new \Friendica\Object\Api\Mastodon\Preferences($visibility, $sensitive, $language, $media, $spoilers); System::jsonExit($preferences); } }