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:
		| @@ -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; | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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']); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user