Fixed problems with images where the address contains special chars

This commit is contained in:
Michael Vogel 2012-07-08 18:29:31 +02:00
parent 129fff8fc1
commit 56fd821c7e
4 changed files with 16 additions and 5 deletions

View file

@ -1004,6 +1004,10 @@ function facebook_post_hook(&$a,&$b) {
if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches))
$image = $matches[1];
// When saved into the database the content is sent through htmlspecialchars
// That means that we have to decode all image-urls
$image = htmlspecialchars_decode($image);
// Checking for a bookmark element
$body = $b['body'];
if (strpos($body, "[bookmark") !== false) {
@ -1110,10 +1114,10 @@ function facebook_post_hook(&$a,&$b) {
'access_token' => $fb_token,
'message' => $msg
);
if(isset($image)) {
if(trim($image) != "") {
$postvars['picture'] = $image;
}
if(isset($link)) {
if(trim($link) != "") {
$postvars['link'] = $link;
// The following doesn't work - why?
@ -1121,7 +1125,7 @@ function facebook_post_hook(&$a,&$b) {
$postvars['source'] = $link;
}
}
if(isset($linkname))
if(trim($linkname) != "")
$postvars['name'] = $linkname;
}

View file

@ -127,7 +127,7 @@ function privacy_image_cache_img_cb($matches) {
if (privacy_image_cache_is_local_image($matches[2]))
return $matches[1] . $matches[2] . $matches[3];
return $matches[1] . get_app()->get_baseurl() . "/privacy_image_cache/?url=" . escape_tags(addslashes(rawurlencode($matches[2]))) . $matches[3];
return $matches[1] . get_app()->get_baseurl() . "/privacy_image_cache/?url=" . addslashes(rawurlencode(htmlspecialchars_decode($matches[2]))) . $matches[3];
}
/**

View file

@ -503,10 +503,14 @@ function statusnet_post_hook(&$a,&$b) {
$msg = implode(' ', $e);
$msg .= '... ' . $shortlink;
}
$msg = trim($msg);
// and now dent it :-)
if(strlen($msg)) {
$result = $dent->post('statuses/update', array('status' => $msg));
logger('statusnet_post send, result: ' . print_r($result, true), LOGGER_DEBUG);
logger('statusnet_post send, result: ' . print_r($result, true).
"\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b));
if ($result->error) {
logger('Send to StatusNet failed: "' . $result->error . '"');
}

View file

@ -367,6 +367,9 @@ function twitter_post_hook(&$a,&$b) {
$msg = implode(' ', $e);
$msg .= '... ' . $shortlink;
}
$msg = trim($msg);
// and now tweet it :-)
if(strlen($msg)) {
$result = $tweet->post('statuses/update', array('status' => $msg));