]> git.mxchange.org Git - friendica.git/blob - src/Module/Feed.php
More code standard
[friendica.git] / src / Module / Feed.php
1 <?php
2
3 namespace Friendica\Module;
4
5 use Friendica\BaseModule;
6 use Friendica\Core\System;
7 use Friendica\Protocol\OStatus;
8
9 /**
10  * Provides public Atom feeds
11  *
12  * Currently supported:
13  * - /feed/[nickname]/ => posts
14  * - /feed/[nickname]/posts => posts
15  * - /feed/[nickname]/comments => comments
16  * - /feed/[nickname]/replies => comments
17  * - /feed/[nickname]/activity => activity
18  *
19  * The nocache GET parameter is provided mainly for debug purposes, requires auth
20  *
21  * @brief Provides public Atom feeds
22  *
23  * @author Hypolite Petovan <hypolite@mrpetovan.com>
24  */
25 class Feed extends BaseModule
26 {
27         public static function content()
28         {
29                 $a = self::getApp();
30
31                 $last_update = defaults($_GET, 'last_update', '');
32                 $nocache     = !empty($_GET['nocache']) && local_user();
33
34                 if ($a->argc < 2) {
35                         System::httpExit(400);
36                 }
37
38                 $type = null;
39                 if ($a->argc > 2) {
40                         $type = $a->argv[2];
41                 }
42
43                 switch ($type) {
44                         case 'posts':
45                         case 'comments':
46                         case 'activity':
47                                 // Correct type names, no change needed
48                                 break;
49                         case 'replies':
50                                 $type = 'comments';
51                                 break;
52                         default:
53                                 $type = 'posts';
54                 }
55
56                 $nickname = $a->argv[1];
57                 header("Content-type: application/atom+xml; charset=utf-8");
58                 echo OStatus::feed($nickname, $last_update, 10, $type, $nocache, true);
59                 exit();
60         }
61 }