Update "mrpetovan" email address
[friendica.git/.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 = x($_GET, 'last_update') ? $_GET['last_update'] : '';
32                 $nocache     = x($_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                                 break;
48                         case 'replies':
49                                 $type = 'comments';
50                                 break;
51                         default:
52                                 $type = 'posts';
53                 }
54
55                 $nickname = $a->argv[1];
56                 header("Content-type: application/atom+xml");
57                 echo OStatus::feed($nickname, $last_update, 10, $type, $nocache);
58                 killme();
59         }
60 }