Twitter, Statusnet: Supress profile link of user whose message was repeated
libertree: Design improvement of exported messages privacy_image_cache: quickfix for double encoded urls
This commit is contained in:
parent
fe7c741eed
commit
471b5db36f
|
@ -118,7 +118,7 @@ function libertree_post_local(&$a,&$b) {
|
||||||
if($b['private'] || $b['parent'])
|
if($b['private'] || $b['parent'])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$ltree_post = intval(get_pconfig(local_user(),'libertree','post'));
|
$ltree_post = intval(get_pconfig(local_user(),'libertree','post'));
|
||||||
|
|
||||||
$ltree_enable = (($ltree_post && x($_REQUEST,'libertree_enable')) ? intval($_REQUEST['libertree_enable']) : 0);
|
$ltree_enable = (($ltree_post && x($_REQUEST,'libertree_enable')) ? intval($_REQUEST['libertree_enable']) : 0);
|
||||||
|
|
||||||
|
@ -176,6 +176,12 @@ function libertree_send(&$a,&$b) {
|
||||||
$body = str_ireplace("[quote", "\n\n[quote", $body);
|
$body = str_ireplace("[quote", "\n\n[quote", $body);
|
||||||
$body = str_ireplace("[/quote]", "[/quote]\n\n", $body);
|
$body = str_ireplace("[/quote]", "[/quote]\n\n", $body);
|
||||||
|
|
||||||
|
// Removal of tags and mentions
|
||||||
|
// #-tags
|
||||||
|
$body = preg_replace('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $body);
|
||||||
|
// @-mentions
|
||||||
|
$body = preg_replace('/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $body);
|
||||||
|
|
||||||
// remove multiple newlines
|
// remove multiple newlines
|
||||||
do {
|
do {
|
||||||
$oldbody = $body;
|
$oldbody = $body;
|
||||||
|
|
|
@ -36,16 +36,18 @@ function privacy_image_cache_init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
$urlhash = 'pic:' . sha1($_REQUEST['url']);
|
$urlhash = 'pic:' . sha1($_REQUEST['url']);
|
||||||
$r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash );
|
// Double encoded url - happens with Diaspora
|
||||||
if (count($r)) {
|
$urlhash2 = 'pic:' . sha1(urldecode($_REQUEST['url']));
|
||||||
$img_str = $r[0]['data'];
|
|
||||||
|
$r = q("SELECT * FROM `photo` WHERE `resource-id` in ('%s', '%s') LIMIT 1", $urlhash, $urlhash2);
|
||||||
|
if (count($r)) {
|
||||||
|
$img_str = $r[0]['data'];
|
||||||
$mime = $r[0]["desc"];
|
$mime = $r[0]["desc"];
|
||||||
if ($mime == "") $mime = "image/jpeg";
|
if ($mime == "") $mime = "image/jpeg";
|
||||||
}
|
} else {
|
||||||
else {
|
require_once("Photo.php");
|
||||||
require_once("Photo.php");
|
|
||||||
|
|
||||||
$img_str = fetch_url($_REQUEST['url'],true);
|
$img_str = fetch_url($_REQUEST['url'],true);
|
||||||
if (substr($img_str, 0, 6) == "GIF89a") {
|
if (substr($img_str, 0, 6) == "GIF89a") {
|
||||||
$mime = "image/gif";
|
$mime = "image/gif";
|
||||||
$image = @imagecreatefromstring($img_str);
|
$image = @imagecreatefromstring($img_str);
|
||||||
|
@ -77,16 +79,16 @@ function privacy_image_cache_init() {
|
||||||
}
|
}
|
||||||
$mime = "image/jpeg";
|
$mime = "image/jpeg";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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");
|
||||||
header("Cache-Control: max-age=" . (3600*24));
|
header("Cache-Control: max-age=" . (3600*24));
|
||||||
|
|
||||||
echo $img_str;
|
echo $img_str;
|
||||||
|
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -210,4 +212,4 @@ function privacy_image_cache_plugin_admin_post(&$a = null, &$o = null){
|
||||||
if (isset($_REQUEST['delete_all'])) {
|
if (isset($_REQUEST['delete_all'])) {
|
||||||
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%"');
|
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%"');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -453,10 +453,16 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
// that is, don't send if the option is not set in the
|
// that is, don't send if the option is not set in the
|
||||||
// connector settings
|
// connector settings
|
||||||
if ($linksenabled=='0') {
|
if ($linksenabled=='0') {
|
||||||
// #-tags
|
// #-tags
|
||||||
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
||||||
// @-mentions
|
// @-mentions
|
||||||
$tmp = preg_replace( '/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $tmp);
|
$tmp = preg_replace( '/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $tmp);
|
||||||
|
// recycle 1
|
||||||
|
$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
|
||||||
|
$tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', $recycle.'$2', $tmp);
|
||||||
|
// recycle 2
|
||||||
|
//$recycle = html_entity_decode("♻ ", ENT_QUOTES, 'UTF-8');
|
||||||
|
//$tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', 'RT @$2:', $tmp);
|
||||||
}
|
}
|
||||||
// preserve links to webpages
|
// preserve links to webpages
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
||||||
|
|
|
@ -316,18 +316,24 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
$linksenabled = get_pconfig($b['uid'],'twitter','post_taglinks');
|
$linksenabled = get_pconfig($b['uid'],'twitter','post_taglinks');
|
||||||
// if a #tag is linked, don't send the [url] over to SN
|
// if a #tag is linked, don't send the [url] over to SN
|
||||||
// that is, don't send if the option is not set in the
|
// that is, don't send if the option is not set in the
|
||||||
// connector settings
|
// connector settings
|
||||||
if ($linksenabled=='0') {
|
if ($linksenabled=='0') {
|
||||||
// #-tags
|
// #-tags
|
||||||
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
||||||
// @-mentions
|
// @-mentions
|
||||||
$tmp = preg_replace( '/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $tmp);
|
$tmp = preg_replace( '/@\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '@$2', $tmp);
|
||||||
|
// recycle 1
|
||||||
|
$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
|
||||||
|
$tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', $recycle.'$2', $tmp);
|
||||||
|
// recycle 2
|
||||||
|
//$recycle = html_entity_decode("♻ ", ENT_QUOTES, 'UTF-8');
|
||||||
|
//$tmp = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', 'RT @$2:', $tmp);
|
||||||
}
|
}
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
||||||
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
||||||
// find all http or https links in the body of the entry and
|
// find all http or https links in the body of the entry and
|
||||||
// apply the shortener if the link is longer then 20 characters
|
// apply the shortener if the link is longer then 20 characters
|
||||||
if (( strlen($tmp)>$max_char ) && ( $max_char > 0 )) {
|
if (( strlen($tmp)>$max_char ) && ( $max_char > 0 )) {
|
||||||
preg_match_all ( '/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', $tmp, $allurls );
|
preg_match_all ( '/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', $tmp, $allurls );
|
||||||
foreach ($allurls as $url) {
|
foreach ($allurls as $url) {
|
||||||
|
|
Loading…
Reference in a new issue