]> git.mxchange.org Git - friendica.git/blobdiff - include/diaspora.php
Continued with coding convention:
[friendica.git] / include / diaspora.php
index bd4f8676378bb473b6960c84546ef6c1170e3aad..cfb624fdf2a075a62803649aa982658ec85f4f19 100644 (file)
@@ -319,8 +319,8 @@ class diaspora {
                        dbesc(NETWORK_DIASPORA),
                        dbesc($msg["author"])
                );
-               if($r) {
-                       foreach($r as $rr) {
+               if ($r) {
+                       foreach ($r as $rr) {
                                logger("delivering to: ".$rr["username"]);
                                self::dispatch($rr,$msg);
                        }
@@ -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);
        }
 
        /**
@@ -806,7 +806,7 @@ class diaspora {
                        dbesc($guid)
                );
 
-               if($r) {
+               if ($r) {
                        logger("message ".$guid." already exists for user ".$uid);
                        return $r[0]["id"];
                }
@@ -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);
        }
 
        /**
@@ -1184,7 +1188,7 @@ class diaspora {
                        );
 
                        // notify others
-                       proc_run("php", "include/notifier.php", "comment-import", $message_id);
+                       proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $message_id);
                }
 
                return $message_id;
@@ -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;
                }
@@ -1519,7 +1523,7 @@ class diaspora {
                        );
 
                        // notify others
-                       proc_run("php", "include/notifier.php", "comment-import", $message_id);
+                       proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $message_id);
                }
 
                return $message_id;
@@ -1573,7 +1577,7 @@ class diaspora {
                        dbesc($message_uri),
                        intval($importer["uid"])
                );
-               if($r) {
+               if ($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)
@@ -1799,7 +1803,7 @@ class diaspora {
 
                                $i = item_store($arr);
                                if($i)
-                                       proc_run("php", "include/notifier.php", "activity", $i);
+                                       proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
                        }
                }
        }
@@ -2018,7 +2022,7 @@ class diaspora {
                                FROM `item` WHERE `guid` = '%s' AND `visible` AND NOT `deleted` AND `body` != '' LIMIT 1",
                        dbesc($guid));
 
-               if($r) {
+               if ($r) {
                        logger("reshared message ".$guid." already exists on system.");
 
                        // Maybe it is already a reshared item?
@@ -2192,7 +2196,7 @@ class diaspora {
                // Now check if the retraction needs to be relayed by us
                if($p[0]["origin"]) {
                        // notify others
-                       proc_run("php", "include/notifier.php", "drop", $r[0]["id"]);
+                       proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $r[0]["id"]);
                }
 
                return true;
@@ -2286,7 +2290,7 @@ class diaspora {
                                $body = "[img]".unxmlify($photo->remote_photo_path).
                                        unxmlify($photo->remote_photo_name)."[/img]\n".$body;
 
-                       $datarray["object-type"] = ACTIVITY_OBJ_PHOTO;
+                       $datarray["object-type"] = ACTIVITY_OBJ_IMAGE;
                } else {
                        $datarray["object-type"] = ACTIVITY_OBJ_NOTE;
 
@@ -2619,7 +2623,7 @@ class diaspora {
 
                logger("transmit: ".$logid."-".$guid." returns: ".$return_code);
 
-               if(!$return_code || (($return_code == 503) && (stristr($a->get_curl_headers(), "retry-after")))) {
+               if (!$return_code || (($return_code == 503) && (stristr($a->get_curl_headers(), "retry-after")))) {
                        logger("queue message");
 
                        $r = q("SELECT `id` FROM `queue` WHERE `cid` = %d AND `network` = '%s' AND `content` = '%s' AND `batch` = %d LIMIT 1",
@@ -2628,12 +2632,18 @@ class diaspora {
                                dbesc($slap),
                                intval($public_batch)
                        );
-                       if($r) {
+                       if ($r) {
                                logger("add_to_queue ignored - identical item already in queue");
                        } 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;
                }