X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdiaspora.php;h=453cc5cef8ba79517e5babdf264491bc0eba6be9;hb=63610c7b73fcaf862adbf880d4968dd2b1678d9b;hp=a1adb9b82878de4a519876c10b446dafea3efc11;hpb=0cba02a805bab5dec5cc338ad201654edd8262b5;p=friendica.git diff --git a/include/diaspora.php b/include/diaspora.php index a1adb9b828..453cc5cef8 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -623,7 +623,7 @@ class diaspora { dbesc($arr["photo"]), dbesc($arr["request"]), dbesc($arr["nick"]), - dbesc($arr["addr"]), + dbesc(strtolower($arr["addr"])), dbesc($arr["guid"]), dbesc($arr["batch"]), dbesc($arr["notify"]), @@ -677,7 +677,7 @@ class diaspora { $r = q("SELECT `addr` FROM `gcontact` WHERE `id` = %d AND `addr` != ''", intval($gcontact_id)); if ($r) - return $r[0]["addr"]; + return strtolower($r[0]["addr"]); } $r = q("SELECT `network`, `addr`, `self`, `url`, `nick` FROM `contact` WHERE `id` = %d", @@ -697,7 +697,7 @@ class diaspora { } } - return $handle; + return strtolower($handle); } /** @@ -999,17 +999,21 @@ class diaspora { */ private function author_contact_by_url($contact, $person, $uid) { - $r = q("SELECT `id`, `network` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT `id`, `network`, `url` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1", dbesc(normalise_link($person["url"])), intval($uid)); if ($r) { $cid = $r[0]["id"]; $network = $r[0]["network"]; + + // We are receiving content from a user that is about to be terminated + // This means the user is vital, so we remove a possible termination date. + unmark_for_death($contact); } else { $cid = $contact["id"]; $network = NETWORK_DIASPORA; } - return (array("cid" => $cid, "network" => $network)); + return array("cid" => $cid, "network" => $network); } /** @@ -1274,7 +1278,7 @@ class diaspora { $r = q("SELECT `id` FROM `mail` WHERE `uri` = '%s' LIMIT 1", dbesc($message_uri) ); - if($r) { + if(dbm::is_result($r)) { logger("duplicate message already delivered.", LOGGER_DEBUG); return false; } @@ -1652,7 +1656,7 @@ class diaspora { * @return bool Success */ private function receive_profile($importer, $data) { - $author = notags(unxmlify($data->author)); + $author = strtolower(notags(unxmlify($data->author))); $contact = self::contact_by_handle($importer["uid"], $author); if (!$contact) @@ -2633,7 +2637,13 @@ class diaspora { } else { // queue message for redelivery add_to_queue($contact["id"], NETWORK_DIASPORA, $slap, $public_batch); + + // The message could not be delivered. We mark the contact as "dead" + mark_for_death($contact); } + } elseif (($return_code >= 200) AND ($return_code <= 299)) { + // We successfully delivered a message, the contact is alive + unmark_for_death($contact); } return(($return_code) ? $return_code : (-1)); @@ -2876,8 +2886,10 @@ class diaspora { "created_at" => $created, "provider_display_name" => $item["app"]); - if (count($location) == 0) + // Diaspora rejects messages when they contain a location without "lat" or "lng" + if (!isset($location["lat"]) OR !isset($location["lng"])) { unset($message["location"]); + } $type = "status_message"; } @@ -2913,7 +2925,7 @@ class diaspora { $p = q("SELECT `guid`, `uri`, `parent-uri` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($item["thr-parent"])); - if(!$p) + if(!dbm::is_result($p)) return false; $parent = $p[0]; @@ -2944,7 +2956,7 @@ class diaspora { intval($item["parent"]) ); - if (!$p) + if (!dbm::is_result($p)) return false; $parent = $p[0]; @@ -3158,7 +3170,7 @@ class diaspora { intval($item["uid"]) ); - if (!$r) { + if (!dbm::is_result($r)) { logger("conversation not found."); return; }