aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-12-22 16:33:41 -0800
committerfriendica <info@friendica.com>2014-12-22 16:33:41 -0800
commit63ae4b515022843cadb27940c13f2b72a8c5faa5 (patch)
tree17afe2fb8efc7760a8de8291364989873806f8aa /include
parent9544dffaf3ec7418a345a0ad81b8d493e609bcde (diff)
parent1049adeff644eddd8a77ed29376a694e804f0604 (diff)
downloadvolse-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.php29
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 '';
}
-