X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fapitimelinefriends.php;h=591baccfccfba26713cf40c018d10a7be0927cad;hb=c48cdc7d50cc2920e3f41e34e9b5e19638331dd9;hp=71049f6eb104407ea5571f85153c10c58baa8c29;hpb=8d0c014ced78b3b6328105e2a82e3776059b600a;p=quix0rs-gnu-social.git diff --git a/actions/apitimelinefriends.php b/actions/apitimelinefriends.php index 71049f6eb1..591baccfcc 100644 --- a/actions/apitimelinefriends.php +++ b/actions/apitimelinefriends.php @@ -204,6 +204,8 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction $profile = $this->user->getProfile(); $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); $sitename = common_config('site', 'name'); + // TRANS: Title of API timeline for a user and friends. + // TRANS: %s is a username. $title = sprintf(_("%s and friends"), $this->user->nickname); $taguribase = TagURI::base(); $id = "tag:$taguribase:FriendsTimeline:" . $this->user->id; @@ -263,9 +265,16 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction case 'json': $this->showJsonTimeline($this->notices); break; + case 'as': + header('Content-Type: ' . ActivityStreamJSONDocument::CONTENT_TYPE); + $doc = new ActivityStreamJSONDocument($this->auth_user, $title); + $doc->addLink($link, 'alternate', 'text/html'); + $doc->addItemsFromNotices($this->notices); + $this->raw($doc->asString()); + break; default: - // TRANS: Client error displayed when trying to handle an unknown API method. - $this->clientError(_('API method not found.'), $code = 404); + // TRANS: Client error displayed when coming across a non-supported API method. + $this->clientError(_('API method not found.'), 404); break; } } @@ -279,16 +288,19 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction { $notices = array(); - if (!empty($this->auth_user) && $this->auth_user->id == $this->user->id) { - $notice = $this->user->ownFriendsTimeline(($this->page-1) * $this->count, - $this->count, $this->since_id, - $this->max_id); - } else { - $notice = $this->user->friendsTimeline(($this->page-1) * $this->count, - $this->count, $this->since_id, - $this->max_id); + $profile = null; + + if (isset($this->auth_user)) { + $profile = $this->auth_user->getProfile(); } + $stream = new InboxNoticeStream($this->user, $profile); + + $notice = $stream->getNotices(($this->page-1) * $this->count, + $this->count, + $this->since_id, + $this->max_id); + while ($notice->fetch()) { $notices[] = clone($notice); }