X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fuserrss.php;h=7bed1dd256bdf5db902e61841deea57dd86492fb;hb=ad3b62cf2f857d53113692f5a12adce616f17829;hp=aae41ee504d18ce99697d39a1e6ecb1cf86a4d7a;hpb=d63bca9d3cf7f40442bb244e52b8a44166e736b8;p=quix0rs-gnu-social.git diff --git a/actions/userrss.php b/actions/userrss.php index aae41ee504..7bed1dd256 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -21,94 +21,50 @@ if (!defined('GNUSOCIAL')) { exit(1); } // Formatting of RSS handled by Rss10Action -class UserrssAction extends Rss10Action +class UserrssAction extends TargetedRss10Action { - var $tag = null; + protected $tag = null; - protected function prepare(array $args=array()) + protected function doStreamPreparation() { - parent::prepare($args); - $nickname = $this->trimmed('nickname'); - $this->user = User::getKV('nickname', $nickname); - $this->tag = $this->trimmed('tag'); - - if (!$this->user) { - // TRANS: Client error displayed when user not found for an action. - $this->clientError(_('No such user.')); - } - - if (!empty($this->tag)) { - $this->notices = $this->getTaggedNotices(); - } else { - $this->notices = $this->getNotices(); - } - - return true; - } - - function getTaggedNotices() - { - $notice = $this->user->getTaggedNotices( - $this->tag, - 0, - ($this->limit == 0) ? NOTICES_PER_PAGE : $this->limit, - 0, - 0 - ); - - $notices = array(); - while ($notice->fetch()) { - $notices[] = clone($notice); - } + parent::doStreamPreparation(); - return $notices; + $this->tag = $this->trimmed('tag'); } - - function getNotices() + protected function getNotices() { - $notice = $this->user->getNotices( - 0, - ($this->limit == 0) ? NOTICES_PER_PAGE : $this->limit - ); - - $notices = array(); - while ($notice->fetch()) { - $notices[] = clone($notice); + if (!empty($this->tag)) { + $stream = $this->getTarget()->getTaggedNotices($this->tag, 0, $this->limit); + return $stream->fetchAll(); } + // otherwise we fetch a normal user stream - return $notices; + $stream = $this->getTarget()->getNotices(0, $this->limit); + return $stream->fetchAll(); } function getChannel() { - $user = $this->user; - $profile = $user->getProfile(); $c = array('url' => common_local_url('userrss', array('nickname' => - $user->nickname)), + $this->target->getNickname())), // TRANS: Message is used as link title. %s is a user nickname. - 'title' => sprintf(_('%s timeline'), $user->nickname), - 'link' => $profile->profileurl, + 'title' => sprintf(_('%s timeline'), $this->target->getNickname()), + 'link' => $this->target->getUrl(), // TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. 'description' => sprintf(_('Updates from %1$s on %2$s!'), - $user->nickname, common_config('site', 'name'))); + $this->target->getNickname(), common_config('site', 'name'))); return $c; } - function getImage() - { - $profile = $this->user->getProfile(); - return $profile->avatarUrl(AVATAR_PROFILE_SIZE); - } - // override parent to add X-SUP-ID URL - function initRss($limit=0) + function initRss() { - $url = common_local_url('sup', null, null, $this->user->id); + $url = common_local_url('sup', null, null, $this->target->getID()); header('X-SUP-ID: '.$url); - parent::initRss($limit); + parent::initRss(); } function isReadOnly($args)