aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/randprof.php17
1 files changed, 15 insertions, 2 deletions
diff --git a/mod/randprof.php b/mod/randprof.php
index bddb3251a..7678c15b9 100644
--- a/mod/randprof.php
+++ b/mod/randprof.php
@@ -1,11 +1,24 @@
<?php
+function randprof_fallback() {
+ $r = q("select channel_address from channel where channel_r_stream = 1 order by rand() limit 1");
+if($r)
+ return $r[0]['channel_address'];
+return '';
+}
function randprof_init(&$a) {
require_once('include/Contact.php');
$x = random_profile();
if($x)
goaway(chanlink_url($x));
- // FIXME this doesn't work at the moment as a fallback
- goaway($a->get_baseurl() . '/profile');
+ // Nothing there, so try a local, public channel instead
+ else $x = randprof_fallback();
+ if($x) {
+ $goaway = (z_root() . '/channel/' . $x);
+ goaway(chanlink_url($goaway));}
+
+ // If we STILL haven't got anything, send them to their own profile, or the front page
+
+ goaway($a->get_baseurl());
}