Add self link to user and group rss2 feeds

This commit is contained in:
Zach Copley 2010-03-11 23:43:03 +00:00
parent 7e1a1506f5
commit 212b20e876
2 changed files with 27 additions and 27 deletions

View File

@ -107,6 +107,14 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
// We'll pull common formatting out of this for other formats
$atom = new AtomGroupNoticeFeed($this->group);
// Calculate self link
$id = $this->arg('id');
$aargs = array('format' => $this->format);
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineGroup', $aargs);
switch($this->format) {
case 'xml':
$this->showXmlTimeline($this->notices);
@ -118,7 +126,8 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
$this->group->homeUrl(),
$atom->subtitle,
null,
$atom->logo
$atom->logo,
$self
);
break;
case 'atom':
@ -126,24 +135,12 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
try {
$atom->addAuthorRaw($this->group->asAtomAuthor());
$atom->setActivitySubject($this->group->asActivitySubject());
$id = $this->arg('id');
$aargs = array('format' => 'atom');
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineGroup', $aargs);
$atom->setId($self);
$atom->setSelfLink($self);
$atom->addEntryFromNotices($this->notices);
$this->raw($atom->getString());
} catch (Atom10FeedException $e) {
$this->serverError(
'Could not generate feed for group - ' . $e->getMessage()

View File

@ -116,13 +116,19 @@ class ApiTimelineUserAction extends ApiBareAuthAction
// We'll use the shared params from the Atom stub
// for other feed types.
$atom = new AtomUserNoticeFeed($this->user);
$title = $atom->title;
$link = common_local_url(
$link = common_local_url(
'showstream',
array('nickname' => $this->user->nickname)
);
$subtitle = $atom->subtitle;
$logo = $atom->logo;
// Calculate self link
$id = $this->arg('id');
$aargs = array('format' => $this->format);
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineUser', $aargs);
// FriendFeed's SUP protocol
// Also added RSS and Atom feeds
@ -136,25 +142,22 @@ class ApiTimelineUserAction extends ApiBareAuthAction
break;
case 'rss':
$this->showRssTimeline(
$this->notices, $title, $link,
$subtitle, $suplink, $logo
$this->notices,
$atom->title,
$link,
$atom->subtitle,
$suplink,
$atom->logo,
$self
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$id = $this->arg('id');
$aargs = array('format' => 'atom');
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineUser', $aargs);
$atom->setId($self);
$atom->setSelfLink($self);
$atom->addEntryFromNotices($this->notices);
$this->raw($atom->getString());
break;