<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Util;
use Friendica\Core\Logger;
+use Friendica\Core\Protocol;
use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\APContact;
use Friendica\Model\Contact;
+use Friendica\Model\GServer;
use Friendica\Model\ItemURI;
use Friendica\Model\User;
use Friendica\Network\HTTPClient\Capability\ICanHandleHttpResponses;
if (!empty($gsid)) {
$insertFields['gsid'] = $gsid;
}
- if (!DBA::insert('inbox-status', $insertFields, Database::INSERT_IGNORE)) {
+ DBA::insert('inbox-status', $insertFields, Database::INSERT_IGNORE);
+
+ $status = DBA::selectFirst('inbox-status', [], ['url' => $url]);
+ if (empty($status)) {
Logger::warning('Unable to insert inbox-status row', $insertFields);
return;
}
-
- $status = DBA::selectFirst('inbox-status', [], ['url' => $url]);
}
if ($success) {
}
DBA::update('inbox-status', $fields, ['url' => $url]);
+
+ if (!empty($status['gsid'])) {
+ if ($success) {
+ GServer::setReachableById($status['gsid'], Protocol::ACTIVITYPUB);
+ } elseif ($status['shared']) {
+ GServer::setFailureById($status['gsid']);
+ }
+ }
}
/**
*/
public static function fetch(string $request, int $uid): array
{
- $curlResult = self::fetchRaw($request, $uid);
+ try {
+ $curlResult = self::fetchRaw($request, $uid);
+ } catch (\Exception $exception) {
+ Logger::notice('Error fetching url', ['url' => $request, 'exception' => $exception]);
+ return [];
+ }
if (empty($curlResult)) {
return [];
}
if (empty($algorithm)) {
- Logger::info('No alagorithm');
+ Logger::info('No algorithm');
return false;
}