X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fuserrss.php;h=7bed1dd256bdf5db902e61841deea57dd86492fb;hb=8d26d83d7a9047d2807e1dde848d28c21ecc219b;hp=85ea2fd7fa4213722084a5eb904abf29a2225025;hpb=0dbdcf2936a00282114f1368ead2f5edebc6ae61;p=quix0rs-gnu-social.git diff --git a/actions/userrss.php b/actions/userrss.php index 85ea2fd7fa..7bed1dd256 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -17,110 +17,54 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); +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; - function prepare($args) + protected function doStreamPreparation() { - common_debug("UserrssAction"); + parent::doStreamPreparation(); - parent::prepare($args); - $nickname = $this->trimmed('nickname'); - $this->user = User::staticGet('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.')); - return false; - } else { - if (!empty($this->tag)) { - $this->notices = $this->getTaggedNotices(); - } else { - $this->notices = $this->getNotices(); - } - return true; - } } - function getTaggedNotices() + protected function getNotices() { - $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); + 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; - } - - - function getNotices() - { - $notice = $this->user->getNotices( - 0, - ($this->limit == 0) ? NOTICES_PER_PAGE : $this->limit - ); - - $notices = array(); - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - 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() - { - $user = $this->user; - $profile = $user->getProfile(); - if (!$profile) { - common_log_db_error($user, 'SELECT', __FILE__); - // TRANS: Error message displayed when referring to a user without a profile. - $this->serverError(_('User has no profile.')); - return null; - } - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - return ($avatar) ? $avatar->url : null; - } - // 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)