Merge branch '1.0.x' into schema-x

Conflicts:
	plugins/CacheLog/locale/nb/LC_MESSAGES/CacheLog.po
This commit is contained in:
Brion Vibber 2010-10-28 16:27:53 -07:00
commit e7c7fd39fc
963 changed files with 20580 additions and 13029 deletions

2
README
View File

@ -3,7 +3,7 @@ README
------
StatusNet 0.9.6 "Man on the Moon"
19 October 2010
25 October 2010 - RELEASE CANDIDATE
This is the README file for StatusNet, the Open Source microblogging
platform. It includes installation instructions, descriptions of

View File

@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class AccessadminpanelAction extends AdminPanelAction
{
/**
@ -48,10 +47,9 @@ class AccessadminpanelAction extends AdminPanelAction
*
* @return string page title
*/
function title()
{
// TRANS: Page title
// TRANS: Page title for Access admin panel that allows configuring site access.
return _('Access');
}
@ -60,10 +58,9 @@ class AccessadminpanelAction extends AdminPanelAction
*
* @return string instructions
*/
function getInstructions()
{
// TRANS: Page notice
// TRANS: Page notice.
return _('Site access settings');
}
@ -72,7 +69,6 @@ class AccessadminpanelAction extends AdminPanelAction
*
* @return void
*/
function showForm()
{
$form = new AccessAdminPanelForm($this);
@ -85,7 +81,6 @@ class AccessadminpanelAction extends AdminPanelAction
*
* @return void
*/
function saveSettings()
{
static $booleans = array('site' => array('private', 'inviteonly', 'closed'));
@ -110,7 +105,6 @@ class AccessadminpanelAction extends AdminPanelAction
return;
}
}
class AccessAdminPanelForm extends AdminForm
@ -120,7 +114,6 @@ class AccessAdminPanelForm extends AdminForm
*
* @return int ID of the form
*/
function id()
{
return 'form_site_admin_panel';
@ -131,7 +124,6 @@ class AccessAdminPanelForm extends AdminForm
*
* @return string class of the form
*/
function formClass()
{
return 'form_settings';
@ -142,7 +134,6 @@ class AccessAdminPanelForm extends AdminForm
*
* @return string URL of the action
*/
function action()
{
return common_local_url('accessadminpanel');
@ -153,7 +144,6 @@ class AccessAdminPanelForm extends AdminForm
*
* @return void
*/
function formData()
{
$this->out->elementStart('fieldset', array('id' => 'settings_admin_access'));
@ -161,7 +151,7 @@ class AccessAdminPanelForm extends AdminForm
$this->out->element('legend', null, _('Registration'));
$this->out->elementStart('ul', 'form_data');
$this->li();
// TRANS: Checkbox instructions for admin setting "Private"
// TRANS: Checkbox instructions for admin setting "Private".
$instructions = _('Prohibit anonymous users (not logged in) from viewing site?');
// TRANS: Checkbox label for prohibiting anonymous users from viewing site.
$this->out->checkbox('private', _m('LABEL', 'Private'),
@ -170,7 +160,7 @@ class AccessAdminPanelForm extends AdminForm
$this->unli();
$this->li();
// TRANS: Checkbox instructions for admin setting "Invite only"
// TRANS: Checkbox instructions for admin setting "Invite only".
$instructions = _('Make registration invitation only.');
// TRANS: Checkbox label for configuring site as invite only.
$this->out->checkbox('inviteonly', _('Invite only'),
@ -179,7 +169,7 @@ class AccessAdminPanelForm extends AdminForm
$this->unli();
$this->li();
// TRANS: Checkbox instructions for admin setting "Closed" (no new registrations)
// TRANS: Checkbox instructions for admin setting "Closed" (no new registrations).
$instructions = _('Disable new registrations.');
// TRANS: Checkbox label for disabling new user registrations.
$this->out->checkbox('closed', _('Closed'),
@ -195,12 +185,11 @@ class AccessAdminPanelForm extends AdminForm
*
* @return void
*/
function formActions()
{
// TRANS: Title / tooltip for button to save access settings in site admin panel
// TRANS: Title for button to save access settings in site admin panel.
$title = _('Save access settings');
// TRANS: Tooltip for button to save access settings in site admin panel.
$this->out->submit('submit', _m('BUTTON', 'Save'), 'submit', null, $title);
}
}

View File

@ -67,4 +67,3 @@ class AccesstokenAction extends Action
}
}
}
?>

View File

@ -64,7 +64,7 @@ class AllAction extends ProfileAction
}
if ($this->page > 1 && $this->notice->N == 0) {
// TRANS: Server error when page not found (404)
// TRANS: Server error when page not found (404).
$this->serverError(_('No such page.'), $code = 404);
}
@ -76,6 +76,7 @@ class AllAction extends ProfileAction
parent::handle($args);
if (!$this->user) {
// TRANS: Client error when user not found for an action.
$this->clientError(_('No such user.'));
return;
}
@ -103,7 +104,7 @@ class AllAction extends ProfileAction
'nickname' =>
$this->user->nickname)
),
// TRANS: %s is user nickname
// TRANS: %s is user nickname.
sprintf(_('Feed for friends of %s (RSS 1.0)'), $this->user->nickname)),
new Feed(Feed::RSS2,
common_local_url(
@ -112,7 +113,7 @@ class AllAction extends ProfileAction
'id' => $this->user->nickname
)
),
// TRANS: %s is user nickname
// TRANS: %s is user nickname.
sprintf(_('Feed for friends of %s (RSS 2.0)'), $this->user->nickname)),
new Feed(Feed::ATOM,
common_local_url(
@ -121,7 +122,7 @@ class AllAction extends ProfileAction
'id' => $this->user->nickname
)
),
// TRANS: %s is user nickname
// TRANS: %s is user nickname.
sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname))
);
}
@ -134,7 +135,7 @@ class AllAction extends ProfileAction
function showEmptyListMessage()
{
// TRANS: %s is user nickname
// TRANS: Empty list message. %s is a user nickname.
$message = sprintf(_('This is the timeline for %s and friends but no one has posted anything yet.'), $this->user->nickname) . ' ';
if (common_logged_in()) {
@ -144,7 +145,7 @@ class AllAction extends ProfileAction
// TRANS: This message contains Markdown links. Keep "](" together.
$message .= _('Try subscribing to more people, [join a group](%%action.groups%%) or post something yourself.');
} else {
// TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@"
// TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@".
// TRANS: This message contains Markdown links. Keep "](" together.
$message .= sprintf(_('You can try to [nudge %1$s](../%2$s) from their profile or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname);
}
@ -183,10 +184,10 @@ class AllAction extends ProfileAction
{
$user = common_current_user();
if ($user && ($user->id == $this->user->id)) {
// TRANS: H1 text
// TRANS: H1 text for page when viewing a list for self.
$this->element('h1', null, _("You and friends"));
} else {
// TRANS: H1 text. %s is a user nickname
// TRANS: H1 text for page. %s is a user nickname.
$this->element('h1', null, sprintf(_('%s and friends'), $this->user->nickname));
}
}

View File

@ -1,5 +1,4 @@
<?php
/**
* RSS feed for user and friends timeline action class.
*
@ -57,7 +56,6 @@ class AllrssAction extends Rss10Action
* @param array $args Web and URL arguments
*
* @return boolean false if user doesn't exist
*/
function prepare($args)
{
parent::prepare($args);
@ -65,6 +63,7 @@ class AllrssAction extends Rss10Action
$this->user = User::staticGet('nickname', $nickname);
if (!$this->user) {
// TRANS: Client error when user not found for an rss related action.
$this->clientError(_('No such user.'));
return false;
} else {
@ -127,7 +126,7 @@ class AllrssAction extends Rss10Action
* Get image.
*
* @return string user avatar URL or null
*/
*/
function getImage()
{
$user = $this->user;
@ -139,4 +138,3 @@ class AllrssAction extends Rss10Action
return $avatar ? $avatar->url : null;
}
}

View File

@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiAccountRateLimitStatusAction extends ApiBareAuthAction
{
/**
* Handle the request
*
@ -62,7 +60,6 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -119,11 +116,8 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -53,7 +53,6 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{

View File

@ -51,7 +51,6 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
@ -91,6 +90,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format

View File

@ -114,6 +114,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
}
if (empty($this->user)) {
// TRANS: Client error when user not found updating a profile background image.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}

View File

@ -43,10 +43,8 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
{
var $profile_background_color = null;
var $profile_text_color = null;
var $profile_link_color = null;
@ -59,9 +57,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -100,7 +96,6 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -116,6 +111,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method updating profile colours.
_('API method not found.'),
404,
$this->format
@ -126,7 +122,6 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
$design = $this->user->getDesign();
if (!empty($design)) {
$original = clone($design);
try {
@ -140,12 +135,11 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
if ($result === false) {
common_log_db_error($design, 'UPDATE', __FILE__);
// TRANS: Client error displayed when a database error occurs updating profile colours.
$this->clientError(_('Could not update your design.'));
return;
}
} else {
$this->user->query('BEGIN');
// save new design
@ -162,6 +156,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
if (empty($id)) {
common_log_db_error($id, 'INSERT', __FILE__);
// TRANS: Client error displayed when a database error occurs inserting profile colours.
$this->clientError(_('Unable to save your design settings.'));
return;
}
@ -172,6 +167,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
if (empty($result)) {
common_log_db_error($original, 'UPDATE', __FILE__);
// TRANS: Client error displayed when a database error occurs updating profile colours.
$this->clientError(_('Unable to save your design settings.'));
$this->user->query('ROLLBACK');
return;
@ -183,6 +179,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
$profile = $this->user->getProfile();
if (empty($profile)) {
// TRANS: Client error displayed a user has no profile updating profile colours.
$this->clientError(_('User has no profile.'));
return;
}
@ -207,7 +204,6 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
*
* @return void
*/
function setColors($design)
{
$bgcolor = empty($this->profile_background_color) ?
@ -243,5 +239,4 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
return true;
}
}

View File

@ -43,19 +43,15 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiAccountUpdateProfileImageAction extends ApiAuthAction
{
/**
* Take arguments for running
*
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -74,7 +70,6 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -105,6 +100,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
}
if (empty($this->user)) {
// TRANS: Client error displayed updating profile image without having a user object.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -130,6 +126,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
$profile = $this->user->getProfile();
if (empty($profile)) {
// TRANS: Client error displayed if a user profile could not be found updating a profile image.
$this->clientError(_('User has no profile.'));
return;
}
@ -150,5 +147,4 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
$this->endDocument('json');
}
}
}

View File

@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiAccountVerifyCredentialsAction extends ApiAuthAction
{
/**
* Handle the request
*
@ -61,12 +59,12 @@ class ApiAccountVerifyCredentialsAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
// TRANS: Client error displayed trying to execute an unknown API method verifying user credentials.
$this->clientError(_('API method not found.'), $code = 404);
return;
}
@ -91,12 +89,9 @@ class ApiAccountVerifyCredentialsAction extends ApiAuthAction
* @param array $args other arguments
*
* @return boolean true
*
**/
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -55,7 +55,6 @@ class ApiBlockDestroyAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
@ -91,6 +90,7 @@ class ApiBlockDestroyAction extends ApiAuthAction
}
if (empty($this->user) || empty($this->other)) {
// TRANS: Client error when user not found for an API action to remove a block for a user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiDirectMessageAction extends ApiAuthAction
{
var $messages = null;
@ -64,9 +63,7 @@ class ApiDirectMessageAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -87,12 +84,12 @@ class ApiDirectMessageAction extends ApiAuthAction
// Action was called by /api/direct_messages/sent.format
$this->title = sprintf(
// TRANS: %s is a user nickname.
// TRANS: Title. %s is a user nickname.
_("Direct messages from %s"),
$this->user->nickname
);
$this->subtitle = sprintf(
// TRANS: %s is a user nickname.
// TRANS: Subtitle. %s is a user nickname.
_("All the direct messages sent from %s"),
$this->user->nickname
);
@ -101,12 +98,12 @@ class ApiDirectMessageAction extends ApiAuthAction
$this->id = "tag:$taguribase:SentDirectMessages:" . $this->user->id;
} else {
$this->title = sprintf(
// TRANS: %s is a user nickname.
// TRANS: Title. %s is a user nickname.
_("Direct messages to %s"),
$this->user->nickname
);
$this->subtitle = sprintf(
// TRANS: %s is a user nickname.
// TRANS: Subtitle. %s is a user nickname.
_("All the direct messages sent to %s"),
$this->user->nickname
);
@ -129,7 +126,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -141,7 +137,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function showMessages()
{
switch($this->format) {
@ -169,7 +164,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return array notices
*/
function getMessages()
{
$message = new Message();
@ -208,7 +202,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -219,7 +212,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->messages)) {
@ -234,7 +226,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function showXmlDirectMessages()
{
$this->initDocument('xml');
@ -255,7 +246,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function showJsonDirectMessages()
{
$this->initDocument('json');
@ -276,7 +266,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function showRssDirectMessages()
{
$this->initDocument('rss');
@ -311,7 +300,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return void
*/
function showAtomDirectMessages()
{
$this->initDocument('atom');
@ -353,7 +341,6 @@ class ApiDirectMessageAction extends ApiAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->messages)) {
@ -374,5 +361,4 @@ class ApiDirectMessageAction extends ApiAuthAction
return null;
}
}

View File

@ -60,7 +60,6 @@ class ApiDirectMessageNewAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
@ -69,6 +68,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
$this->user = $this->auth_user;
if (empty($this->user)) {
// TRANS: Client error when user not found for an API direct message action.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -113,7 +113,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
if (empty($this->content)) {
$this->clientError(
// TRANS: Client error (406).
// TRANS: Client error displayed when no message text was submitted (406).
_('No message text!'),
406,
$this->format

View File

@ -58,7 +58,6 @@ class ApiFavoriteCreateAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
@ -95,6 +94,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format

View File

@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFavoriteDestroyAction extends ApiAuthAction
{
var $notice = null;
/**
@ -60,9 +58,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -82,7 +78,6 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -99,6 +94,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -108,6 +104,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
if (empty($this->notice)) {
$this->clientError(
// TRANS: Client error displayed when trying to remove a favourite with an invalid ID.
_('No status found with that ID.'),
404,
$this->format
@ -121,6 +118,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
if (!$fave->find(true)) {
$this->clientError(
// TRANS: Client error displayed when trying to remove a favourite that was not a favourite.
_('That status is not a favorite.'),
403,
$this->favorite
@ -133,6 +131,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
if (!$result) {
common_log_db_error($fave, 'DELETE', __FILE__);
$this->clientError(
// TRANS: Client error displayed when removing a favourite has failed.
_('Could not delete favorite.'),
404,
$this->format
@ -148,5 +147,4 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
$this->show_single_json_status($this->notice);
}
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFriendshipsCreateAction extends ApiAuthAction
{
var $other = null;
@ -61,7 +60,6 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -81,7 +79,6 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -98,6 +95,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -107,6 +105,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
if (empty($this->other)) {
$this->clientError(
// TRANS: Client error displayed when trying follow who's profile could not be found.
_('Could not follow user: profile not found.'),
403,
$this->format
@ -116,6 +115,8 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
if ($this->user->isSubscribed($this->other)) {
$errmsg = sprintf(
// TRANS: Client error displayed when trying to follow a user that's already being followed.
// TRANS: %s is the nickname of the user that is already being followed.
_('Could not follow user: %s is already on your list.'),
$this->other->nickname
);
@ -134,5 +135,4 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
$this->showProfile($this->other, $this->format);
$this->endDocument($this->format);
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFriendshipsDestroyAction extends ApiAuthAction
{
var $other = null;
@ -61,7 +60,6 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -81,7 +79,6 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -98,6 +95,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -107,6 +105,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
if (empty($this->other)) {
$this->clientError(
// TRANS: Client error displayed when trying to unfollow a user that cannot be found.
_('Could not unfollow user: User not found.'),
403,
$this->format
@ -118,6 +117,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
if ($this->user->id == $this->other->id) {
$this->clientError(
// TRANS: Client error displayed when trying to unfollow self.
_("You cannot unfollow yourself."),
403,
$this->format
@ -132,5 +132,4 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
$this->showProfile($this->other, $this->format);
$this->endDocument($this->format);
}
}

View File

@ -47,7 +47,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFriendshipsExistsAction extends ApiPrivateAuthAction
{
var $profile_a = null;
@ -59,9 +58,7 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -81,13 +78,13 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (empty($this->profile_a) || empty($this->profile_b)) {
$this->clientError(
// TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists.
_('Two valid IDs or screen_names must be supplied.'),
400,
$this->format
@ -122,10 +119,8 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -46,7 +46,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFriendshipsShowAction extends ApiBareAuthAction
{
var $source = null;
@ -58,9 +57,7 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -93,7 +90,6 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
*
* @return boolean true or false
*/
function requiresAuth()
{
if (common_config('site', 'private')) {
@ -119,18 +115,19 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
// TRANS: Client error displayed trying to execute an unknown API method showing friendship.
$this->clientError(_('API method not found.'), 404);
return;
}
if (empty($this->source)) {
$this->clientError(
// TRANS: Client error displayed when a source user could not be determined showing friendship.
_('Could not determine source user.'),
404
);
@ -139,6 +136,7 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
if (empty($this->target)) {
$this->clientError(
// TRANS: Client error displayed when a target user could not be determined showing friendship.
_('Could not find target user.'),
404
);
@ -161,7 +159,6 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
default:
break;
}
}
/**
@ -178,5 +175,4 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction
{
return true;
}
}

View File

@ -66,9 +66,7 @@ class ApiGroupCreateAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -150,7 +148,6 @@ class ApiGroupCreateAction extends ApiAuthAction
*
* @return void
*/
function validateParams()
{
$valid = Validate::string(
@ -218,7 +215,11 @@ class ApiGroupCreateAction extends ApiAuthAction
} elseif (User_group::descriptionTooLong($this->description)) {
$this->clientError(
sprintf(
_('Description is too long (max %d chars).'),
// TRANS: Client error shown when providing too long a description during group creation.
// TRANS: %d is the maximum number of allowed characters.
_m('Description is too long (maximum %d character).',
'Description is too long (maximum %d characters).',
User_group::maxDescription()),
User_group::maxDescription()
),
403,
@ -229,6 +230,7 @@ class ApiGroupCreateAction extends ApiAuthAction
!is_null($this->location)
&& mb_strlen($this->location) > 255) {
$this->clientError(
// TRANS: Client error shown when providing too long a location during group creation.
_('Location is too long (maximum 255 characters).'),
403,
$this->format
@ -248,7 +250,11 @@ class ApiGroupCreateAction extends ApiAuthAction
if (count($this->aliases) > common_config('group', 'maxaliases')) {
$this->clientError(
sprintf(
_('Too many aliases! Maximum %d.'),
// TRANS: Client error shown when providing too many aliases during group creation.
// TRANS: %d is the maximum number of allowed aliases.
_m('Too many aliases! Maximum %d allowed.',
'Too many aliases! Maximum %d allowed.',
common_config('group', 'maxaliases')),
common_config('group', 'maxaliases')
),
403,
@ -269,6 +275,8 @@ class ApiGroupCreateAction extends ApiAuthAction
if (!$valid) {
$this->clientError(
// TRANS: Client error shown when providing an invalid alias during group creation.
// TRANS: %s is the invalid alias.
sprintf(_('Invalid alias: "%s".'), $alias),
403,
$this->format
@ -278,6 +286,8 @@ class ApiGroupCreateAction extends ApiAuthAction
if ($this->groupNicknameExists($alias)) {
$this->clientError(
sprintf(
// TRANS: Client error displayed when trying to use an alias during group creation that is already in use.
// TRANS: %s is the alias that is already in use.
_('Alias "%s" already in use. Try another one.'),
$alias
),
@ -291,6 +301,7 @@ class ApiGroupCreateAction extends ApiAuthAction
if (strcmp($alias, $this->nickname) == 0) {
$this->clientError(
// TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname.
_('Alias can\'t be the same as nickname.'),
403,
$this->format
@ -299,7 +310,7 @@ class ApiGroupCreateAction extends ApiAuthAction
}
}
// Evarything looks OK
// Everything looks OK
return true;
}
@ -311,7 +322,6 @@ class ApiGroupCreateAction extends ApiAuthAction
*
* @return boolean true or false
*/
function groupNicknameExists($nickname)
{
$local = Local_group::staticGet('nickname', $nickname);
@ -328,5 +338,4 @@ class ApiGroupCreateAction extends ApiAuthAction
return false;
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupIsMemberAction extends ApiBareAuthAction
{
var $group = null;
@ -60,7 +59,6 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
@ -82,17 +80,18 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (empty($this->user)) {
// TRANS: Client error displayed when checking group membership for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
if (empty($this->group)) {
// TRANS: Client error displayed when checking group membership for a non-existing group.
$this->clientError(_('Group not found.'), 404, $this->format);
return false;
}
@ -112,6 +111,7 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method showing group membership.
_('API method not found.'),
400,
$this->format
@ -129,10 +129,8 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupJoinAction extends ApiAuthAction
{
var $group = null;
@ -60,9 +59,7 @@ class ApiGroupJoinAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -82,7 +79,6 @@ class ApiGroupJoinAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -98,17 +94,20 @@ class ApiGroupJoinAction extends ApiAuthAction
}
if (empty($this->user)) {
// TRANS: Client error displayed when trying to have a non-existing user join a group.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
if (empty($this->group)) {
// TRANS: Client error displayed when trying to join a group that does not exist.
$this->clientError(_('Group not found.'), 404, $this->format);
return false;
}
if ($this->user->isMember($this->group)) {
$this->clientError(
// TRANS: Server error displayed when trying to join a group the user is already a member of.
_('You are already a member of that group.'),
403,
$this->format
@ -118,6 +117,7 @@ class ApiGroupJoinAction extends ApiAuthAction
if (Group_block::isBlocked($this->group, $this->user->getProfile())) {
$this->clientError(
// TRANS: Server error displayed when trying to join a group the user is blocked from joining.
_('You have been blocked from that group by the admin.'),
403,
$this->format
@ -137,6 +137,8 @@ class ApiGroupJoinAction extends ApiAuthAction
common_log_db_error($member, 'INSERT', __FILE__);
$this->serverError(
sprintf(
// TRANS: Server error displayed when joining a group fails.
// TRANS: %1$s is a user nickname, $2$s is a group nickname.
_('Could not join user %1$s to group %2$s.'),
$this->user->nickname,
$this->group->nickname
@ -154,6 +156,7 @@ class ApiGroupJoinAction extends ApiAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method joining a group.
_('API method not found.'),
404,
$this->format
@ -161,5 +164,4 @@ class ApiGroupJoinAction extends ApiAuthAction
break;
}
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupLeaveAction extends ApiAuthAction
{
var $group = null;
@ -60,9 +59,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -82,7 +79,6 @@ class ApiGroupLeaveAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -98,11 +94,13 @@ class ApiGroupLeaveAction extends ApiAuthAction
}
if (empty($this->user)) {
// TRANS: Client error displayed when trying to have a non-existing user leave a group.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
if (empty($this->group)) {
// TRANS: Client error displayed when trying to leave a group that does not exist.
$this->clientError(_('Group not found.'), 404, $this->format);
return false;
}
@ -113,6 +111,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
$member->profile_id = $this->auth_user->id;
if (!$member->find(true)) {
// TRANS: Server error displayed when trying to leave a group the user is not a member of.
$this->serverError(_('You are not a member of this group.'));
return;
}
@ -123,6 +122,8 @@ class ApiGroupLeaveAction extends ApiAuthAction
common_log_db_error($member, 'DELETE', __FILE__);
$this->serverError(
sprintf(
// TRANS: Server error displayed when leaving a group fails.
// TRANS: %1$s is a user nickname, $2$s is a group nickname.
_('Could not remove user %1$s from group %2$s.'),
$this->user->nickname,
$this->group->nickname
@ -140,6 +141,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method leaving a group.
_('API method not found.'),
404,
$this->format
@ -147,5 +149,4 @@ class ApiGroupLeaveAction extends ApiAuthAction
break;
}
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupListAction extends ApiBareAuthAction
{
var $groups = null;
@ -60,9 +59,7 @@ class ApiGroupListAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -88,13 +85,12 @@ class ApiGroupListAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
$sitename = common_config('site', 'name');
// TRANS: %s is a user name
// TRANS: Used as title in check for group membership. %s is a user name.
$title = sprintf(_("%s's groups"), $this->user->nickname);
$taguribase = TagURI::base();
$id = "tag:$taguribase:Groups";
@ -104,8 +100,8 @@ class ApiGroupListAction extends ApiBareAuthAction
);
$subtitle = sprintf(
// TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
_("%1\$s groups %2\$s is a member of."),
// TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name.
_('%1$s groups %2$s is a member of.'),
$sitename,
$this->user->nickname
);
@ -134,13 +130,13 @@ class ApiGroupListAction extends ApiBareAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method checking group membership.
_('API method not found.'),
404,
$this->format
);
break;
}
}
/**
@ -148,7 +144,6 @@ class ApiGroupListAction extends ApiBareAuthAction
*
* @return array groups
*/
function getGroups()
{
$groups = array();
@ -174,7 +169,6 @@ class ApiGroupListAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -203,7 +197,6 @@ class ApiGroupListAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->groups) && (count($this->groups) > 0)) {
@ -224,5 +217,4 @@ class ApiGroupListAction extends ApiBareAuthAction
return null;
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupListAllAction extends ApiPrivateAuthAction
{
var $groups = null;
@ -60,9 +59,7 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -82,17 +79,17 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
$sitename = common_config('site', 'name');
// TRANS: Message is used as a title. %s is a site name.
// TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name.
$title = sprintf(_("%s groups"), $sitename);
$taguribase = TagURI::base();
$id = "tag:$taguribase:Groups";
$link = common_local_url('groups');
// TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name.
$subtitle = sprintf(_("groups on %s"), $sitename);
switch($this->format) {
@ -119,13 +116,13 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups.
_('API method not found.'),
404,
$this->format
);
break;
}
}
/**
@ -133,7 +130,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
*
* @return array groups
*/
function getGroups()
{
$qry = 'SELECT user_group.* '.
@ -165,7 +161,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -176,7 +171,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
*
* @return string datestamp of the site's latest group
*/
function lastModified()
{
if (!empty($this->groups) && (count($this->groups) > 0)) {
@ -194,7 +188,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->groups) && (count($this->groups) > 0)) {
@ -214,5 +207,4 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupMembershipAction extends ApiPrivateAuthAction
{
var $group = null;
@ -61,9 +60,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -83,12 +80,12 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (empty($this->group)) {
// TRANS: Client error displayed trying to show group membership on a non-existing group.
$this->clientError(_('Group not found.'), 404, $this->format);
return false;
}
@ -104,6 +101,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method showing group membership.
_('API method not found.'),
404,
$this->format
@ -117,7 +115,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
*
* @return array $profiles list of profiles
*/
function getProfiles()
{
$profiles = array();
@ -143,7 +140,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -154,7 +150,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
*
* @return string datestamp of the lastest profile in the group
*/
function lastModified()
{
if (!empty($this->profiles) && (count($this->profiles) > 0)) {
@ -173,7 +168,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->profiles) && (count($this->profiles) > 0)) {
@ -194,5 +188,4 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -50,7 +50,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiGroupShowAction extends ApiPrivateAuthAction
{
var $group = null;
@ -61,9 +60,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -80,6 +77,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
common_redirect(common_local_url('ApiGroupShow', $args), 301);
} else {
$this->clientError(
// TRANS: Client error displayed when trying to show a group that could not be found.
_('Group not found.'),
404,
$this->format
@ -100,7 +98,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -113,6 +110,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
$this->showSingleJsonGroup($this->group);
break;
default:
// TRANS: Client error displayed trying to execute an unknown API method showing a group.
$this->clientError(_('API method not found.'), 404, $this->format);
break;
}
@ -123,7 +121,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->group)) {
@ -141,7 +138,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->group)) {
@ -169,10 +165,8 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -44,19 +44,15 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiHelpTestAction extends ApiPrivateAuthAction
{
/**
* Take arguments for running
*
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -70,7 +66,6 @@ class ApiHelpTestAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -85,6 +80,7 @@ class ApiHelpTestAction extends ApiPrivateAuthAction
$this->endDocument('json');
} else {
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method testing API connectivity.
_('API method not found.'),
404,
$this->format
@ -101,11 +97,8 @@ class ApiHelpTestAction extends ApiPrivateAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiMediaUploadAction extends ApiAuthAction
{
/**
@ -57,7 +56,6 @@ class ApiMediaUploadAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -99,6 +97,7 @@ class ApiMediaUploadAction extends ApiAuthAction
if (isset($upload)) {
$this->showResponse($upload);
} else {
// TRANS: Client error displayed when uploading a media file has failed.
$this->clientError(_('Upload failed.'));
return;
}
@ -126,7 +125,6 @@ class ApiMediaUploadAction extends ApiAuthAction
* Overrided clientError to show a more Twitpic-like error
*
* @param String $msg an error message
*
*/
function clientError($msg)
{
@ -140,5 +138,4 @@ class ApiMediaUploadAction extends ApiAuthAction
$this->elementEnd('rsp');
$this->endDocument();
}
}

View File

@ -79,7 +79,6 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
$app = $datastore->getAppByRequestToken($this->reqToken);
$atok = $server->fetch_access_token($req);
} catch (Exception $e) {
common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage());
common_debug(var_export($req, true));
@ -88,7 +87,6 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
}
if (empty($atok)) {
// Token exchange failed -- log it
$msg = sprintf(
@ -101,7 +99,6 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
common_log(LOG_WARNING, $msg);
// TRANS: Client error given from the OAuth API when the request token or verifier is invalid.
$this->clientError(_("Invalid request token or verifier.", 400, 'text'));
} else {
common_log(
LOG_INFO,
@ -121,7 +118,6 @@ class ApiOauthAccessTokenAction extends ApiOauthAction
*
* @param OAuthToken token the access token
*/
function showAccessToken($token)
{
header('Content-Type: application/x-www-form-urlencoded');

View File

@ -58,7 +58,6 @@ class ApiOauthAuthorizeAction extends Action
*
* @return boolean false
*/
function isReadOnly($args)
{
return false;
@ -144,6 +143,7 @@ class ApiOauthAuthorizeAction extends Action
if (!$token || $token != common_session_token()) {
$this->showForm(
// TRANS: Form validation error in API OAuth authorisation because of an invalid session token.
_('There was a problem with your session token. Try again, please.'));
return;
}
@ -177,7 +177,6 @@ class ApiOauthAuthorizeAction extends Action
assert(!empty($this->reqToken));
if ($this->arg('allow')) {
// mark the req token as authorized
try {
$this->store->authorize_token($this->oauthTokenParam);
@ -250,9 +249,7 @@ class ApiOauthAuthorizeAction extends Action
// Otherwise, inform the user that the rt was authorized
$this->showAuthorized();
} else if ($this->arg('cancel')) {
common_log(
LOG_INFO,
sprintf(
@ -421,16 +418,18 @@ class ApiOauthAuthorizeAction extends Action
$access = ($this->app->access_type & Oauth_application::$writeAccess) ?
'access and update' : 'access';
// TRANS: User notification of external application requesting account access.
// TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application,
// TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename.
if ($this->app->name == 'anonymous') {
// Special message for the anonymous app and consumer
// Special message for the anonymous app and consumer.
// TRANS: User notification of external application requesting account access.
// TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename.
$msg = _('An application would like the ability ' .
'to <strong>%3$s</strong> your %4$s account data. ' .
'You should only give access to your %4$s account ' .
'to third parties you trust.');
} else {
// TRANS: User notification of external application requesting account access.
// TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application,
// TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename.
$msg = _('The application <strong>%1$s</strong> by ' .
'<strong>%2$s</strong> would like the ability ' .
'to <strong>%3$s</strong> your %4$s account data. ' .
@ -612,19 +611,36 @@ class ApiOauthAuthorizeAction extends Action
*/
function showAuthorized()
{
$title = sprintf(
// TRANS: Header of user notification after authorising an application access to a profile.
// TRANS: %s is the authorised application name.
_('You have successfully authorized %s.'),
($this->app->name == 'anonymous') ? 'the application' : $this->app->name
);
$title = null;
$msg = null;
$msg = sprintf(
// TRANS: Uer notification after authorising an application access to a profile.
// TRANS: %s is the authorised application name.
_('Please return to %s and enter the following security code to complete the process.'),
($this->app->name == 'anonymous') ? 'the application' : $this->app->name
);
if ($this->app->name == 'anonymous') {
$title =
// TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth.
_('You have successfully authorized the application');
$msg =
// TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth.
_('Please return to the application and enter the following security code to complete the process.');
} else {
$title = sprintf(
// TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth.
// TRANS: %s is the authorised application name.
_('You have successfully authorized %s'),
$this->app->name
);
$msg = sprintf(
// TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth.
// TRANS: %s is the authorised application name.
_('Please return to %s and enter the following security code to complete the process.'),
$this->app->name
);
}
if ($this->reqToken->verified_callback == 'oob') {
$pin = new ApiOauthPinAction(
@ -635,7 +651,6 @@ class ApiOauthAuthorizeAction extends Action
);
$pin->showPage();
} else {
// NOTE: This would only happen if an application registered as
// a web application but sent in 'oob' for the oauth_callback
// parameter. Usually web apps will send in a callback and
@ -676,7 +691,6 @@ class ApiOauthAuthorizeAction extends Action
$callback = $this->app->callback_url;
}
}
return $callback;

View File

@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiOauthPinAction extends InfoAction
{
function __construct($title, $message, $verifier, $desktopMode = false)
@ -96,6 +95,70 @@ class ApiOauthPinAction extends InfoAction
$this->elementEnd('body');
}
/**
* A local menu
*
* Shows different login/register actions.
*
* @return void
*/
function showLocalNav()
{
// NOP
}
/*
* Override - suppress output in "desktop" mode
*/
function showHeader()
{
if ($this->desktopMode == false) {
parent::showHeader();
}
}
/*
* Override - suppress output in "desktop" mode
*/
function showAside()
{
if ($this->desktopMode == false) {
parent::showAside();
}
}
/*
* Override - suppress output in "desktop" mode
*/
function showFooter()
{
if ($this->desktopMode == false) {
parent::showFooter();
}
}
/**
* Show site notice.
*
* @return nothing
*/
function showSiteNotice()
{
// NOP
}
/**
* Show notice form.
*
* Show the form for posting a new notice
*
* @return nothing
*/
function showNoticeForm()
{
// NOP
}
/**
* Display content.
*

View File

@ -42,7 +42,6 @@ require_once INSTALLDIR . '/lib/apioauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiOauthRequestTokenAction extends ApiOauthAction
{
/**
@ -51,9 +50,7 @@ class ApiOauthRequestTokenAction extends ApiOauthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -74,7 +71,6 @@ class ApiOauthRequestTokenAction extends ApiOauthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -127,7 +123,6 @@ class ApiOauthRequestTokenAction extends ApiOauthAction
/*
* Display temporary OAuth credentials
*/
function showRequestToken($token)
{
header('Content-Type: application/x-www-form-urlencoded');
@ -142,7 +137,6 @@ class ApiOauthRequestTokenAction extends ApiOauthAction
*
* @return boolean true or false
*/
function verifyCallback($callback)
{
if ($callback == "oob") {
@ -157,5 +151,4 @@ class ApiOauthRequestTokenAction extends ApiOauthAction
return Validate::uri($callback);
}
}
}

View File

@ -48,10 +48,8 @@ require_once INSTALLDIR.'/lib/apiprivateauth.php';
*
* @see ApiPrivateAuthAction
*/
class ApiSearchAtomAction extends ApiPrivateAuthAction
{
var $cnt;
var $query;
var $lang;
@ -70,7 +68,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @see Action::__construct
*/
function __construct($output='php://output', $indent=null)
{
parent::__construct($output, $indent);
@ -81,7 +78,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadonly()
{
return true;
@ -93,16 +89,13 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
* @param array $args Arguments from $_REQUEST
*
* @return boolean success
*
*/
function prepare($args)
{
common_debug("in apisearchatom prepare()");
parent::prepare($args);
$this->query = $this->trimmed('q');
$this->lang = $this->trimmed('lang');
$this->rpp = $this->trimmed('rpp');
@ -139,7 +132,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -154,7 +146,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return array an array of Notice objects sorted in reverse chron
*/
function getNotices()
{
// TODO: Support search operators like from: and to:, boolean, etc.
@ -180,7 +171,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
if ($this->cnt > 0) {
while ($notice->fetch()) {
++$cnt;
if (!$this->max_id) {
@ -203,7 +193,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function showAtom()
{
$notices = $this->getNotices();
@ -212,7 +201,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$this->showFeed();
foreach ($notices as $n) {
$profile = $n->getProfile();
// Don't show notices from deleted users
@ -230,7 +218,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function showFeed()
{
// TODO: A9 OpenSearch stuff like search.twitter.com?
@ -278,6 +265,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
'rel' => 'self',
'href' => $self_uri));
// @todo Needs i18n?
$this->element('title', null, "$this->query - $sitename Search");
$this->element('updated', null, common_date_iso8601('now'));
@ -313,7 +301,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
'rel' => 'previous',
'href' => $previous_uri));
}
}
/**
@ -324,7 +311,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function showEntry($notice)
{
$server = common_config('site', 'server');
@ -356,10 +342,10 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
if ($ns) {
if (!empty($ns->name) && !empty($ns->url)) {
$source = '<a href="'
. htmlspecialchars($ns->url)
. '" rel="nofollow">'
. htmlspecialchars($ns->name)
. '</a>';
. htmlspecialchars($ns->url)
. '" rel="nofollow">'
. htmlspecialchars($ns->name)
. '</a>';
} else {
$source = $ns->code;
}
@ -372,6 +358,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$name = $profile->nickname;
if ($profile->fullname) {
// @todo Needs proper i18n?
$name .= ' (' . $profile->fullname . ')';
}
@ -387,7 +374,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function initAtom()
{
header('Content-Type: application/atom+xml; charset=utf-8');
@ -399,10 +385,8 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
*
* @return void
*/
function endAtom()
{
$this->elementEnd('feed');
}
}

View File

@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/jsonsearchresultslist.php';
* @link http://status.net/
* @see ApiAction
*/
class ApiSearchJSONAction extends ApiPrivateAuthAction
{
var $query;
@ -62,7 +61,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
*
* @return boolean true if nothing goes wrong
*/
function prepare($args)
{
common_debug("apisearchjson prepare()");
@ -100,7 +98,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -112,10 +109,8 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
*
* @return void
*/
function showResults()
{
// TODO: Support search operators like from: and to:, boolean, etc.
$notice = new Notice();
@ -146,7 +141,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;

View File

@ -55,7 +55,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusesDestroyAction extends ApiAuthAction
{
var $status = null;
@ -66,9 +65,7 @@ class ApiStatusesDestroyAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -94,13 +91,13 @@ class ApiStatusesDestroyAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(
// TRANS: Client error displayed trying to execute an unknown API method deleting a status.
_('API method not found.'),
404
);
@ -109,6 +106,8 @@ class ApiStatusesDestroyAction extends ApiAuthAction
if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) {
$this->clientError(
// TRANS: Client error displayed trying to delete a status not using POST or DELETE.
// TRANS: POST and DELETE should not be translated.
_('This method requires a POST or DELETE.'),
400,
$this->format
@ -118,6 +117,7 @@ class ApiStatusesDestroyAction extends ApiAuthAction
if (empty($this->notice)) {
$this->clientError(
// TRANS: Client error displayed trying to delete a status with an invalid ID.
_('No status found with that ID.'),
404, $this->format
);
@ -132,6 +132,7 @@ class ApiStatusesDestroyAction extends ApiAuthAction
$this->showNotice();
} else {
$this->clientError(
// TRANS: Client error displayed trying to delete a status of another user.
_('You may not delete another user\'s status.'),
403,
$this->format
@ -144,7 +145,6 @@ class ApiStatusesDestroyAction extends ApiAuthAction
*
* @return void
*/
function showNotice()
{
if (!empty($this->notice)) {
@ -155,5 +155,4 @@ class ApiStatusesDestroyAction extends ApiAuthAction
}
}
}
}

View File

@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusesRetweetAction extends ApiAuthAction
{
var $original = null;
@ -54,9 +53,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -73,6 +70,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction
$this->original = Notice::staticGet('id', $id);
if (empty($this->original)) {
// TRANS: Client error displayed trying to repeat a non-existing notice through the API.
$this->clientError(_('No such notice.'),
400, $this->format);
return false;
@ -81,6 +79,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction
$this->user = $this->auth_user;
if ($this->user->id == $this->original->profile_id) {
// TRANS: Client error displayed trying to repeat an own notice through the API.
$this->clientError(_('Cannot repeat your own notice.'),
400, $this->format);
return false;
@ -89,6 +88,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction
$profile = $this->user->getProfile();
if ($profile->hasRepeated($id)) {
// TRANS: Client error displayed trying to re-repeat a notice through the API.
$this->clientError(_('Already repeated that notice.'),
400, $this->format);
return false;
@ -106,15 +106,12 @@ class ApiStatusesRetweetAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
$repeat = $this->original->repeat($this->user->id, $this->source);
$this->showNotice($repeat);
}
@ -123,7 +120,6 @@ class ApiStatusesRetweetAction extends ApiAuthAction
*
* @return void
*/
function showNotice($notice)
{
if (!empty($notice)) {

View File

@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusesRetweetsAction extends ApiAuthAction
{
const MAXCOUNT = 100;
@ -57,9 +56,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -69,6 +66,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction
$this->original = Notice::staticGet('id', $id);
if (empty($this->original)) {
// TRANS: Client error displayed trying to display redents of a non-exiting notice.
$this->clientError(_('No such notice.'),
400, $this->format);
return false;
@ -94,7 +92,6 @@ class ApiStatusesRetweetsAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -109,6 +106,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction
$this->showJsonTimeline($strm);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}

View File

@ -55,10 +55,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusesShowAction extends ApiPrivateAuthAction
{
var $notice_id = null;
var $notice = null;
@ -68,9 +66,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -100,12 +96,12 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
return;
}
@ -118,7 +114,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
*
* @return void
*/
function showNotice()
{
if (!empty($this->notice)) {
@ -128,7 +123,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
$this->show_single_json_status($this->notice);
}
} else {
// XXX: Twitter just sets a 404 header and doens't bother
// to return an err msg
@ -136,12 +130,14 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
if (!empty($deleted)) {
$this->clientError(
// TRANS: Client error displayed requesting a deleted status.
_('Status deleted.'),
410,
$this->format
);
} else {
$this->clientError(
// TRANS: Client error displayed requesting a status with an invalid ID.
_('No status with that ID found.'),
404,
$this->format
@ -157,7 +153,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -168,7 +163,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notice)) {
@ -186,7 +180,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notice)) {
@ -204,5 +197,4 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -160,7 +160,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
@ -227,6 +226,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction
}
if (empty($this->auth_user)) {
// TRANS: Client error displayed when updating a status for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -234,7 +234,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction
$status_shortened = common_shorten_links($this->status);
if (Notice::contentTooLong($status_shortened)) {
// Note: Twitter truncates anything over 140, flags the status
// as "truncated."
@ -304,6 +303,8 @@ class ApiStatusesUpdateAction extends ApiAuthAction
if (Notice::contentTooLong($status_shortened)) {
$upload->delete();
// TRANS: Client error displayed exceeding the maximum notice length.
// TRANS: %d is the maximum lenth for a notice.
$msg = _m('Maximum notice size is %d character, including attachment URL.',
'Maximum notice size is %d characters, including attachment URL.',
Notice::maxContent());

View File

@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusnetConfigAction extends ApiAction
{
var $keys = array(
@ -69,9 +68,7 @@ class ApiStatusnetConfigAction extends ApiAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -85,7 +82,6 @@ class ApiStatusnetConfigAction extends ApiAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -138,6 +134,7 @@ class ApiStatusnetConfigAction extends ApiAction
break;
default:
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -155,11 +152,8 @@ class ApiStatusnetConfigAction extends ApiAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -47,7 +47,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiStatusnetVersionAction extends ApiPrivateAuthAction
{
/**
@ -58,7 +57,6 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -72,7 +70,6 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -90,6 +87,7 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction
break;
default:
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -107,11 +105,8 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiSubscriptionsAction extends ApiBareAuthAction
{
var $profiles = null;
@ -62,9 +61,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -84,6 +81,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed when requesting a list of followers for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return false;
}
@ -102,12 +100,12 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
return;
}
@ -128,7 +126,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return array Profiles
*/
function getProfiles()
{
}
@ -140,7 +137,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -151,7 +147,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return string datestamp of the latest profile in the stream
*/
function lastModified()
{
if (!empty($this->profiles) && (count($this->profiles) > 0)) {
@ -171,7 +166,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->profiles) && (count($this->profiles) > 0)) {
@ -184,6 +178,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
common_user_cache_hash($this->auth_user),
common_language(),
$this->user->id,
// Caching tags.
isset($this->ids_only) ? 'IDs' : 'Profiles',
strtotime($this->profiles[0]->created),
strtotime($this->profiles[$last]->created))
@ -202,7 +197,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return void
*/
function showProfiles($include_statuses = true)
{
switch ($this->format) {
@ -230,6 +224,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
print json_encode($arrays);
break;
default:
// TRANS: Client error displayed when requesting profiles of followers in an unsupported format.
$this->clientError(_('Unsupported format.'));
break;
}
@ -241,7 +236,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
*
* @return void
*/
function showIds()
{
switch ($this->format) {
@ -260,9 +254,9 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
print json_encode($ids);
break;
default:
// TRANS: Client error displayed when requesting IDs of followers in an unsupported format.
$this->clientError(_('Unsupported format.'));
break;
}
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineFavoritesAction extends ApiBareAuthAction
{
var $notices = null;
@ -59,9 +58,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -69,6 +66,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -87,7 +85,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -99,7 +96,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return void
*/
function showTimeline()
{
$profile = $this->user->getProfile();
@ -107,6 +103,8 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
$sitename = common_config('site', 'name');
$title = sprintf(
// TRANS: Title for timeline of most recent favourite notices by a user.
// TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname.
_('%1$s / Favorites from %2$s'),
$sitename,
$this->user->nickname
@ -116,7 +114,10 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
$id = "tag:$taguribase:Favorites:" . $this->user->id;
$subtitle = sprintf(
_('%1$s updates favorited by %2$s / %2$s.'),
// TRANS: Subtitle for timeline of most recent favourite notices by a user.
// TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name,
// TRANS: %3$s is a user nickname.
_('%1$s updates favorited by %2$s / %3$s.'),
$sitename,
$profile->getBestName(),
$this->user->nickname
@ -148,7 +149,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$atom = new AtomNoticeFeed($this->auth_user);
@ -165,12 +165,12 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
$atom->addEntryFromNotices($this->notices);
$this->raw($atom->getString());
break;
case 'json':
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -181,7 +181,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -220,7 +219,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -231,7 +229,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -249,7 +246,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -270,5 +266,4 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
return null;
}
}

View File

@ -151,7 +151,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineFriendsAction extends ApiBareAuthAction
{
var $notices = null;
@ -164,13 +163,13 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -189,7 +188,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -201,7 +199,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return void
*/
function showTimeline()
{
$profile = $this->user->getProfile();
@ -246,7 +243,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$atom = new AtomNoticeFeed($this->auth_user);
@ -268,6 +264,7 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -278,7 +275,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -307,7 +303,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -318,7 +313,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -336,11 +330,9 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
$last = count($this->notices) - 1;
return '"' . implode(
@ -357,5 +349,4 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
return null;
}
}

View File

@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineGroupAction extends ApiPrivateAuthAction
{
var $group = null;
var $notices = null;
@ -64,7 +62,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -83,12 +80,12 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (empty($this->group)) {
// TRANS: Client error displayed requesting most recent notices to a group for a non-existing group.
$this->clientError(_('Group not found.'), 404, $this->format);
return false;
}
@ -102,7 +99,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return void
*/
function showTimeline()
{
// We'll pull common formatting out of this for other formats
@ -126,7 +122,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
try {
@ -138,19 +133,21 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
$this->raw($atom->getString());
} catch (Atom10FeedException $e) {
$this->serverError(
'Could not generate feed for group - ' . $e->getMessage(),
// TRANS: Server error displayed when generating an Atom feed fails.
// TRANS: %s is the error.
sprintf(_('Could not generate feed for group - %s'),$e->getMessage()),
400,
$this->format
);
return;
}
break;
case 'json':
$this->showJsonTimeline($this->notices);
break;
default:
$this->clientError(
// TRANS: Client error displayed when trying to handle an unknown API method.
_('API method not found.'),
404,
$this->format
@ -164,7 +161,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -190,7 +186,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -201,7 +196,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -219,7 +213,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -240,5 +233,4 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -56,7 +56,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineHomeAction extends ApiBareAuthAction
{
var $notices = null;
@ -67,9 +66,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -77,6 +74,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -95,7 +93,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -107,12 +104,12 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return void
*/
function showTimeline()
{
$profile = $this->user->getProfile();
$avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
$sitename = common_config('site', 'name');
// TRANS: Timeline title for user and friends. %s is a user nickname.
$title = sprintf(_("%s and friends"), $this->user->nickname);
$taguribase = TagURI::base();
$id = "tag:$taguribase:HomeTimeline:" . $this->user->id;
@ -172,6 +169,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -182,7 +180,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -215,7 +212,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -226,7 +222,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -244,7 +239,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -265,5 +259,4 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
return null;
}
}

View File

@ -55,10 +55,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineMentionsAction extends ApiBareAuthAction
{
var $notices = null;
/**
@ -67,9 +65,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -77,6 +73,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed when requesting most recent mentions for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -95,7 +92,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -107,7 +103,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return void
*/
function showTimeline()
{
$profile = $this->user->getProfile();
@ -115,6 +110,8 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
$sitename = common_config('site', 'name');
$title = sprintf(
// TRANS: Title for timeline of most recent mentions of a user.
// TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname.
_('%1$s / Updates mentioning %2$s'),
$sitename, $this->user->nickname
);
@ -128,6 +125,9 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
$self = $this->getSelfUri();
$subtitle = sprintf(
// TRANS: Subtitle for timeline of most recent mentions of a user.
// TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname,
// TRANS: %3$s is a user's full name.
_('%1$s updates that reply to updates from %2$s / %3$s.'),
$sitename, $this->user->nickname, $profile->getBestName()
);
@ -149,7 +149,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$atom = new AtomNoticeFeed($this->auth_user);
@ -171,6 +170,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -181,7 +181,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -205,7 +204,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -216,7 +214,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -234,7 +231,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -255,5 +251,4 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
return null;
}
}

View File

@ -144,10 +144,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
</statuses>
@endverbatim
*/
class ApiTimelinePublicAction extends ApiPrivateAuthAction
{
var $notices = null;
/**
@ -158,7 +156,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -177,7 +174,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -189,16 +185,17 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return void
*/
function showTimeline()
{
$sitename = common_config('site', 'name');
$sitelogo = (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png');
// TRANS: Title for site timeline. %s is the StatusNet sitename.
$title = sprintf(_("%s public timeline"), $sitename);
$taguribase = TagURI::base();
$id = "tag:$taguribase:PublicTimeline";
$link = common_local_url('public');
$self = $this->getSelfUri();
// TRANS: Subtitle for site timeline. %s is the StatusNet sitename.
$subtitle = sprintf(_("%s updates from everyone!"), $sitename);
switch($this->format) {
@ -238,6 +235,7 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -248,7 +246,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -272,7 +269,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -283,7 +279,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -301,7 +296,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -321,5 +315,4 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineRetweetedByMeAction extends ApiAuthAction
{
const DEFAULTCOUNT = 20;
@ -64,12 +63,12 @@ class ApiTimelineRetweetedByMeAction extends ApiAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
$this->serverError('Unimplemented.', 503);
// TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'.
$this->serverError(_('Unimplemented.'), 503);
return false;
}
@ -81,7 +80,6 @@ class ApiTimelineRetweetedByMeAction extends ApiAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;

View File

@ -42,7 +42,6 @@ require_once INSTALLDIR . '/lib/apiauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineRetweetedToMeAction extends ApiAuthAction
{
const DEFAULTCOUNT = 20;
@ -61,9 +60,7 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -88,7 +85,6 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -108,6 +104,7 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
case 'atom':
$profile = $this->auth_user->getProfile();
// TRANS: Title for Atom feed "repeated to me". %s is the user nickname.
$title = sprintf(_("Repeated to %s"), $this->auth_user->nickname);
$taguribase = TagURI::base();
$id = "tag:$taguribase:RepeatedToMe:" . $this->auth_user->id;
@ -116,8 +113,8 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
$this->showAtomTimeline($strm, $title, $id, $link);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -132,7 +129,6 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;

View File

@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
{
const DEFAULTCOUNT = 20;
@ -62,9 +61,7 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -89,7 +86,6 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -111,6 +107,8 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
case 'atom':
$profile = $this->auth_user->getProfile();
// TRANS: Title of list of repeated notices of the logged in user.
// TRANS: %s is the nickname of the logged in user.
$title = sprintf(_("Repeats of %s"), $this->auth_user->nickname);
$taguribase = TagURI::base();
$id = "tag:$taguribase:RepeatsOfMe:" . $this->auth_user->id;
@ -147,8 +145,8 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
$this->raw($atom->getString());
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -163,7 +161,6 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;

View File

@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineTagAction extends ApiPrivateAuthAction
{
var $notices = null;
/**
@ -61,9 +59,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -85,7 +81,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -97,13 +92,16 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return void
*/
function showTimeline()
{
$sitename = common_config('site', 'name');
$sitelogo = (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png');
// TRANS: Title for timeline with lastest notices with a given tag.
// TRANS: %s is the tag.
$title = sprintf(_("Notices tagged with %s"), $this->tag);
$subtitle = sprintf(
// TRANS: Subtitle for timeline with lastest notices with a given tag.
// TRANS: %1$s is the tag, $2$s is the StatusNet sitename.
_('Updates tagged with %1$s on %2$s!'),
$this->tag,
$sitename
@ -136,7 +134,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$atom = new AtomNoticeFeed($this->auth_user);
@ -158,6 +155,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
@ -168,7 +166,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -193,7 +190,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -204,7 +200,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -222,7 +217,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -243,5 +237,4 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
return null;
}
}

View File

@ -57,10 +57,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiTimelineUserAction extends ApiBareAuthAction
{
var $notices = null;
/**
@ -69,9 +67,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
* @param array $args $_REQUEST args
*
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -79,6 +75,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
$this->user = $this->getTargetUser($this->arg('id'));
if (empty($this->user)) {
// TRANS: Client error displayed requesting most recent notices for a non-existing user.
$this->clientError(_('No such user.'), 404, $this->format);
return;
}
@ -97,7 +94,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -109,7 +105,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return void
*/
function showTimeline()
{
$profile = $this->user->getProfile();
@ -147,7 +142,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
);
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$atom->setId($self);
@ -160,10 +154,10 @@ class ApiTimelineUserAction extends ApiBareAuthAction
$this->showJsonTimeline($this->notices);
break;
default:
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
break;
}
}
/**
@ -171,7 +165,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return array notices
*/
function getNotices()
{
$notices = array();
@ -195,7 +188,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return boolean true
*/
function isReadOnly($args)
{
return true;
@ -206,7 +198,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return string datestamp of the latest notice in the stream
*/
function lastModified()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
@ -224,11 +215,9 @@ class ApiTimelineUserAction extends ApiBareAuthAction
*
* @return string etag
*/
function etag()
{
if (!empty($this->notices) && (count($this->notices) > 0)) {
$last = count($this->notices) - 1;
return '"' . implode(
@ -245,5 +234,4 @@ class ApiTimelineUserAction extends ApiBareAuthAction
return null;
}
}

View File

@ -44,10 +44,8 @@ require_once INSTALLDIR.'/lib/apiprivateauth.php';
*
* @see ApiAction
*/
class ApiTrendsAction extends ApiPrivateAuthAction
{
var $callback;
/**
@ -70,7 +68,6 @@ class ApiTrendsAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
@ -84,7 +81,7 @@ class ApiTrendsAction extends ApiPrivateAuthAction
*/
function showTrends()
{
// TRANS: Server error for unfinished API method showTrends.
$this->serverError(_('API method under construction.'), 501);
}
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiUserFollowersAction extends ApiSubscriptionsAction
{
/**
@ -56,7 +55,6 @@ class ApiUserFollowersAction extends ApiSubscriptionsAction
*
* @return array Profiles
*/
function getProfiles()
{
$offset = ($this->page - 1) * $this->count;
@ -85,5 +83,4 @@ class ApiUserFollowersAction extends ApiSubscriptionsAction
return $profiles;
}
}

View File

@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiUserFriendsAction extends ApiSubscriptionsAction
{
/**
@ -56,7 +55,6 @@ class ApiUserFriendsAction extends ApiSubscriptionsAction
*
* @return array Profiles
*/
function getProfiles()
{
$offset = ($this->page - 1) * $this->count;
@ -85,5 +83,4 @@ class ApiUserFriendsAction extends ApiSubscriptionsAction
return $profiles;
}
}

View File

@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiUserShowAction extends ApiPrivateAuthAction
{
/**
@ -60,7 +59,6 @@ class ApiUserShowAction extends ApiPrivateAuthAction
* @return boolean success flag
*
*/
function prepare($args)
{
parent::prepare($args);
@ -87,17 +85,18 @@ class ApiUserShowAction extends ApiPrivateAuthAction
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if (empty($this->user)) {
$this->clientError(_('Not found.'), 404, $this->format);
// TRANS: Client error displayed when requesting user information for a non-existing user.
$this->clientError(_('User not found.'), 404, $this->format);
return;
}
if (!in_array($this->format, array('xml', 'json'))) {
// TRANS: Client error displayed when trying to handle an unknown API method.
$this->clientError(_('API method not found.'), $code = 404);
return;
}
@ -105,6 +104,7 @@ class ApiUserShowAction extends ApiPrivateAuthAction
$profile = $this->user->getProfile();
if (empty($profile)) {
// TRANS: Client error displayed when requesting user information for a user without a profile.
$this->clientError(_('User has no profile.'));
return;
}
@ -120,7 +120,6 @@ class ApiUserShowAction extends ApiPrivateAuthAction
$this->showJsonObjects($twitter_user);
$this->endDocument('json');
}
}
/**
@ -132,10 +131,8 @@ class ApiUserShowAction extends ApiPrivateAuthAction
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@ -142,7 +142,12 @@ class NewgroupAction extends Action
$this->showForm(_('Full name is too long (maximum 255 characters).'));
return;
} else if (User_group::descriptionTooLong($description)) {
$this->showForm(sprintf(_('description is too long (max %d chars).'), User_group::maxDescription()));
// TRANS: Form validation error creating a new group because the description is too long.
// TRANS: %d is the maximum number of allowed characters.
$this->showForm(sprintf(_m('Description is too long (maximum %d character).',
'Description is too long (maximum %d characters).',
User_group::maxDescription(),
User_group::maxDescription()));
return;
} else if (!is_null($location) && mb_strlen($location) > 255) {
$this->showForm(_('Location is too long (maximum 255 characters).'));
@ -156,7 +161,11 @@ class NewgroupAction extends Action
}
if (count($aliases) > common_config('group', 'maxaliases')) {
$this->showForm(sprintf(_('Too many aliases! Maximum %d.'),
// TRANS: Client error shown when providing too many aliases during group creation.
// TRANS: %d is the maximum number of allowed aliases.
$this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.',
'Too many aliases! Maximum %d allowed.',
common_config('group', 'maxaliases')),
common_config('group', 'maxaliases')));
return;
}

View File

@ -298,12 +298,12 @@ class ShowgroupAction extends GroupDesignAction
$this->elementEnd('div');
$cur = common_current_user();
$this->elementStart('div', 'entity_actions');
$this->element('h2', null, _('Group actions'));
$this->elementStart('ul');
$this->elementStart('li', 'entity_subscribe');
if (Event::handle('StartGroupSubscribe', array($this, $this->group))) {
$cur = common_current_user();
if ($cur) {
if ($cur->isMember($this->group)) {
$lf = new LeaveForm($this, $this->group);
@ -316,7 +316,7 @@ class ShowgroupAction extends GroupDesignAction
Event::handle('EndGroupSubscribe', array($this, $this->group));
}
$this->elementEnd('li');
if ($cur->hasRight(Right::DELETEGROUP)) {
if ($cur && $cur->hasRight(Right::DELETEGROUP)) {
$this->elementStart('li', 'entity_delete');
$df = new DeleteGroupForm($this, $this->group);
$df->show();

View File

@ -884,13 +884,23 @@ class User extends Memcached_DataObject
static function singleUser()
{
if (common_config('singleuser', 'enabled')) {
$user = null;
$nickname = common_config('singleuser', 'nickname');
if ($nickname) {
if (!empty($nickname)) {
$user = User::staticGet('nickname', $nickname);
} else {
}
// if there was no nickname or no user by that nickname,
// try the site owner.
if (empty($user)) {
$user = User::siteOwner();
}
if ($user) {
if (!empty($user)) {
return $user;
} else {
// TRANS: Server exception.

View File

@ -34,7 +34,7 @@ VALUES
('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()),
('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()),
('moconica','Moconica','http://moconica.com/', now()),
('mustard', 'MuSTArDroid', 'https://launchpad.net/mustardroid', now()),
('mustard', 'mustard', 'http://mustard.macno.org', now()),
('nambu','Nambu','http://www.nambu.com/', now()),
('peoplebrowsr', 'PeopleBrowsr', 'http://www.peoplebrowsr.com/', now()),
('Pikchur','Pikchur','http://www.pikchur.com/', now()),

View File

@ -302,6 +302,7 @@ $default =
'WikiHashtags' => null,
'RSSCloud' => null,
'ClientSideShorten' => null,
'StrictTransportSecurity' => null,
'OpenID' => null),
'locale_path' => false, // Set to a path to use *instead of* each plugin's own locale subdirectories
),

View File

@ -27,7 +27,14 @@ function ping_broadcast_notice($notice) {
# Array of servers, URL => type
$notify = common_config('ping', 'notify');
$profile = $notice->getProfile();
try {
$profile = $notice->getProfile();
} catch (Exception $e) {
// @todo: distinguish the 'broken notice/profile' case from more general
// transitory errors.
common_log(LOG_ERR, "Exception getting notice profile: " . $e->getMessage());
return true;
}
$tags = ping_notice_tags($notice);
foreach ($notify as $notify_url => $type) {

View File

@ -342,7 +342,8 @@ function common_set_cookie($key, $value, $expiration=0)
$value,
$expiration,
$cookiepath,
$server);
$server,
common_config('site', 'ssl')=='always');
}
define('REMEMBERME', 'rememberme');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More