X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FCheckRelMeProfileLink.php;h=987619e19a4b1fc528fc43f74fc0757e2697963a;hb=9fbdcb5459e4acb158961427837612999253e046;hp=f1ab25e23188690f87f7e5597a4b2ef531e7e957;hpb=1c650980132716d7a90407b9eb5748b373658d2e;p=friendica.git diff --git a/src/Worker/CheckRelMeProfileLink.php b/src/Worker/CheckRelMeProfileLink.php index f1ab25e231..987619e19a 100644 --- a/src/Worker/CheckRelMeProfileLink.php +++ b/src/Worker/CheckRelMeProfileLink.php @@ -28,6 +28,7 @@ use Friendica\Model\Profile; use Friendica\Model\User; use Friendica\Network\HTTPClient\Client\HttpClientAccept; use Friendica\Network\HTTPClient\Client\HttpClientOptions; +use Friendica\Util\Network; use Friendica\Util\Strings; /* This class is used to verify the homepage link of a user profile. @@ -53,48 +54,45 @@ class CheckRelMeProfileLink */ public static function execute(int $uid) { - Logger::notice('Verifying the homepage', [$uid]); + Logger::notice('Verifying the homepage', ['uid' => $uid]); + Profile::update(['homepage_verified' => false], $uid); $homepageUrlVerified = false; - $owner = User::getOwnerDataById($uid); - Logger::notice(print_r($owner)); + $owner = User::getOwnerDataById($uid); if (!empty($owner['homepage'])) { - $xrd_timeout = DI::config()->get('system', 'xrd_timeout', 20); - $curlResult = DI::httpClient()->get($owner['homepage'], $accept_content = HttpClientAccept::HTML, [HttpClientOptions::TIMEOUT => $xrd_timeout]); - if ($curlResult->isTimeout()) { - Logger::notice('Could not check homepage link of the user because the page loading request timed out.', [$uid, $owner['homepage']]); - } else { + $xrd_timeout = DI::config()->get('system', 'xrd_timeout'); + $curlResult = DI::httpClient()->get($owner['homepage'], $accept_content = HttpClientAccept::HTML, [HttpClientOptions::TIMEOUT => $xrd_timeout]); + if ($curlResult->isSuccess()) { $content = $curlResult->getBody(); if (!$content) { - Logger::notice('Empty body of the fetched homepage link). Cannot verify the relation to profile of UID %s.', [$uid, $owner['homepage']]); + Logger::notice('Empty body of the fetched homepage link). Cannot verify the relation to profile of UID %s.', ['uid' => $uid, 'owner homepage' => $owner['homepage']]); } else { $doc = new DOMDocument(); - $doc->loadHTML($content); + @$doc->loadHTML($content); if (!$doc) { Logger::notice('Could not parse the content'); } else { foreach ($doc->getElementsByTagName('a') as $link) { $rel = $link->getAttribute('rel'); - if ($rel=='me') { + if ($rel == 'me') { $href = $link->getAttribute('href'); - if (strpos($href, 'http')!==false) { - if (!$homepageUrlVerified) { - $homepageUrlVerified = Strings::compareLink($owner['url'], $href); - } + if (!$homepageUrlVerified && Network::isValidHttpUrl($href)) { + $homepageUrlVerified = Strings::compareLink($owner['url'], $href); } } } } if ($homepageUrlVerified) { - Profile::update(['homepage_verified' => 1], $uid); - Logger::notice('Homepage URL verified', [$uid, $owner['homepage']]); + Profile::update(['homepage_verified' => true], $uid); + Logger::notice('Homepage URL verified', ['uid' => $uid, 'owner homepage' => $owner['homepage']]); } else { - Profile::update(['homepage_verified' => 0], $uid); - Logger::notice('Homepage URL could not be verified', [$uid, $owner['homepage']]); + Logger::notice('Homepage URL could not be verified', ['uid' => $uid, 'owner homepage' => $owner['homepage']]); } } + } else { + Logger::notice('Could not cURL the homepage URL', ['owner homepage' => $owner['homepage']]); } } else { - Logger::notice('The user has no homepage link.', [$uid]); + Logger::notice('The user has no homepage link.', ['uid' => $uid]); } } }