if (substr($baseurl, -10) == "/index.php")
$baseurl = str_replace("/index.php", "", $baseurl);
+ if ($network == "")
+ $network = NETWORK_PHANTOM;
+
$baseurl = rtrim($baseurl, "/");
if(strpos($url,'@') AND ($addr == "") AND ($network == NETWORK_DFRN))
}
// Only store into the cache if the value seems to be valid
- if (!in_array($result['network'], array(NETWORK_PHANTOM, ""))) {
+ if ($result['network'] != NETWORK_PHANTOM) {
Cache::set("probe_url:".$mode.":".$original_url,serialize($result), CACHE_DAY);
/// @todo temporary fix - we need a real contact update function that updates only changing fields
return $new_url;
}
+function fix_alternate_contact_address(&$contact) {
+ if (($contact["network"] == NETWORK_OSTATUS) AND poco_alternate_ostatus_url($contact["url"])) {
+ $data = probe_url($contact["url"]);
+ if (!in_array($contact["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) {
+ $contact["url"] = $data["url"];
+ $contact["addr"] = $data["addr"];
+ $contact["server_url"] = $data["baseurl"];
+ }
+ }
+}
+
/**
* @brief Fetch the gcontact id, add an entry if not existed
*
$gcontact_id = 0;
- if ($contact["network"] == NETWORK_PHANTOM)
+ if (in_array($contact["network"], array(NETWORK_FEED, NETWORK_PHANTOM)))
return false;
if ($contact["network"] == NETWORK_STATUSNET)
$contact["network"] = NETWORK_OSTATUS;
+ // Replace alternate OStatus user format with the primary one
+ fix_alternate_contact_address($contact);
+
// Remove unwanted parts from the contact url (e.g. "?zrl=...")
$contact["url"] = clean_contact_url($contact["url"]);
if ($contact["network"] == NETWORK_STATUSNET)
$contact["network"] = NETWORK_OSTATUS;
+ // Replace alternate OStatus user format with the primary one
+ fix_alternate_contact_address($contact);
+
if (!isset($contact["updated"]))
$contact["updated"] = datetime_convert();
function update_gcontact_from_probe($url) {
$data = probe_url($url);
- if ($data["network"] == NETWORK_PHANTOM)
+ if (in_array($data["network"], array(NETWORK_FEED, NETWORK_PHANTOM)))
return;
update_gcontact($data);
if (!$r) {
$probed = probe_url($name);
- if (isset($probed["url"])) {
+ if ($result['network'] != NETWORK_PHANTOM) {
update_gcontact($probed);
$r = q("SELECT `url`, `name`, `nick`, `network`, `alias`, `notify` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
dbesc(normalise_link($probed["url"])));