X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FAddContact.php;h=b27c54ed76f885d889f61cc5d3687aecc1ad210a;hb=f61fd93db02bc2d66e1473ca34dc1154e77217a3;hp=47d9d01375aba5181870df91fc4230fb36316259;hpb=4f362f66933e088efdc1cc086014b33da80827e0;p=friendica.git diff --git a/src/Worker/AddContact.php b/src/Worker/AddContact.php index 47d9d01375..b27c54ed76 100644 --- a/src/Worker/AddContact.php +++ b/src/Worker/AddContact.php @@ -1,13 +1,30 @@ . + * */ namespace Friendica\Worker; -use Friendica\Core\Logger; +use Friendica\DI; use Friendica\Model\Contact; +use Friendica\Network\HTTPException\InternalServerErrorException; +use Friendica\Network\HTTPException\NotFoundException; class AddContact { @@ -18,7 +35,22 @@ class AddContact */ public static function execute(int $uid, string $url) { - $result = Contact::createFromProbe($uid, $url, '', false); - Logger::info('Added contact', ['uid' => $uid, 'url' => $url, 'result' => $result]); + try { + if ($uid == 0) { + // Adding public contact + $result = Contact::getIdForURL($url); + DI::logger()->info('Added public contact', ['url' => $url, 'result' => $result]); + return; + } + + $result = Contact::createFromProbeForUser($uid, $url); + DI::logger()->info('Added contact for user', ['uid' => $uid, 'url' => $url, 'result' => $result]); + } catch (InternalServerErrorException $e) { + DI::logger()->warning('Internal server error.', ['exception' => $e, 'uid' => $uid, 'url' => $url]); + } catch (NotFoundException $e) { + DI::logger()->notice('uid not found.', ['exception' => $e, 'uid' => $uid, 'url' => $url]); + } catch (\ImagickException $e) { + DI::logger()->notice('Imagick not found.', ['exception' => $e, 'uid' => $uid, 'url' => $url]); + } } }