X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FDFRN.php;h=72ab89d925992ac04f2e37b2f4ed466dc6fc243e;hb=4d35e228c41a1fc6a6de9f50b8ec5c5bb45a9c2d;hp=1047ffdfe282a9584ad0f1fccf18280cd3123af5;hpb=22816c49a1972fff2e201dd66ac59b80624ee8aa;p=friendica.git diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 1047ffdfe2..72ab89d925 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -2087,13 +2087,6 @@ class DFRN logger('Contacts are updated.'); - // update items - // This is an extreme performance killer - Item::update(['owner-link' => $relocate["url"]], ['owner-link' => $old["url"], 'uid' => $importer["importer_uid"]]); - Item::update(['author-link' => $relocate["url"]], ['author-link' => $old["url"], 'uid' => $importer["importer_uid"]]); - - logger('Items are updated.'); - /// @TODO /// merge with current record, current contents have priority /// update record, set url-updated @@ -2310,18 +2303,18 @@ class DFRN ) { $is_like = true; $item["type"] = "activity"; - $item["gravity"] = GRAVITY_LIKE; + $item["gravity"] = GRAVITY_ACTIVITY; // only one like or dislike per person // splitted into two queries for performance issues - $condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], + $condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], 'gravity' => GRAVITY_ACTIVITY, 'verb' => $item["verb"], 'parent-uri' => $item["parent-uri"]]; - if (dba::exists('item', $condition)) { + if (Item::exists($condition)) { return false; } - $condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], + $condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], 'gravity' => GRAVITY_ACTIVITY, 'verb' => $item["verb"], 'thr-parent' => $item["parent-uri"]]; - if (dba::exists('item', $condition)) { + if (Item::exists($condition)) { return false; } } else { @@ -2421,8 +2414,7 @@ class DFRN $item["edited"] = $xpath->query("atom:updated/text()", $entry)->item(0)->nodeValue; - $current = dba::selectFirst('item', - ['id', 'uid', 'edited', 'body'], + $current = Item::selectFirst(['id', 'uid', 'edited', 'body'], ['uri' => $item["uri"], 'uid' => $importer["importer_uid"]] ); // Is there an existing item? @@ -2754,13 +2746,18 @@ class DFRN return false; } - $condition = ["`uri` = ? AND `uid` = ? AND NOT `file` LIKE '%[%'", $uri, $importer["importer_uid"]]; - $item = dba::selectFirst('item', ['id', 'parent', 'contact-id'], $condition); + $condition = ['uri' => $uri, 'uid' => $importer["importer_uid"]]; + $item = Item::selectFirst(['id', 'parent', 'contact-id', 'file'], $condition); if (!DBM::is_result($item)) { logger("Item with uri " . $uri . " for user " . $importer["importer_uid"] . " wasn't found.", LOGGER_DEBUG); return; } + if (strstr($item['file'], '[')) { + logger("Item with uri " . $uri . " for user " . $importer["importer_uid"] . " is filed. So it won't be deleted.", LOGGER_DEBUG); + return; + } + // When it is a starting post it has to belong to the person that wants to delete it if (($item['id'] == $item['parent']) && ($item['contact-id'] != $importer["id"])) { logger("Item with uri " . $uri . " don't belong to contact " . $importer["id"] . " - ignoring deletion.", LOGGER_DEBUG); @@ -2770,7 +2767,7 @@ class DFRN // Comments can be deleted by the thread owner or comment owner if (($item['id'] != $item['parent']) && ($item['contact-id'] != $importer["id"])) { $condition = ['id' => $item['parent'], 'contact-id' => $importer["id"]]; - if (!dba::exists('item', $condition)) { + if (!Item::exists($condition)) { logger("Item with uri " . $uri . " wasn't found or mustn't be deleted by contact " . $importer["id"] . " - ignoring deletion.", LOGGER_DEBUG); return; }