. * */ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\System; use Friendica\DI; use Friendica\Protocol\Feed as ProtocolFeed; /** * Provides public Atom feeds * * Currently supported: * - /feed/[nickname]/ => posts * - /feed/[nickname]/posts => posts * - /feed/[nickname]/comments => comments * - /feed/[nickname]/replies => comments * - /feed/[nickname]/activity => activity * * The nocache GET parameter is provided mainly for debug purposes, requires auth * * @author Hypolite Petovan */ class Feed extends BaseModule { protected function content(array $request = []): string { $last_update = $request['last_update'] ?? ''; $nocache = !empty($request['nocache']) && local_user(); $type = null; // @TODO: Replace with parameter from router if (DI::args()->getArgc() > 2) { $type = DI::args()->getArgv()[2]; } switch ($type) { case 'posts': case 'comments': case 'activity': // Correct type names, no change needed break; case 'replies': $type = 'comments'; break; default: $type = 'posts'; } System::httpExit(ProtocolFeed::atom($this->parameters['nickname'], $last_update, 10, $type, $nocache, true), Response::TYPE_ATOM); } }