X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FFeed.php;h=f4a671c055b1a2120e11e7da1578d624a282e5f4;hb=c18bda9397d0ea9d68ea7a81e6292459317fdbf5;hp=485d070e30dd37dcc68e9e37db79b0c489169703;hpb=2e420a15f8f3e469f9ea3fd298b1283d9806698e;p=friendica.git diff --git a/src/Module/Feed.php b/src/Module/Feed.php index 485d070e30..f4a671c055 100644 --- a/src/Module/Feed.php +++ b/src/Module/Feed.php @@ -1,60 +1,74 @@ - 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 - * - * @brief Provides public Atom feeds - * - * @author Hypolite Petovan - */ -class Feed extends BaseModule -{ - public static function content() - { - $a = self::getApp(); - - $last_update = x($_GET, 'last_update') ? $_GET['last_update'] : ''; - $nocache = x($_GET, 'nocache') && local_user(); - - if ($a->argc < 2) { - System::httpExit(400); - } - - $type = null; - if ($a->argc > 2) { - $type = $a->argv[2]; - } - - switch ($type) { - case 'posts': - case 'comments': - case 'activity': - break; - case 'replies': - $type = 'comments'; - break; - default: - $type = 'posts'; - } - - $nickname = $a->argv[1]; - header("Content-type: application/atom+xml"); - echo OStatus::feed($nickname, $last_update, 10, $type, $nocache); - killme(); - } -} +. + * + */ + +namespace Friendica\Module; + +use Friendica\BaseModule; +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 + { + $a = DI::app(); + + $last_update = $_GET['last_update'] ?? ''; + $nocache = !empty($_GET['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'; + } + + header("Content-type: application/atom+xml; charset=utf-8"); + echo ProtocolFeed::atom($this->parameters['nickname'], $last_update, 10, $type, $nocache, true); + exit(); + } +}