mirror of
https://github.com/friendica/friendica
synced 2024-12-22 23:20:16 +00:00
Add new hook to support unfollow contacts on non-native networks
This commit is contained in:
parent
00382dd39e
commit
d8febbe45e
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).
|
- **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.
|
- **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
|
## 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.
|
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('contact_photo_menu', $args);
|
||||||
Hook::callAll('follow', $arr);
|
Hook::callAll('follow', $arr);
|
||||||
|
Hook::callAll('unfollow', $hook_data);
|
||||||
|
|
||||||
### src/Model/Profile.php
|
### 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('contact_photo_menu', $args);
|
||||||
Hook::callAll('follow', $arr);
|
Hook::callAll('follow', $arr);
|
||||||
|
Hook::callAll('unfollow', $hook_data);
|
||||||
|
|
||||||
### src/Model/Profile.php
|
### src/Model/Profile.php
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,7 @@ function unfollow_process(string $url)
|
||||||
Contact::terminateFriendship($owner, $contact, $dissolve);
|
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) {
|
if ($dissolve) {
|
||||||
Contact::remove($contact['id']);
|
Contact::remove($contact['id']);
|
||||||
$return_path = $base_return_path;
|
$return_path = $base_return_path;
|
||||||
|
|
|
@ -845,6 +845,12 @@ class Contact
|
||||||
if ($dissolve) {
|
if ($dissolve) {
|
||||||
ActivityPub\Transmitter::sendContactReject($contact['url'], $contact['hub-verify'], $user['uid']);
|
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