mirror of
https://github.com/friendica/friendica
synced 2024-11-18 20:23:44 +00:00
Merge pull request #10761 from MrPetovan/task/10734-unfollow-hook
Add new hook to support unfollow contacts on non-native networks
This commit is contained in:
commit
45277bbc47
4 changed files with 26 additions and 1 deletions
|
@ -479,6 +479,23 @@ Hook data:
|
|||
- **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.
|
||||
|
@ -648,6 +665,7 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
|
|||
|
||||
Hook::callAll('contact_photo_menu', $args);
|
||||
Hook::callAll('follow', $arr);
|
||||
Hook::callAll('unfollow', $hook_data);
|
||||
|
||||
### src/Model/Profile.php
|
||||
|
||||
|
|
|
@ -356,6 +356,7 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
|
|||
|
||||
Hook::callAll('contact_photo_menu', $args);
|
||||
Hook::callAll('follow', $arr);
|
||||
Hook::callAll('unfollow', $hook_data);
|
||||
|
||||
### src/Model/Profile.php
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ function unfollow_process(string $url)
|
|||
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;
|
||||
|
|
|
@ -845,6 +845,12 @@ class Contact
|
|||
if ($dissolve) {
|
||||
ActivityPub\Transmitter::sendContactReject($contact['url'], $contact['hub-verify'], $user['uid']);
|
||||
}
|
||||
} else {
|
||||
$hook_data = [
|
||||
'contact' => $contact,
|
||||
'dissolve' => $dissolve,
|
||||
];
|
||||
Hook::callAll('unfollow', $hook_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue