- **uid** (input): the user to return the contact data for (can be empty for public contacts).
- **result** (output): Set by the hook function to indicate a successful detection.
+### follow
+
+Called before adding a new contact for a user to handle non-native network remote contact (like Twitter).
+
+Hook data:
+
+- **url** (input): URL of the remote contact.
+- **contact** (output): should be filled with the contact (with uid = user creating the contact) array if follow was successful.
+
+### unfollow
+
+Called when unfollowing a remote contact on a non-native network (like Twitter)
+
+Hook data:
+- **contact** (input): the remote contact (uid = local unfollowing user id) array.
+- **dissolve** (input): whether to stop sharing with the remote contact as well.
+
## Complete list of hook callbacks
Here is a complete list of all hook callbacks with file locations (as of 24-Sep-2018). Please see the source for details of any hooks not documented above.
Hook::callAll('contact_photo_menu', $args);
Hook::callAll('follow', $arr);
+ Hook::callAll('unfollow', $hook_data);
### src/Model/Profile.php
Hook::callAll('contact_photo_menu', $args);
Hook::callAll('follow', $arr);
+ Hook::callAll('unfollow', $hook_data);
### src/Model/Profile.php
Contact::terminateFriendship($owner, $contact, $dissolve);
}
- // Sharing-only contacts get deleted as there no relationship any more
+ // Sharing-only contacts get deleted as there no relationship anymore
if ($dissolve) {
Contact::remove($contact['id']);
$return_path = $base_return_path;
if ($dissolve) {
ActivityPub\Transmitter::sendContactReject($contact['url'], $contact['hub-verify'], $user['uid']);
}
+ } else {
+ $hook_data = [
+ 'contact' => $contact,
+ 'dissolve' => $dissolve,
+ ];
+ Hook::callAll('unfollow', $hook_data);
}
}