summaryrefslogtreecommitdiff
path: root/actions/apitimelinegroup.php
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-03-03 12:51:23 -0800
committerBrion Vibber <brion@pobox.com>2010-03-03 16:33:20 -0800
commit9fadf8da1164d620284917b829329e195aa2a226 (patch)
treeff642f7abca80ee2e9b1d6ba1c97c20b250a88bd /actions/apitimelinegroup.php
parent04e474c98c9b907fe2d0f263fad79018a15c0783 (diff)
Put all required field setup into AtomUserNoticeFeed and AtomGroupNoticeFeed, consolidating some code. (RSS feeds pulling title, logo etc from the Atom data structure so we don't dupe it.)
OStatus now calling the feed classes directly instead of faking a call into the API, should be less flakey.
Diffstat (limited to 'actions/apitimelinegroup.php')
-rw-r--r--actions/apitimelinegroup.php45
1 files changed, 10 insertions, 35 deletions
diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php
index e30a08fb5..8f971392b 100644
--- a/actions/apitimelinegroup.php
+++ b/actions/apitimelinegroup.php
@@ -104,30 +104,21 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
function showTimeline()
{
- $sitename = common_config('site', 'name');
- $avatar = $this->group->homepage_logo;
- $title = sprintf(_("%s timeline"), $this->group->nickname);
-
- $subtitle = sprintf(
- _('Updates from %1$s on %2$s!'),
- $this->group->nickname,
- $sitename
- );
-
- $logo = ($avatar) ? $avatar : User_group::defaultLogo(AVATAR_PROFILE_SIZE);
+ // We'll pull common formatting out of this for other formats
+ $atom = new AtomGroupNoticeFeed($this->group);
switch($this->format) {
case 'xml':
$this->showXmlTimeline($this->notices);
break;
case 'rss':
- $this->showRssTimeline(
+ $this->showRssTimeline(
$this->notices,
- $title,
+ $atom->title,
$this->group->homeUrl(),
- $subtitle,
+ $atom->subtitle,
null,
- $logo
+ $atom->logo
);
break;
case 'atom':
@@ -136,38 +127,22 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
try {
- $atom = new AtomGroupNoticeFeed($this->group);
-
- // @todo set all this Atom junk up inside the feed class
-
- #$atom->setId($id);
- $atom->setTitle($title);
- $atom->setSubtitle($subtitle);
- $atom->setLogo($logo);
- $atom->setUpdated('now');
-
$atom->addAuthorRaw($this->group->asAtomAuthor());
$atom->setActivitySubject($this->group->asActivitySubject());
- $atom->addLink($this->group->homeUrl());
-
$id = $this->arg('id');
$aargs = array('format' => 'atom');
if (!empty($id)) {
$aargs['id'] = $id;
}
+ $self = $this->getSelfUri('ApiTimelineGroup', $aargs);
- $atom->setId($this->getSelfUri('ApiTimelineGroup', $aargs));
-
- $atom->addLink(
- $this->getSelfUri('ApiTimelineGroup', $aargs),
- array('rel' => 'self', 'type' => 'application/atom+xml')
- );
+ $atom->setId($self);
+ $atom->setSelfLink($self);
$atom->addEntryFromNotices($this->notices);
- //$this->raw($atom->getString());
- print $atom->getString(); // temp hack until PuSH feeds are redone cleanly
+ $this->raw($atom->getString());
} catch (Atom10FeedException $e) {
$this->serverError(