|
|
@ -99,6 +99,11 @@ function tumblr_probe_detect(array &$hookData)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$hookData['result'] = tumblr_get_contact_by_url($hookData['uri']);
|
|
|
|
$hookData['result'] = tumblr_get_contact_by_url($hookData['uri']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Authoritative probe should set the result even if the probe was unsuccessful
|
|
|
|
|
|
|
|
if ($hookData['network'] == Protocol::TUMBLR && empty($hookData['result'])) {
|
|
|
|
|
|
|
|
$hookData['result'] = [];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function tumblr_item_by_link(array &$hookData)
|
|
|
|
function tumblr_item_by_link(array &$hookData)
|
|
|
@ -1213,24 +1218,25 @@ function tumblr_enabled_for_user(int $uid)
|
|
|
|
* Get a contact array from a Tumblr url
|
|
|
|
* Get a contact array from a Tumblr url
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param string $url
|
|
|
|
* @param string $url
|
|
|
|
* @return array
|
|
|
|
* @return array|null
|
|
|
|
|
|
|
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
function tumblr_get_contact_by_url(string $url): array
|
|
|
|
function tumblr_get_contact_by_url(string $url): ?array
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$consumer_key = DI::config()->get('tumblr', 'consumer_key');
|
|
|
|
$consumer_key = DI::config()->get('tumblr', 'consumer_key');
|
|
|
|
if (empty($consumer_key)) {
|
|
|
|
if (empty($consumer_key)) {
|
|
|
|
return [];
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!preg_match('#^https?://tumblr.com/(.+)#', $url, $matches) && !preg_match('#^https?://www\.tumblr.com/(.+)#', $url, $matches) && !preg_match('#^https?://(.+)\.tumblr.com#', $url, $matches)) {
|
|
|
|
if (!preg_match('#^https?://tumblr.com/(.+)#', $url, $matches) && !preg_match('#^https?://www\.tumblr.com/(.+)#', $url, $matches) && !preg_match('#^https?://(.+)\.tumblr.com#', $url, $matches)) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
$curlResult = DI::httpClient()->get($url);
|
|
|
|
$curlResult = DI::httpClient()->get($url);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
return [];
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$html = $curlResult->getBody();
|
|
|
|
$html = $curlResult->getBody();
|
|
|
|
if (empty($html)) {
|
|
|
|
if (empty($html)) {
|
|
|
|
return [];
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$doc = new DOMDocument();
|
|
|
|
$doc = new DOMDocument();
|
|
|
|
@$doc->loadHTML($html);
|
|
|
|
@$doc->loadHTML($html);
|
|
|
@ -1244,7 +1250,7 @@ function tumblr_get_contact_by_url(string $url): array
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($blog)) {
|
|
|
|
if (empty($blog)) {
|
|
|
|
return [];
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Logger::debug('Update Tumblr blog data', ['url' => $url]);
|
|
|
|
Logger::debug('Update Tumblr blog data', ['url' => $url]);
|
|
|
@ -1253,7 +1259,7 @@ function tumblr_get_contact_by_url(string $url): array
|
|
|
|
$body = $curlResult->getBody();
|
|
|
|
$body = $curlResult->getBody();
|
|
|
|
$data = json_decode($body);
|
|
|
|
$data = json_decode($body);
|
|
|
|
if (empty($data)) {
|
|
|
|
if (empty($data)) {
|
|
|
|
return [];
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$baseurl = 'https://tumblr.com';
|
|
|
|
$baseurl = 'https://tumblr.com';
|
|
|
|