+3
-3
@@ -51,14 +51,14 @@ class ACL extends BaseObject
|
||||
break;
|
||||
|
||||
case 'PRIVATE':
|
||||
$networks = [Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA];
|
||||
$networks = [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA];
|
||||
break;
|
||||
|
||||
case 'TWO_WAY':
|
||||
if (!empty($a->user['prvnets'])) {
|
||||
$networks = [Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA];
|
||||
$networks = [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA];
|
||||
} else {
|
||||
$networks = [Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA, Protocol::OSTATUS];
|
||||
$networks = [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::MAIL, Protocol::DIASPORA, Protocol::OSTATUS];
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -61,11 +61,11 @@ class GContact
|
||||
$search .= "%";
|
||||
|
||||
$results = DBA::p("SELECT `nurl` FROM `gcontact`
|
||||
WHERE NOT `hide` AND `network` IN (?, ?, ?) AND
|
||||
WHERE NOT `hide` AND `network` IN (?, ?, ?, ?) AND
|
||||
((`last_contact` >= `last_failure`) OR (`updated` >= `last_failure`)) AND
|
||||
(`addr` LIKE ? OR `name` LIKE ? OR `nick` LIKE ?) $extra_sql
|
||||
GROUP BY `nurl` ORDER BY `nurl` DESC LIMIT 1000",
|
||||
Protocol::DFRN, $ostatus, $diaspora, $search, $search, $search
|
||||
Protocol::DFRN, Protocol::ACTIVITYPUB, $ostatus, $diaspora, $search, $search, $search
|
||||
);
|
||||
|
||||
$gcontacts = [];
|
||||
@@ -138,7 +138,7 @@ class GContact
|
||||
}
|
||||
|
||||
// Assure that there are no parameter fragments in the profile url
|
||||
if (in_array($gcontact['network'], [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, ""])) {
|
||||
if (in_array($gcontact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, ""])) {
|
||||
$gcontact['url'] = self::cleanContactUrl($gcontact['url']);
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ class GContact
|
||||
throw new Exception('No name and photo for URL '.$gcontact['url']);
|
||||
}
|
||||
|
||||
if (!in_array($gcontact['network'], [Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA])) {
|
||||
if (!in_array($gcontact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA])) {
|
||||
throw new Exception('No federated network ('.$gcontact['network'].') detected for URL '.$gcontact['url']);
|
||||
}
|
||||
|
||||
@@ -651,7 +651,7 @@ class GContact
|
||||
self::fixAlternateContactAddress($contact);
|
||||
|
||||
// Remove unwanted parts from the contact url (e.g. "?zrl=...")
|
||||
if (in_array($contact["network"], [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS])) {
|
||||
if (in_array($contact["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS])) {
|
||||
$contact["url"] = self::cleanContactUrl($contact["url"]);
|
||||
}
|
||||
|
||||
|
||||
+26
-21
@@ -176,6 +176,8 @@ class Notifier
|
||||
if (!in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION, Delivery::RELOCATION])) {
|
||||
$parent = $items[0];
|
||||
|
||||
self::activityPubDelivery($a, $cmd, $item_id, $uid, $target_item, $parent);
|
||||
|
||||
$fields = ['network', 'author-id', 'owner-id'];
|
||||
$condition = ['uri' => $target_item["thr-parent"], 'uid' => $target_item["uid"]];
|
||||
$thr_parent = Item::selectFirst($fields, $condition);
|
||||
@@ -422,27 +424,6 @@ class Notifier
|
||||
}
|
||||
}
|
||||
|
||||
$inboxes = [];
|
||||
|
||||
if ($target_item['origin']) {
|
||||
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid);
|
||||
}
|
||||
|
||||
if ($parent['origin']) {
|
||||
$parent_inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid);
|
||||
$inboxes = array_merge($inboxes, $parent_inboxes);
|
||||
}
|
||||
|
||||
// Fill the item cache
|
||||
ActivityPub\Transmitter::createCachedActivityFromItem($item_id);
|
||||
|
||||
foreach ($inboxes as $inbox) {
|
||||
logger('Deliver ' . $item_id .' to ' . $inbox .' via ActivityPub', LOGGER_DEBUG);
|
||||
|
||||
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
|
||||
'APDelivery', $cmd, $item_id, $inbox, $uid);
|
||||
}
|
||||
|
||||
// send salmon slaps to mentioned remote tags (@foo@example.com) in OStatus posts
|
||||
// They are especially used for notifications to OStatus users that don't follow us.
|
||||
if (!Config::get('system', 'dfrn_only') && count($url_recipients) && ($public_message || $push_notify) && $normal_mode) {
|
||||
@@ -527,6 +508,30 @@ class Notifier
|
||||
return;
|
||||
}
|
||||
|
||||
private static function activityPubDelivery($a, $cmd, $item_id, $uid, $target_item, $parent)
|
||||
{
|
||||
$inboxes = [];
|
||||
|
||||
if ($target_item['origin']) {
|
||||
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid);
|
||||
}
|
||||
|
||||
if ($parent['origin']) {
|
||||
$parent_inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid);
|
||||
$inboxes = array_merge($inboxes, $parent_inboxes);
|
||||
}
|
||||
|
||||
// Fill the item cache
|
||||
ActivityPub\Transmitter::createCachedActivityFromItem($item_id);
|
||||
|
||||
foreach ($inboxes as $inbox) {
|
||||
logger('Deliver ' . $item_id .' to ' . $inbox .' via ActivityPub', LOGGER_DEBUG);
|
||||
|
||||
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
|
||||
'APDelivery', $cmd, $item_id, $inbox, $uid);
|
||||
}
|
||||
}
|
||||
|
||||
private static function isForumPost($item, $owner) {
|
||||
if (($item['author-id'] == $item['owner-id']) ||
|
||||
($owner['id'] == $item['contact-id']) ||
|
||||
|
||||
Reference in New Issue
Block a user