From 3b92f7357c617899a2b0ee9dc341f039cc941ed8 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 30 Aug 2019 07:52:21 +0200 Subject: [PATCH] Renamed function --- src/Database/PostUpdate.php | 6 +++--- src/Model/Contact.php | 27 ++++----------------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/Database/PostUpdate.php b/src/Database/PostUpdate.php index 8c5414bfc2..885c9eea01 100644 --- a/src/Database/PostUpdate.php +++ b/src/Database/PostUpdate.php @@ -434,7 +434,7 @@ class PostUpdate Logger::info('Start'); - $contacts = DBA::p("SELECT ANY_VALUE(`id`) AS `id`, ANY_VALUE(`nurl`) AS `nurl` FROM `contact` + $contacts = DBA::p("SELECT `nurl`, `uid` FROM `contact` WHERE EXISTS (SELECT `nurl` FROM `contact` AS `c2` WHERE `c2`.`nurl` = `contact`.`nurl` AND `c2`.`id` != `contact`.`id` AND `c2`.`uid` = `contact`.`uid` AND `c2`.`network` IN (?, ?, ?) AND NOT `deleted`) AND (`network` IN (?, ?, ?) OR (`uid` = ?)) AND NOT `deleted` GROUP BY `nurl`, `uid`", @@ -442,8 +442,8 @@ class PostUpdate Protocol::DIASPORA, Protocol::OSTATUS, Protocol::ACTIVITYPUB, 0); while ($contact = DBA::fetch($contacts)) { - Logger::info('Remove duplicates', ['id' => $contact['id']]); - Contact::handleDuplicateByID($contact['id']); + Logger::info('Remove duplicates', ['nurl' => $contact['nurl'], 'uid' => $contact['uid']]); + Contact::removeDuplicates($contact['nurl'], $contact['uid']); } DBA::close($contact); diff --git a/src/Model/Contact.php b/src/Model/Contact.php index a8dc673bce..eb99a9fe0f 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -156,7 +156,7 @@ class Contact extends BaseObject } // Search for duplicated contacts and get rid of them - self::handleDuplicates($contact['nurl'], $contact['uid']); + self::removeDuplicates($contact['nurl'], $contact['uid']); return $ret; } @@ -1880,7 +1880,7 @@ class Contact extends BaseObject } // Search for duplicated contacts and get rid of them - if (self::handleDuplicates(Strings::normaliseLink($url), $uid) || ($uid != 0)) { + if (self::removeDuplicates(Strings::normaliseLink($url), $uid) || ($uid != 0)) { return; } @@ -1921,34 +1921,15 @@ class Contact extends BaseObject DBA::update('contact', $fields, $condition); } - /** - * Check and remove duplicate contact entries - * - * @param integer $contact_id Contact ID - * @throws \Exception - */ - public static function handleDuplicateByID(int $contact_id) - { - $contact = DBA::selectFirst('contact', ['nurl', 'uid'], ['id' => $contact_id, 'deleted' => false]); - if (!DBA::isResult($contact)) { - return; - } - - // Search for duplicated contacts and get rid of them - self::handleDuplicates($contact['nurl'], $contact['uid']); - - return; - } - /** - * @brief Helper function for "updateFromProbe". Remove duplicated contacts + * @brief Remove duplicated contacts * * @param string $nurl Normalised contact url * @param integer $uid User id * @return boolean * @throws \Exception */ - private static function handleDuplicates(string $nurl, int $uid) + public static function removeDuplicates(string $nurl, int $uid) { $condition = ['nurl' => $nurl, 'uid' => $uid, 'deleted' => false, 'network' => Protocol::FEDERATED]; $count = DBA::count('contact', $condition);