X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FModel%2FGContact.php;h=2606edb9e43803fd4dc2a3349267602a150aa095;hb=505cca942b8facaaca416087b4ddd6647239e007;hp=a13b719a9c3aae252083e2f7ab78dbb2795eeafc;hpb=2722c8e595e61341e6a475972b09fff75aaf1ac0;p=friendica.git diff --git a/src/Model/GContact.php b/src/Model/GContact.php index a13b719a9c..2606edb9e4 100644 --- a/src/Model/GContact.php +++ b/src/Model/GContact.php @@ -43,6 +43,19 @@ use Friendica\Util\Strings; */ class GContact { + /** + * No discovery of followers/followings + */ + const DISCOVERY_NONE = 0; + /** + * Only discover followers/followings from direct contacts + */ + const DISCOVERY_DIRECT = 1; + /** + * Recursive discovery of followers/followings + */ + const DISCOVERY_RECURSIVE = 2; + /** * Search global contact table by nick or name * @@ -1282,7 +1295,7 @@ class GContact * @param string $url URL of a profile * @return void */ - public static function discoverFollowers(string $url, int $following_gcid = 0, int $follower_gcid = 0) + public static function discoverFollowers(string $url) { $gcontact = DBA::selectFirst('gcontact', ['id', 'last_discovery'], ['nurl' => Strings::normaliseLink(($url))]); if (!DBA::isResult($gcontact)) { @@ -1296,16 +1309,6 @@ class GContact $gcid = $gcontact['id']; - if (!empty($following_gcid)) { - $fields = ['gcid' => $following_gcid, 'follower-gcid' => $gcid]; - Logger::info('Set relation for followed gcontact', $fields); - DBA::update('gfollower', ['deleted' => false], $fields, true); - } elseif (!empty($follower_gcid)) { - $fields = ['gcid' => $gcid, 'follower-gcid' => $follower_gcid]; - Logger::info('Set relation for following gcontact', $fields); - DBA::update('gfollower', ['deleted' => false], $fields, true); - } - $apcontact = APContact::getByURL($url); if (!empty($apcontact['followers']) && is_string($apcontact['followers'])) { @@ -1340,27 +1343,26 @@ class GContact foreach ($contacts as $contact) { $gcontact = DBA::selectFirst('gcontact', ['id'], ['nurl' => Strings::normaliseLink(($contact))]); if (DBA::isResult($gcontact)) { + $fields = []; if (in_array($contact, $followers)) { $fields = ['gcid' => $gcid, 'follower-gcid' => $gcontact['id']]; } elseif (in_array($contact, $followings)) { $fields = ['gcid' => $gcontact['id'], 'follower-gcid' => $gcid]; } - Logger::info('Set relation between contacts', $fields); - DBA::update('gfollower', ['deleted' => false], $fields, true); - continue; - } - - $follower_gcid = 0; - $following_gcid = 0; - if (in_array($contact, $followers)) { - $following_gcid = $gcid; - } elseif (in_array($contact, $followings)) { - $follower_gcid = $gcid; + if (!empty($fields)) { + Logger::info('Set relation between contacts', $fields); + DBA::update('gfollower', ['deleted' => false], $fields, true); + continue; + } } - Logger::info('Discover new AP contact', ['url' => $contact]); - Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact, '', $following_gcid, $follower_gcid); + if (!Network::isUrlBlocked($contact)) { + Logger::info('Discover new AP contact', ['url' => $contact]); + Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact); + } else { + Logger::info('No discovery, the URL is blocked.', ['url' => $contact]); + } } if (!empty($followers)) { // Delete all followers that aren't undeleted @@ -1395,8 +1397,12 @@ class GContact if (DBA::exists('gcontact', ['nurl' => Strings::normaliseLink(($entry['value']))])) { continue; } - Logger::info('Discover new PoCo contact', ['url' => $entry['value']]); - Worker::add(PRIORITY_LOW, 'UpdateGContact', $entry['value']); + if (!Network::isUrlBlocked($entry['value'])) { + Logger::info('Discover new PoCo contact', ['url' => $entry['value']]); + Worker::add(PRIORITY_LOW, 'UpdateGContact', $entry['value']); + } else { + Logger::info('No discovery, the URL is blocked.', ['url' => $entry['value']]); + } } } }