Relay code reworked to support AP delivery

This commit is contained in:
Michael 2020-11-15 23:28:05 +00:00
parent 490ce976c1
commit 0384bf3e76
8 changed files with 285 additions and 206 deletions

View file

@ -42,6 +42,7 @@ use Friendica\Model\Tag;
use Friendica\Model\User;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\Relay;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\HTTPSignature;
use Friendica\Util\JsonLD;
@ -80,6 +81,27 @@ class Transmitter
return $inboxes;
}
/**
* Add relay servers to the list of inboxes
*
* @param array $inboxes
* @return array inboxes with added relay servers
*/
public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = [])
{
$relays = Relay::getList($item_id, [], [Protocol::ACTIVITYPUB]);
if (empty($relays)) {
return $inboxes;
}
foreach ($relays as $relay) {
if (!in_array($relay['batch'], $inboxes)) {
$inboxes[] = $relay['batch'];
}
}
return $inboxes;
}
/**
* Subscribe to a relay
*