Twitter-compatible API - properly encode and decode UTF-8 HTML entities

darcs-hash:20081103211653-462f3-58a0ad41ab0426c21aceb04b4a91dc52559018d0.gz
This commit is contained in:
zach 2008-11-03 16:16:53 -05:00
parent 854e208c05
commit 485247e901
2 changed files with 5 additions and 8 deletions

View File

@ -193,10 +193,10 @@ class TwitapistatusesAction extends TwitterapiAction {
# FriendFeed's SUP protocol # FriendFeed's SUP protocol
# Also added RSS and Atom feeds # Also added RSS and Atom feeds
$suplink = common_local_url('sup', NULL, $user->id); $suplink = common_local_url('sup', NULL, $user->id);
header('X-SUP-ID: '.$suplink); header('X-SUP-ID: '.$suplink);
# XXX: since # XXX: since
$notice = $user->getNotices((($page-1)*20), $count, $since_id, $before_id); $notice = $user->getNotices((($page-1)*20), $count, $since_id, $before_id);
@ -234,10 +234,6 @@ class TwitapistatusesAction extends TwitterapiAction {
return; return;
} }
foreach ($_POST as $p => $v) {
common_debug("_POST: $p = $v");
}
$this->auth_user = $apidata['user']; $this->auth_user = $apidata['user'];
$user = $this->auth_user; $user = $this->auth_user;
$status = $this->trimmed('status'); $status = $this->trimmed('status');
@ -298,7 +294,8 @@ class TwitapistatusesAction extends TwitterapiAction {
} }
} }
$notice = Notice::saveNew($user->id, $status, $source, 1, $reply_to); $notice = Notice::saveNew($user->id, html_entity_decode($status, ENT_NOQUOTES, 'UTF-8'),
$source, 1, $reply_to);
if (is_string($notice)) { if (is_string($notice)) {
$this->server_error($notice); $this->server_error($notice);

View File

@ -708,7 +708,7 @@ function common_render_content($text, $notice) {
} }
function common_render_text($text) { function common_render_text($text) {
$r = htmlspecialchars($text); $r = htmlentities($text, ENT_NOQUOTES, 'UTF-8');
$r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r); $r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
$r = preg_replace_callback('@https?://[^\]>\s]+@', 'common_render_uri_thingy', $r); $r = preg_replace_callback('@https?://[^\]>\s]+@', 'common_render_uri_thingy', $r);