The whole contact handling does work now, yeah ...
This commit is contained in:
parent
6a8ebc8639
commit
86bd283705
3 changed files with 26 additions and 9 deletions
|
@ -337,7 +337,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
if ($network == Protocol::ACTIVITYPUB) {
|
if ($network == Protocol::ACTIVITYPUB) {
|
||||||
ActivityPub::transmitContactActivity('Accept', $contact['url'], $contact['hub-verify'], $uid);
|
ActivityPub::transmitContactAccept($contact['url'], $contact['hub-verify'], $uid);
|
||||||
$pending = true;
|
$pending = true;
|
||||||
} else {
|
} else {
|
||||||
$pending = false;
|
$pending = false;
|
||||||
|
|
|
@ -557,7 +557,7 @@ class Contact extends BaseObject
|
||||||
} elseif ($contact['network'] == Protocol::DIASPORA) {
|
} elseif ($contact['network'] == Protocol::DIASPORA) {
|
||||||
Diaspora::sendUnshare($user, $contact);
|
Diaspora::sendUnshare($user, $contact);
|
||||||
} elseif ($contact['network'] == Protocol::ACTIVITYPUB) {
|
} elseif ($contact['network'] == Protocol::ACTIVITYPUB) {
|
||||||
ActivityPub::transmitContactActivity('Undo', $contact['url'], '', $user['uid']);
|
ActivityPub::transmitContactUndo($contact['url'], '', $user['uid']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1834,7 +1834,7 @@ class Contact extends BaseObject
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = $pub_contact['url'];
|
$url = defaults($datarray, 'author-link', $pub_contact['url']);
|
||||||
$name = $pub_contact['name'];
|
$name = $pub_contact['name'];
|
||||||
$photo = $pub_contact['photo'];
|
$photo = $pub_contact['photo'];
|
||||||
$nick = $pub_contact['nick'];
|
$nick = $pub_contact['nick'];
|
||||||
|
@ -1848,7 +1848,7 @@ class Contact extends BaseObject
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($contact['network'] == Protocol::ACTIVITYPUB) {
|
if ($contact['network'] == Protocol::ACTIVITYPUB) {
|
||||||
ActivityPub::transmitContactActivity('Accept', $contact['url'], $contact['hub-verify'], $importer['uid']);
|
ActivityPub::transmitContactAccept($contact['url'], $contact['hub-verify'], $importer['uid']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// send email notification to owner?
|
// send email notification to owner?
|
||||||
|
|
|
@ -213,7 +213,24 @@ class ActivityPub
|
||||||
return self::transmit($data, $profile['notify'], $uid);
|
return self::transmit($data, $profile['notify'], $uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function transmitContactActivity($activity, $target, $id, $uid)
|
public static function transmitContactAccept($target, $id, $uid)
|
||||||
|
{
|
||||||
|
$profile = Probe::uri($target, Protocol::ACTIVITYPUB);
|
||||||
|
|
||||||
|
$owner = User::getOwnerDataById($uid);
|
||||||
|
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||||
|
'id' => 'https://pirati.ca/activity/' . System::createGUID(),
|
||||||
|
'type' => 'Accept',
|
||||||
|
'actor' => $owner['url'],
|
||||||
|
'object' => ['id' => $id, 'type' => 'Follow',
|
||||||
|
'actor' => $profile['url'],
|
||||||
|
'object' => $owner['url']]];
|
||||||
|
|
||||||
|
logger('Sending accept to ' . $target . ' for user ' . $uid . ' with id ' . $id, LOGGER_DEBUG);
|
||||||
|
return self::transmit($data, $profile['notify'], $uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function transmitContactUndo($target, $id, $uid)
|
||||||
{
|
{
|
||||||
$profile = Probe::uri($target, Protocol::ACTIVITYPUB);
|
$profile = Probe::uri($target, Protocol::ACTIVITYPUB);
|
||||||
|
|
||||||
|
@ -224,13 +241,13 @@ class ActivityPub
|
||||||
$owner = User::getOwnerDataById($uid);
|
$owner = User::getOwnerDataById($uid);
|
||||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||||
'id' => 'https://pirati.ca/activity/' . System::createGUID(),
|
'id' => 'https://pirati.ca/activity/' . System::createGUID(),
|
||||||
'type' => $activity,
|
'type' => 'Undo',
|
||||||
'actor' => $owner['url'],
|
'actor' => $owner['url'],
|
||||||
'object' => ['id' => $id, 'type' => 'Follow',
|
'object' => ['id' => $id, 'type' => 'Follow',
|
||||||
'actor' => $owner['url'],
|
'actor' => $owner['url'],
|
||||||
'object' => $profile['url']]];
|
'object' => $profile['url']]];
|
||||||
|
|
||||||
logger('Sending ' . $activity . ' to ' . $target . ' for user ' . $uid . ' with id ' . $id, LOGGER_DEBUG);
|
logger('Sending undo to ' . $target . ' for user ' . $uid . ' with id ' . $id, LOGGER_DEBUG);
|
||||||
return self::transmit($data, $profile['notify'], $uid);
|
return self::transmit($data, $profile['notify'], $uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1099,10 +1116,10 @@ class ActivityPub
|
||||||
$contact = false;
|
$contact = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = ['author-id' => Contact::getIdForURL($activity['owner'])];
|
$item = ['author-id' => Contact::getIdForURL($activity['owner']),
|
||||||
|
'author-link' => $activity['owner']];
|
||||||
|
|
||||||
Contact::addRelationship($owner, $contact, $item);
|
Contact::addRelationship($owner, $contact, $item);
|
||||||
|
|
||||||
$cid = Contact::getIdForURL($activity['owner'], $uid);
|
$cid = Contact::getIdForURL($activity['owner'], $uid);
|
||||||
if (empty($cid)) {
|
if (empty($cid)) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue