move unfriend to standalone function for use in account removal
This commit is contained in:
parent
f265863435
commit
3637534119
2 changed files with 46 additions and 32 deletions
|
@ -73,6 +73,49 @@ function contact_remove($id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// sends an unfriend message. Does not remove the contact
|
||||||
|
|
||||||
|
function terminate_friendship($user,$self,$contact) {
|
||||||
|
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
|
require_once('include/datetime.php');
|
||||||
|
|
||||||
|
if($contact['network'] === NETWORK_OSTATUS) {
|
||||||
|
|
||||||
|
$slap = replace_macros(get_markup_template('follow_slap.tpl'), array(
|
||||||
|
'$name' => $user['username'],
|
||||||
|
'$profile_page' => $a->get_baseurl() . '/profile/' . $user['nickname'],
|
||||||
|
'$photo' => $self['photo'],
|
||||||
|
'$thumb' => $self['thumb'],
|
||||||
|
'$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME),
|
||||||
|
'$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':unfollow:' . random_string(),
|
||||||
|
'$title' => '',
|
||||||
|
'$type' => 'text',
|
||||||
|
'$content' => t('stopped following'),
|
||||||
|
'$nick' => $user['nickname'],
|
||||||
|
'$verb' => 'http://ostatus.org/schema/1.0/unfollow', // ACTIVITY_UNFOLLOW,
|
||||||
|
'$ostat_follow' => '' // '<as:verb>http://ostatus.org/schema/1.0/unfollow</as:verb>' . "\r\n"
|
||||||
|
));
|
||||||
|
|
||||||
|
if((x($contact,'notify')) && (strlen($contact['notify']))) {
|
||||||
|
require_once('include/salmon.php');
|
||||||
|
slapper($user,$contact['notify'],$slap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($contact['network'] === NETWORK_DIASPORA) {
|
||||||
|
require_once('include/diaspora.php');
|
||||||
|
diaspora_unshare($user,$contact);
|
||||||
|
}
|
||||||
|
elseif($contact['network'] === NETWORK_DFRN) {
|
||||||
|
require_once('include/items.php');
|
||||||
|
dfrn_deliver($user,$contact,'placeholder', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Contact has refused to recognise us as a friend. We will start a countdown.
|
// Contact has refused to recognise us as a friend. We will start a countdown.
|
||||||
// If they still don't recognise us in 32 days, the relationship is over,
|
// If they still don't recognise us in 32 days, the relationship is over,
|
||||||
// and we won't waste any more time trying to communicate with them.
|
// and we won't waste any more time trying to communicate with them.
|
||||||
|
|
|
@ -184,38 +184,9 @@ function contacts_content(&$a) {
|
||||||
|
|
||||||
if($cmd === 'drop') {
|
if($cmd === 'drop') {
|
||||||
|
|
||||||
// create an unfollow slap
|
require_once('include/Contact.php');
|
||||||
|
|
||||||
if($orig_record[0]['network'] === NETWORK_OSTATUS) {
|
terminate_friendship($a->user,$a->contact,$orig_record[0]);
|
||||||
$tpl = get_markup_template('follow_slap.tpl');
|
|
||||||
$slap = replace_macros($tpl, array(
|
|
||||||
'$name' => $a->user['username'],
|
|
||||||
'$profile_page' => $a->get_baseurl() . '/profile/' . $a->user['nickname'],
|
|
||||||
'$photo' => $a->contact['photo'],
|
|
||||||
'$thumb' => $a->contact['thumb'],
|
|
||||||
'$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME),
|
|
||||||
'$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':unfollow:' . random_string(),
|
|
||||||
'$title' => '',
|
|
||||||
'$type' => 'text',
|
|
||||||
'$content' => t('stopped following'),
|
|
||||||
'$nick' => $a->user['nickname'],
|
|
||||||
'$verb' => 'http://ostatus.org/schema/1.0/unfollow', // ACTIVITY_UNFOLLOW,
|
|
||||||
'$ostat_follow' => '' // '<as:verb>http://ostatus.org/schema/1.0/unfollow</as:verb>' . "\r\n"
|
|
||||||
));
|
|
||||||
|
|
||||||
if((x($orig_record[0],'notify')) && (strlen($orig_record[0]['notify']))) {
|
|
||||||
require_once('include/salmon.php');
|
|
||||||
slapper($a->user,$orig_record[0]['notify'],$slap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($orig_record[0]['network'] === NETWORK_DIASPORA) {
|
|
||||||
require_once('include/diaspora.php');
|
|
||||||
diaspora_unshare($a->user,$orig_record[0]);
|
|
||||||
}
|
|
||||||
elseif($orig_record[0]['network'] === NETWORK_DFRN) {
|
|
||||||
require_once('include/items.php');
|
|
||||||
dfrn_deliver($a->user,$orig_record[0],'placeholder', 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
contact_remove($orig_record[0]['id']);
|
contact_remove($orig_record[0]['id']);
|
||||||
info( t('Contact has been removed.') . EOL );
|
info( t('Contact has been removed.') . EOL );
|
||||||
|
|
Loading…
Reference in a new issue