Merge pull request #984 from annando/master

Better look for embedded videos, removing tracking parameters, new shortening function
This commit is contained in:
Tobias Diekershoff 2014-05-19 08:05:16 +02:00
commit 1388b7ac27
6 changed files with 59 additions and 17 deletions

View file

@ -1107,8 +1107,29 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
}
function original_url($url, $depth=1, $fetchbody = false) {
// Remove Analytics Data from Google and other tracking platforms
$urldata = parse_url($url);
if (is_string($urldata["query"])) {
$query = $urldata["query"];
parse_str($query, $querydata);
if (is_array($querydata))
foreach ($querydata AS $param=>$value)
if (in_array($param, array("utm_source", "utm_medium", "utm_term", "utm_content", "utm_campaign",
"wt_mc", "pk_campaign", "pk_kwd", "mc_cid", "mc_eid",
"woo_campaign", "woo_source", "woo_medium", "woo_content", "woo_term"))) {
$pair = $param."=".$value;
$url = str_replace($pair, "", $url);
$url = str_replace(array("?&", "&&"), array("?", ""), $url);
}
if (substr($url, -1, 1) == "?")
$url = substr($url, 0, -1);
}
if ($depth > 10)
return($url);
return($url);
$url = trim($url, "'");

View file

@ -41,6 +41,22 @@ function get_attached_data($body) {
return($post);
}
function shortenmsg($msg, $limit) {
$lines = explode("\n", $msg);
$msg = "";
$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
foreach ($lines AS $row=>$line) {
if (strlen(trim($msg."\n".$line)) <= $limit)
$msg = trim($msg."\n".$line);
// Is the new message empty by now or is it a reshared message?
elseif (($msg == "") OR (($row == 1) AND (substr($msg, 0, 4) == $recycle)))
$msg = substr(substr(trim($msg."\n".$line), 0, $limit), 0, -3)."...";
else
break;
}
return($msg);
}
function plaintext($a, $b, $limit = 0, $includedlinks = false) {
require_once("include/bbcode.php");
require_once("include/html2plain.php");
@ -159,18 +175,7 @@ function plaintext($a, $b, $limit = 0, $includedlinks = false) {
$post["url"] = $b["plink"];
}
$lines = explode("\n", $msg);
$msg = "";
$recycle = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8');
foreach ($lines AS $row=>$line) {
if (strlen(trim($msg."\n".$line)) <= $limit)
$msg = trim($msg."\n".$line);
// Is the new message empty by now or is it a reshared message?
elseif (($msg == "") OR (($row == 1) AND (substr($msg, 0, 4) == $recycle)))
$msg = substr(substr(trim($msg."\n".$line), 0, $limit), 0, -3)."...";
else
break;
}
$msg = shortenmsg($msg, $limit);
}
}