From c96eb6dc971dc74724a2c20fccf02d34dd08d156 Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 25 Jan 2013 16:18:35 -0800 Subject: make contact_remove sort of work so I can actually get rid of Oliver's and Michael J's dead contacts and not poll them every ten minutes forever --- include/Contact.php | 48 ++++++++++++++++++++++++++++++++++-------------- include/auth.php | 4 ++-- include/items.php | 4 ++-- 3 files changed, 38 insertions(+), 18 deletions(-) (limited to 'include') diff --git a/include/Contact.php b/include/Contact.php index 9bb047060..be4bd9212 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -126,28 +126,46 @@ function user_remove($uid) { } -function contact_remove($id) { +function contact_remove($channel_id, $abook_id) { - $r = q("select uid from contact where id = %d limit 1", - intval($id) - ); - if((! count($r)) || (! intval($r[0]['uid']))) - return; + if((! $channel_id) || (! $abook_id)) + return false; - $archive = get_pconfig($r[0]['uid'], 'system','archive_removed_contacts'); + $archive = get_pconfig($channel_id, 'system','archive_removed_contacts'); if($archive) { - q("update contact set `archive` = 1, `network` = 'none', `writable` = 0 where id = %d limit 1", - intval($id) + q("update abook set abook_flags = abook_flags | %d where abook_id = %d and abook_channel = %d limit 1", + intval(ABOOK_FLAG_ARCHIVE), + intval($abook_id), + intval($channel_id) ); - return; + return true; } - q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1", - intval($id) + $r = q("select * from abook where abook_id = %d and abook_channel = %d limit 1", + intval($abook_id), + intval($channel_id) ); - q("DELETE FROM `item` WHERE `contact-id` = %d ", - intval($id) + + if(! $r) + return false; + + $abook = $r[0]; + + if($abook['abook_flags'] & ABOOK_FLAG_SELF) + return false; + + q("delete from item where author_xchan = '%s' and uid = %d", + dbesc($abook['abook_xchan']), + intval($channel_id) ); + + q("delete from abook where abook_id = %d and channel_id = %d limit 1", + intval($abook['abook_id']), + intval($channel_id) + ); + +/* +// FIXME q("DELETE FROM `photo` WHERE `contact-id` = %d ", intval($id) ); @@ -160,7 +178,9 @@ function contact_remove($id) { q("DELETE FROM `queue` WHERE `cid` = %d ", intval($id) ); +*/ + return true; } diff --git a/include/auth.php b/include/auth.php index 9cdbd80d5..68dc9308f 100644 --- a/include/auth.php +++ b/include/auth.php @@ -63,7 +63,7 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p info( t('Logged out.') . EOL); goaway(z_root()); } -dbg(1); + if(x($_SESSION,'visitor_id') && (! x($_SESSION,'uid'))) { $r = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_hash = '%s' limit 1", dbesc($_SESSION['visitor_id']) @@ -77,7 +77,7 @@ dbg(1); } $a->set_groups(init_groups_visitor($_SESSION['visitor_id'])); } -dbg(0); + if(x($_SESSION,'uid') || x($_SESSION,'account_id')) { // already logged in user returning diff --git a/include/items.php b/include/items.php index bce1f2dfa..c6a8c195f 100755 --- a/include/items.php +++ b/include/items.php @@ -3631,7 +3631,7 @@ function lose_follower($importer,$contact,$datarray,$item) { ); } else { - contact_remove($contact['id']); +// contact_remove($contact['id']); } } @@ -3644,7 +3644,7 @@ function lose_sharer($importer,$contact,$datarray,$item) { ); } else { - contact_remove($contact['id']); +// contact_remove($contact['id']); } } -- cgit v1.2.3