allrss.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * RSS feed for user and friends timeline action class.
  4. *
  5. * PHP version 5
  6. *
  7. * @category Action
  8. * @package StatusNet
  9. * @author Evan Prodromou <evan@status.net>
  10. * @author Robin Millette <millette@status.net>
  11. * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  12. * @link http://status.net/
  13. *
  14. * StatusNet - the distributed open-source microblogging tool
  15. * Copyright (C) 2008, 2009, StatusNet, Inc.
  16. *
  17. * This program is free software: you can redistribute it and/or modify
  18. * it under the terms of the GNU Affero General Public License as published by
  19. * the Free Software Foundation, either version 3 of the License, or
  20. * (at your option) any later version.
  21. *
  22. * This program is distributed in the hope that it will be useful,
  23. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  24. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  25. * GNU Affero General Public License for more details.
  26. *
  27. * You should have received a copy of the GNU Affero General Public License
  28. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  29. */
  30. if (!defined('GNUSOCIAL')) { exit(1); }
  31. /**
  32. * RSS feed for user and friends timeline.
  33. *
  34. * Formatting of RSS handled by Rss10Action
  35. *
  36. * @category Action
  37. * @package StatusNet
  38. * @author Evan Prodromou <evan@status.net>
  39. * @author Robin Millette <millette@status.net>
  40. * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  41. * @link http://status.net/
  42. */
  43. class AllrssAction extends TargetedRss10Action
  44. {
  45. protected function getNotices()
  46. {
  47. $stream = new InboxNoticeStream($this->target, $this->scoped);
  48. return $stream->getNotices(0, $this->limit)->fetchAll();
  49. }
  50. /**
  51. * Get channel.
  52. *
  53. * @return array associative array on channel information
  54. */
  55. function getChannel()
  56. {
  57. $c = array('url' => common_local_url('allrss',
  58. array('nickname' =>
  59. $this->target->getNickname())),
  60. // TRANS: Message is used as link title. %s is a user nickname.
  61. 'title' => sprintf(_('%s and friends'), $this->target->getNickname()),
  62. 'link' => common_local_url('all',
  63. array('nickname' =>
  64. $this->target->getNickname())),
  65. // TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
  66. 'description' => sprintf(_('Updates from %1$s and friends on %2$s!'),
  67. $this->target->getNickname(), common_config('site', 'name')));
  68. return $c;
  69. }
  70. }