exit(1);
}
-require_once INSTALLDIR . '/lib/apiprivateauth.php';
-
/**
* Returns the 20 most recent notices tagged by a given tag
*
{
var $notices = null;
- /**
- * Take arguments for running
- *
- * @param array $args $_REQUEST args
- *
- * @return boolean success flag
- */
- function prepare($args)
+ protected function prepare(array $args=array())
{
parent::prepare($args);
- common_debug("apitimelinetag prepare()");
-
$this->tag = $this->arg('tag');
$this->notices = $this->getNotices();
*
* @return void
*/
- function handle($args)
+ protected function handle()
{
- parent::handle($args);
+ parent::handle();
$this->showTimeline();
}
$sitename
);
$taguribase = TagURI::base();
- $id = "tag:$taguribase:TagTimeline:".$tag;
+ $id = "tag:$taguribase:TagTimeline:".$this->tag;
$link = common_local_url(
'tag',
$self = $this->getSelfUri();
- common_debug("self link is: $self");
-
switch($this->format) {
case 'xml':
$this->showXmlTimeline($this->notices);
$atom->setId($id);
$atom->setTitle($title);
$atom->setSubtitle($subtitle);
- $atom->setLogo($logo);
+ $atom->setLogo($sitelogo);
$atom->setUpdated('now');
$atom->addLink($link);
case 'json':
$this->showJsonTimeline($this->notices);
break;
+ case 'as':
+ header('Content-Type: ' . ActivityStreamJSONDocument::CONTENT_TYPE);
+ $doc = new ActivityStreamJSONDocument($this->auth_user);
+ $doc->setTitle($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.
+ // TRANS: Client error displayed when coming across a non-supported API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
*/
function getNotices()
{
- $notices = array();
-
- $notice = Notice_tag::getStream(
- $this->tag,
- ($this->page - 1) * $this->count,
- $this->count + 1
- );
-
- while ($notice->fetch()) {
- $notices[] = clone($notice);
- }
+ $notice = Notice_tag::getStream($this->tag)->getNotices(($this->page - 1) * $this->count,
+ $this->count + 1,
+ $this->since_id,
+ $this->max_id);
- return $notices;
+ return $notice->fetchAll();
}
/**