Merge pull request #68 from annando/master
facebook, libertree, privacy_image_cache, statusnet, twitter and tumblr ...
This commit is contained in:
commit
f0397d5237
6 changed files with 104 additions and 31 deletions
|
@ -418,7 +418,7 @@ function fb_get_friends($uid, $fullsync = true) {
|
||||||
return;
|
return;
|
||||||
$s = fetch_url('https://graph.facebook.com/me/friends?access_token=' . $access_token);
|
$s = fetch_url('https://graph.facebook.com/me/friends?access_token=' . $access_token);
|
||||||
if($s) {
|
if($s) {
|
||||||
logger('facebook: fb_get_friends: ' . $s, LOGGER_DATA);
|
logger('facebook: fb_gwet_friends: ' . $s, LOGGER_DATA);
|
||||||
$j = json_decode($s);
|
$j = json_decode($s);
|
||||||
logger('facebook: fb_get_friends: json: ' . print_r($j,true), LOGGER_DATA);
|
logger('facebook: fb_get_friends: json: ' . print_r($j,true), LOGGER_DATA);
|
||||||
if(! $j->data)
|
if(! $j->data)
|
||||||
|
@ -1006,6 +1006,10 @@ function facebook_post_hook(&$a,&$b) {
|
||||||
if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches))
|
if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches))
|
||||||
$image = $matches[1];
|
$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
|
// Checking for a bookmark element
|
||||||
$body = $b['body'];
|
$body = $b['body'];
|
||||||
if (strpos($body, "[bookmark") !== false) {
|
if (strpos($body, "[bookmark") !== false) {
|
||||||
|
@ -1088,38 +1092,42 @@ function facebook_post_hook(&$a,&$b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback - if message is empty
|
// Fallback - if message is empty
|
||||||
|
if(!strlen($msg))
|
||||||
|
$msg = $linkname;
|
||||||
|
|
||||||
if(!strlen($msg))
|
if(!strlen($msg))
|
||||||
$msg = $link;
|
$msg = $link;
|
||||||
|
|
||||||
if(!strlen($msg))
|
if(!strlen($msg))
|
||||||
$msg = $image;
|
$msg = $image;
|
||||||
|
|
||||||
if(!strlen($msg))
|
|
||||||
$msg = $linkname;
|
|
||||||
|
|
||||||
// If there is nothing to post then exit
|
// If there is nothing to post then exit
|
||||||
if(!strlen($msg))
|
if(!strlen($msg))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
logger('Facebook post: msg=' . $msg, LOGGER_DATA);
|
logger('Facebook post: msg=' . $msg, LOGGER_DATA);
|
||||||
|
|
||||||
if($likes) {
|
if($likes) {
|
||||||
$postvars = array('access_token' => $fb_token);
|
$postvars = array('access_token' => $fb_token);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// message, picture, link, name, caption, description, source, place, tags
|
||||||
$postvars = array(
|
$postvars = array(
|
||||||
'access_token' => $fb_token,
|
'access_token' => $fb_token,
|
||||||
'message' => $msg
|
'message' => $msg
|
||||||
);
|
);
|
||||||
if(isset($image)) {
|
if(trim($image) != "") {
|
||||||
$postvars['picture'] = $image;
|
$postvars['picture'] = $image;
|
||||||
//$postvars['type'] = "photo";
|
|
||||||
}
|
}
|
||||||
if(isset($link)) {
|
if(trim($link) != "") {
|
||||||
$postvars['link'] = $link;
|
$postvars['link'] = $link;
|
||||||
//$postvars['type'] = "link";
|
|
||||||
|
// The following doesn't work - why?
|
||||||
|
if ((stristr($link,'youtube')) || (stristr($link,'youtu.be')) || (stristr($link,'vimeo'))) {
|
||||||
|
$postvars['source'] = $link;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(isset($linkname))
|
if(trim($linkname) != "")
|
||||||
$postvars['name'] = $linkname;
|
$postvars['name'] = $linkname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1135,7 +1143,7 @@ function facebook_post_hook(&$a,&$b) {
|
||||||
|
|
||||||
if($reply) {
|
if($reply) {
|
||||||
$url = 'https://graph.facebook.com/' . $reply . '/' . (($likes) ? 'likes' : 'comments');
|
$url = 'https://graph.facebook.com/' . $reply . '/' . (($likes) ? 'likes' : 'comments');
|
||||||
} else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500)) {
|
} else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500)) {
|
||||||
$url = 'https://graph.facebook.com/me/feed';
|
$url = 'https://graph.facebook.com/me/feed';
|
||||||
if($b['plink'])
|
if($b['plink'])
|
||||||
$postvars['actions'] = '{"name": "' . t('View on Friendica') . '", "link": "' . $b['plink'] . '"}';
|
$postvars['actions'] = '{"name": "' . t('View on Friendica') . '", "link": "' . $b['plink'] . '"}';
|
||||||
|
@ -1780,7 +1788,7 @@ function fb_consume_stream($uid,$j,$wall = false) {
|
||||||
// oembed display a picture of the video as well
|
// oembed display a picture of the video as well
|
||||||
if ($entry->type != "video") {
|
if ($entry->type != "video") {
|
||||||
if(isset($entry->picture) && isset($entry->link)) {
|
if(isset($entry->picture) && isset($entry->link)) {
|
||||||
$datarray['body'] .= "\n" . '[url=' . $entry->link . '][img]'.$entry->picture.'[/img][/url]';
|
$datarray['body'] .= "\n" . '[url=' . $entry->link . '][img]'.$entry->picture.'[/img][/url]';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(isset($entry->picture))
|
if(isset($entry->picture))
|
||||||
|
|
|
@ -153,7 +153,8 @@ function libertree_send(&$a,&$b) {
|
||||||
$ltree_api_token = get_pconfig($b['uid'],'libertree','libertree_api_token');
|
$ltree_api_token = get_pconfig($b['uid'],'libertree','libertree_api_token');
|
||||||
$ltree_url = get_pconfig($b['uid'],'libertree','libertree_url');
|
$ltree_url = get_pconfig($b['uid'],'libertree','libertree_url');
|
||||||
$ltree_blog = "$ltree_url/api/v1/posts/create/?token=$ltree_api_token";
|
$ltree_blog = "$ltree_url/api/v1/posts/create/?token=$ltree_api_token";
|
||||||
$ltree_source = "Friendica";
|
//$ltree_source = "Friendica";
|
||||||
|
$ltree_source = "[".$a->config['sitename']."](".$a->get_baseurl().")";
|
||||||
if($ltree_url && $ltree_api_token && $ltree_blog && $ltree_source) {
|
if($ltree_url && $ltree_api_token && $ltree_blog && $ltree_source) {
|
||||||
|
|
||||||
require_once('include/bb2diaspora.php');
|
require_once('include/bb2diaspora.php');
|
||||||
|
@ -188,12 +189,12 @@ function libertree_send(&$a,&$b) {
|
||||||
} while ($oldbody != $body);
|
} while ($oldbody != $body);
|
||||||
|
|
||||||
// convert to markdown
|
// convert to markdown
|
||||||
$body = bb2diaspora($body);
|
$body = bb2diaspora($body, false, false);
|
||||||
|
|
||||||
// Adding the title
|
// Adding the title
|
||||||
if(strlen($title))
|
if(strlen($title))
|
||||||
$body = "## ".html_entity_decode($title)."\n\n".$body;
|
$body = "## ".html_entity_decode($title)."\n\n".$body;
|
||||||
|
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'text' => $body,
|
'text' => $body,
|
||||||
|
|
|
@ -11,7 +11,8 @@ define("PRIVACY_IMAGE_CACHE_DEFAULT_TIME", 86400); // 1 Day
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
|
|
||||||
function privacy_image_cache_install() {
|
function privacy_image_cache_install() {
|
||||||
register_hook('bbcode', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_bbcode_hook');
|
register_hook('prepare_body', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_prepare_body_hook');
|
||||||
|
// register_hook('bbcode', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_bbcode_hook');
|
||||||
register_hook('display_item', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_display_item_hook');
|
register_hook('display_item', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_display_item_hook');
|
||||||
register_hook('ping_xmlize', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_ping_xmlize_hook');
|
register_hook('ping_xmlize', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_ping_xmlize_hook');
|
||||||
register_hook('cron', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_cron');
|
register_hook('cron', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_cron');
|
||||||
|
@ -19,6 +20,7 @@ function privacy_image_cache_install() {
|
||||||
|
|
||||||
|
|
||||||
function privacy_image_cache_uninstall() {
|
function privacy_image_cache_uninstall() {
|
||||||
|
unregister_hook('prepare_body', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_prepare_body_hook');
|
||||||
unregister_hook('bbcode', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_bbcode_hook');
|
unregister_hook('bbcode', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_bbcode_hook');
|
||||||
unregister_hook('display_item', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_display_item_hook');
|
unregister_hook('display_item', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_display_item_hook');
|
||||||
unregister_hook('ping_xmlize', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_ping_xmlize_hook');
|
unregister_hook('ping_xmlize', 'addon/privacy_image_cache/privacy_image_cache.php', 'privacy_image_cache_ping_xmlize_hook');
|
||||||
|
@ -30,6 +32,8 @@ function privacy_image_cache_module() {}
|
||||||
|
|
||||||
|
|
||||||
function privacy_image_cache_init() {
|
function privacy_image_cache_init() {
|
||||||
|
global $a;
|
||||||
|
|
||||||
if(function_exists('header_remove')) {
|
if(function_exists('header_remove')) {
|
||||||
header_remove('Pragma');
|
header_remove('Pragma');
|
||||||
header_remove('pragma');
|
header_remove('pragma');
|
||||||
|
@ -39,6 +43,24 @@ function privacy_image_cache_init() {
|
||||||
// Double encoded url - happens with Diaspora
|
// Double encoded url - happens with Diaspora
|
||||||
$urlhash2 = 'pic:' . sha1(urldecode($_REQUEST['url']));
|
$urlhash2 = 'pic:' . sha1(urldecode($_REQUEST['url']));
|
||||||
|
|
||||||
|
$cache = get_config('system','itemcache');
|
||||||
|
if (($cache != '') and is_dir($cache)) {
|
||||||
|
$cachefile = $cache."/".hash("md5", $urlhash);
|
||||||
|
if (file_exists($cachefile)) {
|
||||||
|
$img_str = file_get_contents($cachefile);
|
||||||
|
|
||||||
|
$mime = image_type_to_mime_type(exif_imagetype($cachefile));
|
||||||
|
|
||||||
|
header("Content-type: $mime");
|
||||||
|
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT");
|
||||||
|
header("Cache-Control: max-age=" . (3600*24));
|
||||||
|
|
||||||
|
echo $img_str;
|
||||||
|
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `photo` WHERE `resource-id` in ('%s', '%s') LIMIT 1", $urlhash, $urlhash2);
|
$r = q("SELECT * FROM `photo` WHERE `resource-id` in ('%s', '%s') LIMIT 1", $urlhash, $urlhash2);
|
||||||
if (count($r)) {
|
if (count($r)) {
|
||||||
$img_str = $r[0]['data'];
|
$img_str = $r[0]['data'];
|
||||||
|
@ -47,9 +69,22 @@ function privacy_image_cache_init() {
|
||||||
} else {
|
} else {
|
||||||
require_once("Photo.php");
|
require_once("Photo.php");
|
||||||
|
|
||||||
|
// It shouldn't happen but it does - spaces in URL
|
||||||
|
$_REQUEST['url'] = str_replace(" ", "+", $_REQUEST['url']);
|
||||||
|
|
||||||
$img_str = fetch_url($_REQUEST['url'],true);
|
$img_str = fetch_url($_REQUEST['url'],true);
|
||||||
if (substr($img_str, 0, 6) == "GIF89a") {
|
|
||||||
$mime = "image/gif";
|
$tempfile = tempnam("", "cache");
|
||||||
|
file_put_contents($tempfile, $img_str);
|
||||||
|
$mime = image_type_to_mime_type(exif_imagetype($tempfile));
|
||||||
|
unlink($tempfile);
|
||||||
|
|
||||||
|
// If there is an error then return a blank image
|
||||||
|
if ((substr($a->get_curl_code(), 0, 1) == "4") or (!$img_str)) {
|
||||||
|
$img_str = file_get_contents("images/blank.png");
|
||||||
|
$mime = "image/png";
|
||||||
|
//} else if (substr($img_str, 0, 6) == "GIF89a") {
|
||||||
|
} else if ($mime != "image/jpeg") {
|
||||||
$image = @imagecreatefromstring($img_str);
|
$image = @imagecreatefromstring($img_str);
|
||||||
|
|
||||||
if($image === FALSE) die();
|
if($image === FALSE) die();
|
||||||
|
@ -64,7 +99,7 @@ function privacy_image_cache_init() {
|
||||||
dbesc(''),
|
dbesc(''),
|
||||||
intval(imagesy($image)),
|
intval(imagesy($image)),
|
||||||
intval(imagesx($image)),
|
intval(imagesx($image)),
|
||||||
'image/gif',
|
$mime,
|
||||||
dbesc($img_str),
|
dbesc($img_str),
|
||||||
100,
|
100,
|
||||||
intval(0),
|
intval(0),
|
||||||
|
@ -81,6 +116,9 @@ function privacy_image_cache_init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Writing in cachefile
|
||||||
|
if (isset($cachefile) && $cachefile != '')
|
||||||
|
file_put_contents($cachefile, $img_str);
|
||||||
|
|
||||||
header("Content-type: $mime");
|
header("Content-type: $mime");
|
||||||
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT");
|
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT");
|
||||||
|
@ -111,16 +149,27 @@ function privacy_image_cache_is_local_image($url) {
|
||||||
*/
|
*/
|
||||||
function privacy_image_cache_img_cb($matches) {
|
function privacy_image_cache_img_cb($matches) {
|
||||||
// following line changed per bug #431
|
// following line changed per bug #431
|
||||||
if (privacy_image_cache_is_local_image($matches[2])) return $matches[1] . $matches[2] . $matches[3];
|
if (privacy_image_cache_is_local_image($matches[2]))
|
||||||
return $matches[1] . get_app()->get_baseurl() . "/privacy_image_cache/?url=" . escape_tags(addslashes(rawurlencode($matches[2]))) . $matches[3];
|
return $matches[1] . $matches[2] . $matches[3];
|
||||||
|
|
||||||
|
return $matches[1] . get_app()->get_baseurl() . "/privacy_image_cache/?url=" . addslashes(rawurlencode(htmlspecialchars_decode($matches[2]))) . $matches[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param App $a
|
* @param App $a
|
||||||
* @param string $o
|
* @param string $o
|
||||||
*/
|
*/
|
||||||
|
function privacy_image_cache_prepare_body_hook(&$a, &$o) {
|
||||||
|
$o["html"] = preg_replace_callback("/(<img [^>]*src *= *[\"'])([^\"']+)([\"'][^>]*>)/siU", "privacy_image_cache_img_cb", $o["html"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param App $a
|
||||||
|
* @param string $o
|
||||||
|
* Function disabled because the plugin moved
|
||||||
|
*/
|
||||||
function privacy_image_cache_bbcode_hook(&$a, &$o) {
|
function privacy_image_cache_bbcode_hook(&$a, &$o) {
|
||||||
$o = preg_replace_callback("/(<img [^>]*src *= *[\"'])([^\"']+)([\"'][^>]*>)/siU", "privacy_image_cache_img_cb", $o);
|
//$o = preg_replace_callback("/(<img [^>]*src *= *[\"'])([^\"']+)([\"'][^>]*>)/siU", "privacy_image_cache_img_cb", $o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -482,9 +482,14 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
}
|
}
|
||||||
// ok, all the links we want to send out are save, now strip
|
// ok, all the links we want to send out are save, now strip
|
||||||
// away the remaining bbcode
|
// away the remaining bbcode
|
||||||
$msg = strip_tags(bbcode($tmp, false, false));
|
//$msg = strip_tags(bbcode($tmp, false, false));
|
||||||
|
$msg = bbcode($tmp, false, false);
|
||||||
|
$msg = str_replace(array('<br>','<br />'),"\n",$msg);
|
||||||
|
$msg = strip_tags($msg);
|
||||||
|
|
||||||
// quotes not working - let's try this
|
// quotes not working - let's try this
|
||||||
$msg = html_entity_decode($msg);
|
$msg = html_entity_decode($msg);
|
||||||
|
|
||||||
if (( strlen($msg) > $max_char) && $max_char > 0) {
|
if (( strlen($msg) > $max_char) && $max_char > 0) {
|
||||||
$shortlink = short_link( $b['plink'] );
|
$shortlink = short_link( $b['plink'] );
|
||||||
// the new message will be shortened such that "... $shortlink"
|
// the new message will be shortened such that "... $shortlink"
|
||||||
|
@ -498,10 +503,14 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
$msg = implode(' ', $e);
|
$msg = implode(' ', $e);
|
||||||
$msg .= '... ' . $shortlink;
|
$msg .= '... ' . $shortlink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$msg = trim($msg);
|
||||||
|
|
||||||
// and now dent it :-)
|
// and now dent it :-)
|
||||||
if(strlen($msg)) {
|
if(strlen($msg)) {
|
||||||
$result = $dent->post('statuses/update', array('status' => $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) {
|
if ($result->error) {
|
||||||
logger('Send to StatusNet failed: "' . $result->error . '"');
|
logger('Send to StatusNet failed: "' . $result->error . '"');
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,19 +204,18 @@ function tumblr_send(&$a,&$b) {
|
||||||
$params['embed'] = $link;
|
$params['embed'] = $link;
|
||||||
if ($title != '')
|
if ($title != '')
|
||||||
$params['caption'] = '<h1><a href="'.$link.'">'.$title.
|
$params['caption'] = '<h1><a href="'.$link.'">'.$title.
|
||||||
"</a></h1><p>".bbcode($body)."</p>";
|
"</a></h1><p>".bbcode($body, false, false)."</p>";
|
||||||
else
|
else
|
||||||
$params['caption'] = bbcode($body);
|
$params['caption'] = bbcode($body, false, false);
|
||||||
} else if (($link != '') and !$video) {
|
} else if (($link != '') and !$video) {
|
||||||
$params['type'] = "link";
|
$params['type'] = "link";
|
||||||
$params['name'] = $title;
|
$params['name'] = $title;
|
||||||
$params['url'] = $link;
|
$params['url'] = $link;
|
||||||
//$params['description'] = bbcode($body);
|
$params['description'] = bbcode($b["body"], false, false);
|
||||||
$params['description'] = bbcode($b["body"]);
|
|
||||||
} else {
|
} else {
|
||||||
$params['type'] = "regular";
|
$params['type'] = "regular";
|
||||||
$params['title'] = $title;
|
$params['title'] = $title;
|
||||||
$params['body'] = bbcode($b['body']);
|
$params['body'] = bbcode($b['body'], false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
$x = post_url($tmbl_blog,$params);
|
$x = post_url($tmbl_blog,$params);
|
||||||
|
|
|
@ -347,7 +347,11 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
}
|
}
|
||||||
// ok, all the links we want to send out are save, now strip
|
// ok, all the links we want to send out are save, now strip
|
||||||
// away the remaining bbcode
|
// away the remaining bbcode
|
||||||
$msg = strip_tags(bbcode($tmp, false, false));
|
//$msg = strip_tags(bbcode($tmp, false, false));
|
||||||
|
$msg = bbcode($tmp, false, false);
|
||||||
|
$msg = str_replace(array('<br>','<br />'),"\n",$msg);
|
||||||
|
$msg = strip_tags($msg);
|
||||||
|
|
||||||
// quotes not working - let's try this
|
// quotes not working - let's try this
|
||||||
$msg = html_entity_decode($msg);
|
$msg = html_entity_decode($msg);
|
||||||
if (( strlen($msg) > $max_char) && $max_char > 0) {
|
if (( strlen($msg) > $max_char) && $max_char > 0) {
|
||||||
|
@ -363,6 +367,9 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
$msg = implode(' ', $e);
|
$msg = implode(' ', $e);
|
||||||
$msg .= '... ' . $shortlink;
|
$msg .= '... ' . $shortlink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$msg = trim($msg);
|
||||||
|
|
||||||
// and now tweet it :-)
|
// and now tweet it :-)
|
||||||
if(strlen($msg)) {
|
if(strlen($msg)) {
|
||||||
$result = $tweet->post('statuses/update', array('status' => $msg));
|
$result = $tweet->post('statuses/update', array('status' => $msg));
|
||||||
|
|
Loading…
Reference in a new issue