The whole contact handling does work now, yeah ...

This commit is contained in:
Michael 2018-09-15 20:31:05 +00:00
parent 6a8ebc8639
commit 86bd283705
3 changed files with 26 additions and 9 deletions

View file

@ -337,7 +337,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
);
} else {
if ($network == Protocol::ACTIVITYPUB) {
ActivityPub::transmitContactActivity('Accept', $contact['url'], $contact['hub-verify'], $uid);
ActivityPub::transmitContactAccept($contact['url'], $contact['hub-verify'], $uid);
$pending = true;
} else {
$pending = false;

View file

@ -557,7 +557,7 @@ class Contact extends BaseObject
} elseif ($contact['network'] == Protocol::DIASPORA) {
Diaspora::sendUnshare($user, $contact);
} 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;
}
$url = $pub_contact['url'];
$url = defaults($datarray, 'author-link', $pub_contact['url']);
$name = $pub_contact['name'];
$photo = $pub_contact['photo'];
$nick = $pub_contact['nick'];
@ -1848,7 +1848,7 @@ class Contact extends BaseObject
}
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?

View file

@ -213,7 +213,24 @@ class ActivityPub
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);
@ -224,13 +241,13 @@ class ActivityPub
$owner = User::getOwnerDataById($uid);
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
'id' => 'https://pirati.ca/activity/' . System::createGUID(),
'type' => $activity,
'type' => 'Undo',
'actor' => $owner['url'],
'object' => ['id' => $id, 'type' => 'Follow',
'actor' => $owner['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);
}
@ -1099,10 +1116,10 @@ class ActivityPub
$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);
$cid = Contact::getIdForURL($activity['owner'], $uid);
if (empty($cid)) {
return;