]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Diaspora.php
API: fix sender/recipient of PMs: check api_user before get user info.
[friendica.git] / src / Protocol / Diaspora.php
index d2a7995d867c4e510caf3eaf68752625dc3d7caa..20d1d74fea12ad99133019a3b72f537815e24181 100644 (file)
@@ -1602,11 +1602,21 @@ class Diaspora
         */
        private static function getUriFromGuid($author, $guid, $onlyfound = false)
        {
-               $r = q("SELECT `uri` FROM `item` WHERE `guid` = '%s' LIMIT 1", dbesc($guid));
-               if (DBM::is_result($r)) {
-                       return $r[0]["uri"];
+               $item = dba::selectFirst('item', ['uri'], ['guid' => $guid]);
+               if (DBM::is_result($item)) {
+                       return $item["uri"];
                } elseif (!$onlyfound) {
-                       return $author.":".$guid;
+                       $contact = Contact::getDetailsByAddr($author, 0);
+                       if (!empty($contact['network'])) {
+                               $prefix = 'urn:X-' . $contact['network'] . ':';
+                       } else {
+                               // This fallback should happen most unlikely
+                               $prefix = 'urn:X-dspr:';
+                       }
+
+                       $author_parts = explode('@', $author);
+
+                       return $prefix . $author_parts[1] . ':' . $author_parts[0] . ':'. $guid;
                }
 
                return "";
@@ -2785,7 +2795,7 @@ class Diaspora
 
                while ($item = dba::fetch($r)) {
                        // Fetch the parent item
-                       $parent = dba::selectFirst('item', ['author-link', 'origin'], ['id' => $item["parent"]]);
+                       $parent = dba::selectFirst('item', ['author-link'], ['id' => $item["parent"]]);
 
                        // Only delete it if the parent author really fits
                        if (!link_compare($parent["author-link"], $contact["url"]) && !link_compare($item["author-link"], $contact["url"])) {
@@ -2793,7 +2803,7 @@ class Diaspora
                                continue;
                        }
 
-                       Item::deleteById($item["id"]);
+                       Item::delete(['id' => $item['id']]);
 
                        logger("Deleted target ".$target_guid." (".$item["id"].") from user ".$item["uid"]." parent: ".$item["parent"], LOGGER_DEBUG);
                }