#!/usr/bin/php -q NOW()"); $certs += tc("select count(*) as `count` from `emailcerts` where `revoked` = 0 and `expire` > NOW()"); $certs += tc("select count(*) as `count` from `gpg` where `expire` > NOW()"); $certs += tc("select count(*) as `count` from `orgdomaincerts` where `revoked` = 0 and `expire` > NOW()"); $certs += tc("select count(*) as `count` from `orgemailcerts` where `revoked` = 0 and `expire` > NOW()"); $stats['valid_certificates'] = number_format($certs); $stats['assurances_made'] = number_format(tc( "select count(*) as `count` from `notary` where (`method` = '' or `method` = 'Face to Face Meeting') and `deleted` = 0")); $stats['users_1to49'] = number_format(tc( "select count(*) as `count` from ( select 1 from `notary` where `deleted` = 0 group by `to` having sum(`points`) > 0 and sum(`points`) < 50 ) as `low_points`")); $stats['users_50to99'] = number_format(tc( "select count(*) as `count` from ( select 1 from `notary` where `deleted` = 0 group by `to` having sum(`points`) >= 50 and sum(`points`) < 100 ) as `high_points`")); $stats['assurer_candidates'] = number_format(tc( "select count(*) as `count` from `users` where ( select sum(`points`) from `notary` where `to`=`users`.`id` and `deleted` = 0 ) >= 100 and not exists( select 1 from `cats_passed` as `cp`, `cats_variant` as `cv` where `cp`.`user_id`=`users`.`id` and `cp`.`variant_id`=`cv`.`id` and `cv`.`type_id`=1 )" )); $stats['aussurers_with_test'] = number_format(tc( "select count(*) as `count` from `users` where ( select sum(`points`) from `notary` where `to`=`users`.`id` and `deleted` = 0 ) >= 100 and exists( select 1 from `cats_passed` as `cp`, `cats_variant` as `cv` where `cp`.`user_id`=`users`.`id` and `cp`.`variant_id`=`cv`.`id` and `cv`.`type_id`=1 )" )); $stats['points_issued'] = number_format(tc( "select sum(greatest(`points`, `awarded`)) as `count` from `notary` where `deleted` = 0 and `method` = 'Face to Face Meeting'")); $totalusers=0; $totassurers=0; $totalcerts=0; for($i = 0; $i < 12; $i++) { $first_ts = mktime(0, 0, 0, date("m") - $i, 1, date("Y")); $next_month_ts = mktime(0, 0, 0, date("m") - $i + 1, 1, date("Y")); $first = date("Y-m-d", $first_ts); $next_month = date("Y-m-d", $next_month_ts); echo "Calculating statistics for month $first\n"; $totalusers += $users = tc( "select count(*) as `count` from `users` where `created` >= '$first' and `created` < '$next_month' and `verified` = 1 and `deleted` = 0 and `locked` = 0"); $totassurers += $assurers = tc( "select count(*) as `count` from ( select 1 from `notary` where `when` >= '$first' and `when` < '$next_month' and `method`!='Administrative Increase' and `deleted` = 0 group by `to` having sum(`points`) >= 100 ) as `assurer_candidates`"); $certs = tc( "select count(*) as `count` from `domaincerts` where `created` >= '$first' and `created` < '$next_month' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `emailcerts` where `created` >= '$first' and `created` < '$next_month' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `gpg` where `issued` >= '$first' and `issued` < '$next_month' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `orgdomaincerts` where `created` >= '$first' and `created` < '$next_month' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `orgemailcerts` where `created` >= '$first' and `created` < '$next_month' and `expire` != 0"); $totalcerts += $certs; $tmp_arr = array(); $tmp_arr['date'] = date("Y-m", $first_ts); $tmp_arr['new_users'] = number_format($users); $tmp_arr['new_assurers'] = number_format($assurers); $tmp_arr['new_certificates'] = number_format($certs); $stats['growth_last_12m'][] = $tmp_arr; } $stats['growth_last_12m_total'] = array( 'new_users' => number_format($totalusers), 'new_assurers' => number_format($totassurers), 'new_certificates' => number_format($totalcerts), ); $totalcerts = 0; $totalusers = 0; $totassurers = 0; for($i = date("Y"); $i >= 2002; $i--) { $first_ts = mktime(0, 0, 0, 1, 1, $i); $next_year_ts = mktime(0, 0, 0, 1, 1, $i + 1); $first = date("Y-m-d", $first_ts); $next_year = date("Y-m-d", $next_year_ts); echo "Calculating statistics for year $i\n"; $totalusers += $users = tc( "select count(*) as `count` from `users` where `created` >= '$first' and `created` < '$next_year' and `verified` = 1 and `deleted` = 0 and `locked` = 0"); $totassurers += $assurers = tc( "select count(*) as `count` from ( select 1 from `notary` where `when` >= '$first' and `when` < '$next_year' and `method`!='Administrative Increase' and `deleted` = 0 group by `to` having sum(`points`) >= 100 ) as `assurer_candidates`"); $certs = tc( "select count(*) as `count` from `domaincerts` where `created` >= '$first' and `created` < '$next_year' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `emailcerts` where `created` >= '$first' and `created` < '$next_year' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `gpg` where `issued` >= '$first' and `issued` < '$next_year' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `orgdomaincerts` where `created` >= '$first' and `created` < '$next_year' and `expire` != 0"); $certs += tc( "select count(*) as `count` from `orgemailcerts` where `created` >= '$first' and `created` < '$next_year' and `expire` != 0"); $totalcerts += $certs; $tmp_arr = array(); $tmp_arr['date'] = $i; $tmp_arr['new_users'] = number_format($users); $tmp_arr['new_assurers'] = number_format($assurers); $tmp_arr['new_certificates'] = number_format($certs); $stats['growth_last_years'][] = $tmp_arr; } $stats['growth_last_years_total'] = array( 'new_users' => number_format($totalusers), 'new_assurers' => number_format($totassurers), 'new_certificates' => number_format($totalcerts), ); return $stats; } $stats = getDataFromLive(); if (! updateCache($stats) ) { fwrite(STDERR, "An error occured. The statistics were not successfully updated!"); die(1); }