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

This commit is contained in:
friendica
2013-01-25 16:18:35 -08:00
parent 318d75a86a
commit c96eb6dc97
6 changed files with 43 additions and 23 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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']);
}
}