diff options
author | friendica <info@friendica.com> | 2014-12-22 16:33:41 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-12-22 16:33:41 -0800 |
commit | 63ae4b515022843cadb27940c13f2b72a8c5faa5 (patch) | |
tree | 17afe2fb8efc7760a8de8291364989873806f8aa /include | |
parent | 9544dffaf3ec7418a345a0ad81b8d493e609bcde (diff) | |
parent | 1049adeff644eddd8a77ed29376a694e804f0604 (diff) | |
download | volse-hubzilla-63ae4b515022843cadb27940c13f2b72a8c5faa5.tar.gz volse-hubzilla-63ae4b515022843cadb27940c13f2b72a8c5faa5.tar.bz2 volse-hubzilla-63ae4b515022843cadb27940c13f2b72a8c5faa5.zip |
Merge https://github.com/friendica/red into pending_merge
Diffstat (limited to 'include')
-rw-r--r-- | include/Contact.php | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/include/Contact.php b/include/Contact.php index 4fd43db44..4b45a2392 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -581,12 +581,29 @@ function contact_remove($channel_id, $abook_id) { function random_profile() { $randfunc = db_getfunc('rand'); - $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > %s - interval %s order by $randfunc limit 1", - db_utcnow(), db_quoteinterval('30 day') - ); - if($r) - return $r[0]['xchan_url']; + + $checkrandom = get_config('randprofile','check'); // False by default + $retryrandom = intval(get_config('randprofile','retry')); + if($retryrandom === false) $retryrandom = 5; + + for($i = 0; $i < $retryrandom; $i++) { + $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > %s - interval %s order by $randfunc limit 1", + db_utcnow(), db_quoteinterval('30 day') + ); + + if(!$r) return ''; // Couldn't get a random channel + + if($checkrandom) { + if(z_fetch_url($r[0]['xchan_url'])['success']) + return $r[0]['xchan_url']; + else + logger('Random channel turned out to be bad.'); + } + else { + return $r[0]['xchan_url']; + } + + } return ''; } - |