diff --git a/index.php b/index.php index 07ddb75a..b574ee31 100644 --- a/index.php +++ b/index.php @@ -73,8 +73,6 @@ if ($a->module_loaded) { if ((!$a->error) && (function_exists($a->module . '_content'))) { $func = $a->module . '_content'; $a->page['content'] = $func($a); - - killme(); } } diff --git a/mod/health.php b/mod/health.php index fba547e3..0a92fe4b 100644 --- a/mod/health.php +++ b/mod/health.php @@ -1,35 +1,32 @@ argc > 1){ +use Friendica\Directory\App; + +function health_content(App $a) +{ + if ($a->argc > 1) { return health_details($a, $a->argv[1]); } - - if($_GET['s']){ + + if (isset($_GET['s']) && $_GET['s']) { return health_search($a, $_GET['s']); } - + return health_summary($a); - } -function health_search(&$a, $search) +function health_search(App $a, $search) { - - if(strlen($search) < 3){ + if (strlen($search) < 3) { $result = 'Please use at least 3 characters in your search'; - } - - else { - + } else { $r = q("SELECT * FROM `site-health` WHERE `base_url` LIKE '%%%s%%' ORDER BY `health_score` DESC LIMIT 100", dbesc($search)); - if(count($r)){ + if (count($r)) { $result = ''; - foreach($r as $site){ - + + foreach ($r as $site) { //Get user count. $site['users'] = 0; $r = q( @@ -37,107 +34,105 @@ function health_search(&$a, $search) WHERE `homepage` LIKE '%s%%'", dbesc($site['base_url']) ); - if(count($r)){ + + if (count($r)) { $site['users'] = $r[0]['users']; } - + $result .= - ' '. - '' . $site['base_url'] . ' '. - '(' . $site['users'] . ')'. - ($site['effective_base_url'] ? ' -> '.$site['effective_base_url'].'' : ''). + ' ' . + '' . $site['base_url'] . ' ' . + '(' . $site['users'] . ')' . + ($site['effective_base_url'] ? ' -> ' . $site['effective_base_url'] . '' : '') . "
\r\n"; } - - - } - - else { + } else { $result = 'No results'; } - } - + $tpl .= file_get_contents('view/health_search.tpl'); + return replace_macros($tpl, array( '$searched' => $search, '$result' => $result )); - } -function health_summary(&$a){ - +function health_summary(App $a) +{ $sites = array(); - + //Find the user count per site. $r = q("SELECT `homepage` FROM `profile`"); - if(count($r)) { - foreach($r as $rr) { + if (count($r)) { + foreach ($r as $rr) { $site = parse_site_from_url($rr['homepage']); - if($site) { - if(!isset($sites[$site])) - $sites[$site] = 0; + if ($site) { + if (!isset($sites[$site])) { + $sites[$site] = 0; + } $sites[$site] ++; } } } - + //See if we have a health for them AND they provide SSL. $sites_with_health = array(); $site_healths = array(); - + $r = q("SELECT * FROM `site-health` WHERE `reg_policy`='REGISTER_OPEN' AND `ssl_state` = 1"); - if(count($r)) { - foreach($r as $rr) { - $sites_with_health[$rr['base_url']] = (($sites[$rr['base_url']] / 100) + 10) * intval($rr['health_score']); - $site_healths[$rr['base_url']] = $rr; + if (count($r)) { + foreach ($r as $rr) { + if (isset($sites[$rr['base_url']])) { + $sites_with_health[$rr['base_url']] = (($sites[$rr['base_url']] / 100) + 10) * intval($rr['health_score']); + $site_healths[$rr['base_url']] = $rr; + } } } - + arsort($sites_with_health); $total = 0; $public_sites = ''; - foreach($sites_with_health as $k => $v) - { - + foreach ($sites_with_health as $k => $v) { //Stop at unhealthy sites. $site = $site_healths[$k]; - if($site['health_score'] <= 20) break; - + if ($site['health_score'] <= 20) { + break; + } + //Skip small sites. $users = $sites[$k]; - if($users < 5) continue; - + if ($users < 5) { + continue; + } + $public_sites .= - ' '. - '' . $k . ' '. - '(' . $users . ')'. + ' ' . + '' . $k . ' ' . + '(' . $users . ')' . "
\r\n"; $total ++; - } $public_sites .= "
Total: $total
\r\n"; - - $tpl .= file_get_contents('view/health_summary.tpl'); + + $tpl = file_get_contents('view/health_summary.tpl'); + return replace_macros($tpl, array( - '$versions' => $versions, '$public_sites' => $public_sites )); - } -function health_details($a, $id) +function health_details(App $a, $id) { - //Max data age in MySQL date. - $maxDate = date('Y-m-d H:i:s', time()-($a->config['stats']['maxDataAge'])); - + $maxDate = date('Y-m-d H:i:s', time() - ($a->config['stats']['maxDataAge'])); + //Include graphael line charts. - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''.PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; $a->page['htmlhead'] .= ''; - + //The overall health status. $r = q( "SELECT * FROM `site-health` WHERE `id`=%u", intval($id) ); - if(!count($r)){ + if (!count($r)) { $a->error = 404; return; } - + $site = $r[0]; - + //Does it redirect to a known site? $redirectStatement = ''; - if($site['effective_base_url']){ - + if ($site['effective_base_url']) { //The effective health status. $r = q( "SELECT * FROM `site-health` WHERE `base_url`= '%s'", dbesc($site['effective_base_url']) ); - if(count($r)){ - $redirectStatement = 'Redirects to '.$site['effective_base_url'].''; + if (count($r)) { + $redirectStatement = 'Redirects to ' . $site['effective_base_url'] . ''; } - } - + //Figure out SSL state. $urlMeta = parse_url($site['base_url']); - if($urlMeta['scheme'] !== 'https'){ + if ($urlMeta['scheme'] !== 'https') { $ssl_state = 'No'; - }else{ + } else { switch ($site['ssl_state']) { - case null: $ssl_state = 'Yes, but not yet verified.'; break; - case '0': $ssl_state = 'Certificate error!'; break; - case '1': $ssl_state = '√ Yes, verified.'; break; + case null: $ssl_state = 'Yes, but not yet verified.'; + break; + case '0': $ssl_state = 'Certificate error!'; + break; + case '1': $ssl_state = '√ Yes, verified.'; + break; } - $ssl_state .= ' Detailed test'; + $ssl_state .= ' Detailed test'; } - + //Get user count. $site['users'] = 0; $r = q( @@ -215,10 +211,10 @@ function health_details($a, $id) WHERE `homepage` LIKE '%s%%'", dbesc($site['base_url']) ); - if(count($r)){ + if (count($r)) { $site['users'] = $r[0]['users']; } - + //Get avg probe speed. $r = q( "SELECT AVG(`request_time`) as `avg_probe_time` FROM `site-probe` @@ -227,10 +223,10 @@ function health_details($a, $id) intval($site['id']), $maxDate ); - if(count($r)){ + if (count($r)) { $site['avg_probe_time'] = $r[0]['avg_probe_time']; } - + //Get scraping / submit speeds. $r = q( "SELECT @@ -244,13 +240,13 @@ function health_details($a, $id) intval($site['id']), $maxDate ); - if(count($r)){ + if (count($r)) { $site['avg_profile_time'] = $r[0]['avg_profile_time']; $site['avg_scrape_time'] = $r[0]['avg_scrape_time']; $site['avg_photo_time'] = $r[0]['avg_photo_time']; $site['avg_submit_time'] = $r[0]['avg_submit_time']; } - + //Get probe speed data. $r = q( "SELECT AVG(`request_time`) as `avg_time`, date(`dt_performed`) as `date` FROM `site-probe` @@ -260,34 +256,38 @@ function health_details($a, $id) intval($site['id']), $maxDate ); - if(count($r)){ + if (count($r)) { //Include graphael line charts. - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= ''; + $speeds = array(); $times = array(); $mintime = time(); - foreach($r as $row){ + + foreach ($r as $row) { $speeds[] = $row['avg_time']; $time = strtotime($row['date']); $times[] = $time; - if($mintime > $time) $mintime = $time; + if ($mintime > $time) + $mintime = $time; } - for($i=0; $i < count($times); $i++){ + + for ($i = 0; $i < count($times); $i++) { $times[$i] -= $mintime; - $times[$i] = floor($times[$i] / (24*3600)); + $times[$i] = floor($times[$i] / (24 * 3600)); } + $a->page['htmlhead'] .= ''; } - + //Get scrape speed data. $r = q( "SELECT AVG(`total_time`) as `avg_time`, date(`dt_performed`) as `date` FROM `site-scrape` @@ -314,34 +312,38 @@ function health_details($a, $id) intval($site['id']), $maxDate ); - if($r && count($r)){ + if ($r && count($r)) { //Include graphael line charts. - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''.PHP_EOL; - $a->page['htmlhead'] .= ''; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= '' . PHP_EOL; + $a->page['htmlhead'] .= ''; + $speeds = array(); $times = array(); $mintime = time(); - foreach($r as $row){ + + foreach ($r as $row) { $speeds[] = $row['avg_time']; $time = strtotime($row['date']); $times[] = $time; - if($mintime > $time) $mintime = $time; + if ($mintime > $time) + $mintime = $time; } - for($i=0; $i < count($times); $i++){ + + for ($i = 0; $i < count($times); $i++) { $times[$i] -= $mintime; - $times[$i] = floor($times[$i] / (24*3600)); + $times[$i] = floor($times[$i] / (24 * 3600)); } + $a->page['htmlhead'] .= ''; } - + //Nice name for registration policy. switch ($site['reg_policy']) { - case 'REGISTER_OPEN': $policy = "Open"; break; - case 'REGISTER_APPROVE': $policy = "Admin approved"; break; - case 'REGISTER_CLOSED': $policy = "Closed"; break; - default: $policy = $site['reg_policy']; break; + case 'REGISTER_OPEN': $policy = "Open"; break; + case 'REGISTER_APPROVE': $policy = "Admin approved"; break; + case 'REGISTER_CLOSED': $policy = "Closed"; break; + default: $policy = $site['reg_policy']; break; } - - $tpl .= file_get_contents('view/health_details.tpl'); + + $tpl = file_get_contents('view/health_details.tpl'); + return replace_macros($tpl, array( '$name' => $site['name'], '$redirectStatement' => $redirectStatement, @@ -393,3 +395,4 @@ function health_details($a, $id) '$avg_photo_time' => round($site['avg_photo_time']), '$avg_submit_time' => round($site['avg_submit_time']) )); +}