Merge pull request #8741 from MrPetovan/task/hook-probe-detect

Add probe_detect hook
This commit is contained in:
Michael Vogel
2020-06-06 23:06:51 +02:00
committed by GitHub
2 changed files with 27 additions and 33 deletions
+14 -33
View File
@@ -24,6 +24,7 @@ namespace Friendica\Network;
use DOMDocument;
use DomXPath;
use Friendica\Core\Cache\Duration;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\System;
@@ -617,6 +618,19 @@ class Probe
{
$parts = parse_url($uri);
$hookData = [
'uri' => $uri,
'network' => $network,
'uid' => $uid,
'result' => [],
];
Hook::callAll('probe_detect', $hookData);
if ($hookData['result']) {
return $hookData['result'];
}
if (!empty($parts["scheme"]) && !empty($parts["host"])) {
$host = $parts["host"];
if (!empty($parts["port"])) {
@@ -1731,39 +1745,6 @@ class Probe
$data['network'] = Protocol::TWITTER;
$data['baseurl'] = 'https://twitter.com';
$curlResult = Network::curl($data['url'], false);
if (!$curlResult->isSuccess()) {
return [];
}
$body = $curlResult->getBody();
$doc = new DOMDocument();
@$doc->loadHTML($body);
$xpath = new DOMXPath($doc);
$list = $xpath->query('//img[@class]');
foreach ($list as $node) {
$img_attr = [];
if ($node->attributes->length) {
foreach ($node->attributes as $attribute) {
$img_attr[$attribute->name] = $attribute->value;
}
}
if (empty($img_attr['class'])) {
continue;
}
if (strpos($img_attr['class'], 'ProfileAvatar-image') !== false) {
if (!empty($img_attr['src'])) {
$data['photo'] = $img_attr['src'];
}
if (!empty($img_attr['alt'])) {
$data['name'] = $img_attr['alt'];
}
}
}
return $data;
}