use Friendica\Protocol\Activity;
use Friendica\Util\Network;
use Friendica\Core\Worker;
-use Friendica\Model\Conversation;
use Friendica\Model\FContact;
use Friendica\Model\Item;
use Friendica\Protocol\Relay;
// Also transmit via Diaspora if this is a direct answer to a Diaspora comment.
// This is done since the uri wouldn't match (Diaspora doesn't transmit it)
// Also transmit relayed posts from Diaspora contacts via Diaspora.
- if (!empty($parent) && !empty($thr_parent) && in_array(Protocol::DIASPORA, [$parent['network'], $thr_parent['network'], $target_item['network']])) {
+ if (($contact['network'] != Protocol::DIASPORA) && in_array(Protocol::DIASPORA, [$parent['network'] ?? '', $thr_parent['network'] ?? '', $target_item['network']])) {
+ Logger::info('Enforcing the Diaspora protocol', ['id' => $contact['id'], 'network' => $contact['network'], 'parent' => $parent['network'], 'thread-parent' => $thr_parent['network'], 'post' => $target_item['network']]);
$contact['network'] = Protocol::DIASPORA;
}
$thr_parent = $parent;
}
- Logger::log('GUID: ' . $target_item["guid"] . ': Parent is ' . $parent['network'] . '. Thread parent is ' . $thr_parent['network'], Logger::DEBUG);
+ Logger::info('Got post', ['guid' => $target_item['guid'], 'uri-id' => $target_item['uri-id'], 'network' => $target_item['network'], 'parent-network' => $parent['network'], 'thread-parent-network' => $thr_parent['network']]);
if (!self::isRemovalActivity($cmd, $owner, Protocol::ACTIVITYPUB)) {
$apdelivery = self::activityPubDelivery($cmd, $target_item, $parent, $thr_parent, $a->getQueueValue('priority'), $a->getQueueValue('created'), $owner);
{
// Don't deliver via AP when the starting post isn't from a federated network
if (!in_array($parent['network'], Protocol::FEDERATED)) {
+ Logger::info('Parent network is no federated network, so no AP delivery', ['network' => $parent['network']]);
return ['count' => 0, 'contacts' => []];
}
// Don't deliver via AP when the starting post is delivered via Diaspora
if ($parent['network'] == Protocol::DIASPORA) {
+ Logger::info('Parent network is Diaspora, so no AP delivery');
return ['count' => 0, 'contacts' => []];
}
// Also don't deliver when the direct thread parent was delivered via Diaspora
if ($thr_parent['network'] == Protocol::DIASPORA) {
+ Logger::info('Threat parent network is Diaspora, so no AP delivery');
return ['count' => 0, 'contacts' => []];
}
// Posts from Diaspora contacts are transmitted via Diaspora
if ($target_item['network'] == Protocol::DIASPORA) {
+ Logger::info('Post network is Diaspora, so no AP delivery');
return ['count' => 0, 'contacts' => []];
}