mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 05:15:16 +00:00
Option to check that a random profile works before returning it
This commit is contained in:
parent
c819c276f0
commit
83eb7a10e2
2 changed files with 46 additions and 24 deletions
|
@ -106,24 +106,29 @@ This document assumes you're an administrator.
|
|||
list of names (no spaces)
|
||||
[b]system > auto_follow[/b]
|
||||
Make the first channel of an account auto-follow channels listed here - comma separated list of webbies (member@hub addresses).
|
||||
[b]system > admin_email[/b]
|
||||
Specifies the administrators email for this site. This is initially set during install.
|
||||
[b]system > cron_hour[/b]
|
||||
Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
|
||||
[b]system > minimum_feedcheck_minutes[/b]
|
||||
The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob
|
||||
[b]system > blacklisted_sites[/b]
|
||||
An array of specific hubs to block from this hub completely.
|
||||
[b]system > ignore_imagick[/b]
|
||||
Ignore imagick and use GD, even if imagick is installed on the server. Prevents some issues with PNG files in older versions of imagick.
|
||||
[b]system > no_age_restriction[/b]
|
||||
Do not restric registration to people over the age of 13
|
||||
[b]system > override_poll_lockfile[/b]
|
||||
Ignore the lock file in the poller process to allow more than one process to run at a time.
|
||||
[b]system > projecthome[/b]
|
||||
Display the project page on your home page for logged out viewers.
|
||||
[b]system > sellpage[/b]
|
||||
A URL shown in the public sites list to sell your hub - display service classes, etc.
|
||||
[b]system > admin_email[/b]
|
||||
Specifies the administrators email for this site. This is initially set during install.
|
||||
[b]system > cron_hour[/b]
|
||||
Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
|
||||
[b]system > minimum_feedcheck_minutes[/b]
|
||||
The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob
|
||||
[b]system > blacklisted_sites[/b]
|
||||
An array of specific hubs to block from this hub completely.
|
||||
[b]system > ignore_imagick[/b]
|
||||
Ignore imagick and use GD, even if imagick is installed on the server. Prevents some issues with PNG files in older versions of imagick.
|
||||
[b]system > no_age_restriction[/b]
|
||||
Do not restric registration to people over the age of 13
|
||||
[b]system > override_poll_lockfile[/b]
|
||||
Ignore the lock file in the poller process to allow more than one process to run at a time.
|
||||
[b]system > projecthome[/b]
|
||||
Display the project page on your home page for logged out viewers.
|
||||
[b]system > sellpage[/b]
|
||||
A URL shown in the public sites list to sell your hub - display service classes, etc.
|
||||
[b]randprofile > check[/b]
|
||||
When requesting a random profile, check that it actually exists first
|
||||
[b]randprofile > retry[/b]
|
||||
Number of times to retry getting a random profile
|
||||
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
|
|
|
@ -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 '';
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue