From 363753411914ab9d2678c5b47f432e5357ad7a04 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 23 Apr 2012 19:42:57 -0700 Subject: [PATCH] move unfriend to standalone function for use in account removal --- include/Contact.php | 43 +++++++++++++++++++++++++++++++++++++++++++ mod/contacts.php | 35 +++-------------------------------- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/include/Contact.php b/include/Contact.php index 9ba1e8ae5..537850e00 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -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' => '' // 'http://ostatus.org/schema/1.0/unfollow' . "\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. // 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. diff --git a/mod/contacts.php b/mod/contacts.php index 9d29d4bd1..8670c0c80 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -144,7 +144,7 @@ function contacts_content(&$a) { goaway($a->get_baseurl(true) . '/contacts'); return; // NOTREACHED } - + if($cmd === 'update') { // pull feed and consume it, which should subscribe to the hub. @@ -184,38 +184,9 @@ function contacts_content(&$a) { if($cmd === 'drop') { - // create an unfollow slap + require_once('include/Contact.php'); - if($orig_record[0]['network'] === NETWORK_OSTATUS) { - $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' => '' // 'http://ostatus.org/schema/1.0/unfollow' . "\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); - } + terminate_friendship($a->user,$a->contact,$orig_record[0]); contact_remove($orig_record[0]['id']); info( t('Contact has been removed.') . EOL );