Clean gcontact url before saving in gcontact table

This commit is contained in:
Michael Vogel 2016-04-16 15:22:54 +02:00
parent bbd5878734
commit 57cadf5b8f
1 changed files with 25 additions and 0 deletions

View File

@ -1354,6 +1354,29 @@ function poco_discover_server($data, $default_generation = 0) {
return $success;
}
/**
* @brief Removes unwanted parts from a contact url
*
* @param string $url Contact url
* @return string Contact url with the wanted parts
*/
function clean_contact_url($url) {
$parts = parse_url($url);
if (!isset($parts["scheme"]) OR !isset($parts["host"]))
return $url;
$new_url = $parts["scheme"]."://".$parts["host"];
if (isset($parts["port"]))
$new_url .= ":".$parts["port"];
if (isset($parts["path"]))
$new_url .= $parts["path"];
return $new_url;
}
/**
* @brief Fetch the gcontact id, add an entry if not existed
*
@ -1367,6 +1390,8 @@ function get_gcontact_id($contact) {
if ($contact["network"] == NETWORK_STATUSNET)
$contact["network"] = NETWORK_OSTATUS;
$contact["url"] = clean_contact_url($contact["url"]);
$r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 2",
dbesc(normalise_link($contact["url"])));