summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-10-22 12:10:11 -0700
committerBrion Vibber <brion@pobox.com>2010-10-22 12:10:11 -0700
commite292d8fb65305e4cffa3d0e15fefdcd5631bd24b (patch)
treef101b4d2c89bc431dc75b8010a3d9e4e1920c56a
parent6841a8d09389e6ce0612b63ce831d149e559d254 (diff)
Fix for 140-char replies being unexpectedly cropped when bridged to Twitter.
This drops the '@' -> ' @' hack for CURL meta-chars in outgoing Twitter bridge, added in commit 04b95c25 back in the day. The Twitter bridge has since been switched from using direct CURL calls to using HTTPClient, which even with the CURL backend enabled doesn't trigger this issue, as POST parameters are formatted directly. Prepending the space before we did the message cropping was leading to 140-char messages getting cropped unnecessarily, which was confusing: Examples of broken messages: http://identi.ca/notice/57172587 vs http://twitter.com/marjoleink/status/28398050691 http://identi.ca/notice/57172878 vs http://twitter.com/marjoleink/status/28398492563
-rw-r--r--plugins/TwitterBridge/twitter.php7
1 files changed, 3 insertions, 4 deletions
diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php
index f913e4aea..cd1ad70b9 100644
--- a/plugins/TwitterBridge/twitter.php
+++ b/plugins/TwitterBridge/twitter.php
@@ -282,15 +282,14 @@ function process_error($e, $flink, $notice)
function format_status($notice)
{
- // XXX: Hack to get around PHP cURL's use of @ being a a meta character
- $statustxt = preg_replace('/^@/', ' @', $notice->content);
+ // Start with the plaintext source of this notice...
+ $statustxt = $notice->content;
// Convert !groups to #hashes
-
// XXX: Make this an optional setting?
-
$statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt);
+ // Twitter still has a 140-char hardcoded max.
if (mb_strlen($statustxt) > 140) {
$noticeUrl = common_shorten_url($notice->uri);
$urlLen = mb_strlen($noticeUrl);