Code cleaning. Do call shortenLinks only once, right before saving new notice.
This commit is contained in:
parent
344a10be8b
commit
58a2630933
|
@ -231,32 +231,12 @@ class ApiStatusesUpdateAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$status_shortened = $this->auth_user->shortenlinks($this->status);
|
/* Do not call shortenlinks until the whole notice has been build */
|
||||||
|
|
||||||
if (Notice::contentTooLong($status_shortened)) {
|
|
||||||
// Note: Twitter truncates anything over 140, flags the status
|
|
||||||
// as "truncated."
|
|
||||||
|
|
||||||
$this->clientError(
|
|
||||||
sprintf(
|
|
||||||
// TRANS: Client error displayed exceeding the maximum notice length.
|
|
||||||
// TRANS: %d is the maximum length for a notice.
|
|
||||||
_m('That\'s too long. Maximum notice size is %d character.',
|
|
||||||
'That\'s too long. Maximum notice size is %d characters.',
|
|
||||||
Notice::maxContent()),
|
|
||||||
Notice::maxContent()
|
|
||||||
),
|
|
||||||
406,
|
|
||||||
$this->format
|
|
||||||
);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for commands
|
// Check for commands
|
||||||
|
|
||||||
$inter = new CommandInterpreter();
|
$inter = new CommandInterpreter();
|
||||||
$cmd = $inter->handle_command($this->auth_user, $status_shortened);
|
$cmd = $inter->handle_command($this->auth_user, $this->status);
|
||||||
|
|
||||||
if ($cmd) {
|
if ($cmd) {
|
||||||
if ($this->supported($cmd)) {
|
if ($this->supported($cmd)) {
|
||||||
|
@ -299,24 +279,32 @@ class ApiStatusesUpdateAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($upload)) {
|
if (isset($upload)) {
|
||||||
$status_shortened .= ' ' . $upload->shortUrl();
|
$this->status .= ' ' . $upload->shortUrl();
|
||||||
|
|
||||||
|
/* Do not call shortenlinks until the whole notice has been build */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Do call shortenlinks here & check notice length since notice is about to be saved & sent */
|
||||||
$status_shortened = $this->auth_user->shortenlinks($status_shortened);
|
$status_shortened = $this->auth_user->shortenlinks($status_shortened);
|
||||||
|
|
||||||
if (Notice::contentTooLong($status_shortened)) {
|
if (Notice::contentTooLong($status_shortened)) {
|
||||||
|
if (isset($upload)) {
|
||||||
$upload->delete();
|
$upload->delete();
|
||||||
|
}
|
||||||
// TRANS: Client error displayed exceeding the maximum notice length.
|
// TRANS: Client error displayed exceeding the maximum notice length.
|
||||||
// TRANS: %d is the maximum lenth for a notice.
|
// TRANS: %d is the maximum lenth for a notice.
|
||||||
$msg = _m('Maximum notice size is %d character, including attachment URL.',
|
$msg = _m('Maximum notice size is %d character, including attachment URL.',
|
||||||
'Maximum notice size is %d characters, including attachment URL.',
|
'Maximum notice size is %d characters, including attachment URL.',
|
||||||
Notice::maxContent());
|
Notice::maxContent());
|
||||||
$this->clientError(
|
/* Use HTTP 413 error code (Request Entity Too Large)
|
||||||
sprintf($msg, Notice::maxContent()),
|
* instead of basic 400 for better understanding
|
||||||
400,
|
*/
|
||||||
$this->format
|
$this->clientError(sprintf($msg, Notice::maxContent()),
|
||||||
);
|
413,
|
||||||
}
|
$this->format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8');
|
$content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8');
|
||||||
|
|
||||||
$options = array('reply_to' => $reply_to);
|
$options = array('reply_to' => $reply_to);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user