-<?php\r
-\r
-namespace Friendica\Module;\r
-\r
-use Friendica\BaseModule;\r
-use Friendica\Protocol\OStatus;\r
-\r
-/**\r
- * Provides public Atom feeds\r
- *\r
- * Currently supported:\r
- * - /feed/[nickname]/ => posts\r
- * - /feed/[nickname]/posts => posts\r
- * - /feed/[nickname]/comments => comments\r
- * - /feed/[nickname]/replies => comments\r
- * - /feed/[nickname]/activity => activity\r
- *\r
- * The nocache GET parameter is provided mainly for debug purposes, requires auth\r
- *\r
- * @brief Provides public Atom feeds\r
- *\r
- * @author Hypolite Petovan <mrpetovan@gmail.com>\r
- */\r
-class Feed extends BaseModule\r
-{\r
- public static function content()\r
- {\r
- $a = self::getApp();\r
-\r
- $last_update = x($_GET, 'last_update') ? $_GET['last_update'] : '';\r
- $nocache = x($_GET, 'nocache') && local_user();\r
-\r
- if ($a->argc < 2) {\r
- http_status_exit(400);\r
- }\r
-\r
- $type = null;\r
- if ($a->argc > 2) {\r
- $type = $a->argv[2];\r
- }\r
-\r
- switch ($type) {\r
- case 'posts':\r
- case 'comments':\r
- case 'activity':\r
- break;\r
- case 'replies':\r
- $type = 'comments';\r
- break;\r
- default:\r
- $type = 'posts';\r
- }\r
-\r
- $nickname = $a->argv[1];\r
- header("Content-type: application/atom+xml");\r
- echo OStatus::feed($nickname, $last_update, 10, $type, $nocache);\r
- killme();\r
- }\r
-}\r
+<?php
+
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Core\System;
+use Friendica\Protocol\OStatus;
+
+/**
+ * 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
+ *
+ * @brief Provides public Atom feeds
+ *
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
+ */
+class Feed extends BaseModule
+{
+ public static function content()
+ {
+ $a = self::getApp();
+
+ $last_update = defaults($_GET, 'last_update', '');
+ $nocache = !empty($_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':
+ // Correct type names, no change needed
+ break;
+ case 'replies':
+ $type = 'comments';
+ break;
+ default:
+ $type = 'posts';
+ }
+
+ $nickname = $a->argv[1];
+ header("Content-type: application/atom+xml; charset=utf-8");
+ echo OStatus::feed($nickname, $last_update, 10, $type, $nocache, true);
+ exit();
+ }
+}