]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Feed.php
Merge pull request #12010 from annando/notice
[friendica.git] / src / Module / Feed.php
index 58140d835b33e74a558b673f2dd6e9e56caef11b..4c942cd762c1608a0a6a73c62d86e49ca0eaa763 100644 (file)
@@ -1,10 +1,31 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Module;
 
 use Friendica\BaseModule;
+use Friendica\Core\System;
 use Friendica\DI;
-use Friendica\Protocol\OStatus;
+use Friendica\Protocol\Feed as ProtocolFeed;
+use Friendica\Network\HTTPException;
 
 /**
  * Provides public Atom feeds
@@ -18,28 +39,19 @@ use Friendica\Protocol\OStatus;
  *
  * 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(array $parameters = [])
+       protected function rawContent(array $request = [])
        {
-               $a = DI::app();
-
-               $last_update = $_GET['last_update'] ?? '';
-               $nocache     = !empty($_GET['nocache']) && local_user();
-
-               // @TODO: Replace with parameter from router
-               if ($a->argc < 2) {
-                       throw new \Friendica\Network\HTTPException\BadRequestException();
-               }
+               $last_update = $this->getRequestValue($request, 'last_update', '');
+               $nocache     = !empty($request['nocache']) && local_user();
 
                $type = null;
                // @TODO: Replace with parameter from router
-               if ($a->argc > 2) {
-                       $type = $a->argv[2];
+               if (DI::args()->getArgc() > 2) {
+                       $type = DI::args()->getArgv()[2];
                }
 
                switch ($type) {
@@ -55,10 +67,11 @@ class Feed extends BaseModule
                                $type = 'posts';
                }
 
-               // @TODO: Replace with parameter from router
-               $nickname = $a->argv[1];
-               header("Content-type: application/atom+xml; charset=utf-8");
-               echo OStatus::feed($nickname, $last_update, 10, $type, $nocache, true);
-               exit();
+               $feed = ProtocolFeed::atom($this->parameters['nickname'], $last_update, 10, $type, $nocache, true);
+               if (empty($feed)) {
+                       throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
+               }
+
+               System::httpExit($feed, Response::TYPE_ATOM);
        }
 }