<?php // Temporarily uploaded here to test.





/*    GMOT BB-code Whatpulse stats parser
 *    Parses stats from the database into BBCode
 *        Version: 1.0 beta    
 *    
 *    Written by Rick Lubbers
 *  Special thanks to Lucb1e (I stole some code from the old parser)
 *
 *
 */



// Script settings
$teamtag         = '[GMOT]';
$scripturl         = 'http://pi.ricklubbers.nl/sandbox/gmotwpstats/bbcodeparser.php';

// Check if someone requested the source
if (isset($_GET["source"]) || true) {  // file mtime was 2012-12-27 16:00:20 +0100, added ||true here in 2026-11
    
highlight_file(__FILE__);
    exit;
}

$starttime = microtime(true);
set_time_limit(10);

// Setup database connections
$WPStatsParser=true;
require(
"../sqlconn.php");

// Get some functions loaded
function q($query){
    global 
$db;
    return 
$db->query($query);
}
function 
fetchAssoc($result) {
    return 
mysqli_fetch_assoc($result);
}
function 
generateDateTime($timestamp) {
    return 
date("r", $timestamp);
}
function 
formatNumber($n) {
    return 
$n;
}
function 
generateBandwidth($wtf) {
    return 
$wtf;
}

// Init user array
$user = array();

// Init highest pulse stuff and total stats
$highestpulse['keys']['count']            = 0;
$highestpulse['keys']['user']            = '';
$highestpulse['clicks']['count']        = 0;
$highestpulse['clicks']['user']            = '';
$highestpulse['uptime']['count']        = 0;
$highestpulse['uptime']['user']            = '';
$highestpulse['upload']['count']        = 0;
$highestpulse['upload']['user']            = '';
$highestpulse['download']['count']        = 0;
$highestpulse['download']['user']        = '';
$teamstats['keys']             = 0;
$teamstats['clicks']         = 0;
$teamstats['uptime']         = 0;
$teamstats['download']         = 0;
$teamstats['upload']         = 0;
$teamstats['keysdiff']         = 0;
$teamstats['clicksdiff']     = 0;
$teamstats['uptimediff']     = 0;
$teamstats['downloaddiff']     = 0;
$teamstats['uploaddiff']     = 0;
$teamstats['memberspulsed']    = 0;

// Load all the users from database with all possible info
$userquery = q("SELECT * FROM `3_updates` WHERE seqnum = (SELECT MAX(seqnum) FROM `3_updates`)");
while (
$thisuser = fetchAssoc($userquery)) {
    global 
$user;
    
$user[$thisuser['rank']] = $thisuser;
    
$userdatabasedata = fetchAssoc(q("SELECT * FROM `3_users` WHERE `id`='".$thisuser['userid']."'"));
    
$user[$thisuser['rank']]['username'] = trim(str_ireplace($teamtag, '', $userdatabasedata['username']));
    
$user[$thisuser['rank']]['status'] = $userdatabasedata['status'];
    if (
$userdatabasedata['status'] != 'just-joined') {        // If user was in the team yesterday
        
$thisuseryesterday = fetchAssoc(q("SELECT keys, clicks, upload, download, uptime FROM 3_updates WHERE seqnum = ((SELECT MAX(seqnum) FROM 3_updates) - 1)) AND userid='".$thisuser['userid']."'"));
        
$user[$thisuser['rank']]['keysdiff'] = $thisuser['keys']-$thisuseryesterday['keys'];
        
$user[$thisuser['rank']]['clicksdiff'] = $thisuser['clicks']-$thisuseryesterday['clicks'];
        
$user[$thisuser['rank']]['uploaddiff'] = $thisuser['upload']-$thisuseryesterday['upload'];
        
$user[$thisuser['rank']]['downloaddiff'] = $thisuser['download']-$thisuseryesterday['download'];
        
$user[$thisuser['rank']]['uptimediff'] = $thisuser['uptime']-$thisuseryesterday['uptime'];
    }
    else {        
// If user is new today
        
$user[$thisuser['rank']]['keysdiff'] = $thisuser['keys'];
        
$user[$thisuser['rank']]['clicksdiff'] = $thisuser['clicks'];
        
$user[$thisuser['rank']]['uploaddiff'] = $thisuser['upload'];
        
$user[$thisuser['rank']]['downloaddiff'] = $thisuser['download'];
        
$user[$thisuser['rank']]['uptimediff'] = $thisuser['uptime'];
    }
    
    
// Check highest pulse stuff
    
if ($highestpulse['keys']['count'] < $user[$thisuser['rank']]['keysdiff']) {
        
$highestpulse['keys']['count']         = $user[$thisuser['rank']]['keysdiff'];
        
$highestpulse['keys']['user']         = $user[$thisuser['rank']]['username'];
    }
    if (
$highestpulse['clicks']['count'] < $user[$thisuser['rank']]['clicksdiff']) {
        
$highestpulse['clicks']['count']         = $user[$thisuser['rank']]['clicksdiff'];
        
$highestpulse['clicks']['user']         = $user[$thisuser['rank']]['username'];
    }
    if (
$highestpulse['uptime']['count'] < $user[$thisuser['rank']]['uptimediff']) {
        
$highestpulse['uptime']['count']         = $user[$thisuser['rank']]['uptimediff'];
        
$highestpulse['uptime']['user']         = $user[$thisuser['rank']]['username'];
    }
    if (
$highestpulse['upload']['count'] < $user[$thisuser['rank']]['uploaddiff']) {
        
$highestpulse['upload']['count']         = $user[$thisuser['rank']]['uploaddiff'];
        
$highestpulse['upload']['user']         = $user[$thisuser['rank']]['username'];
    }
    if (
$highestpulse['download']['count'] < $user[$thisuser['rank']]['downloaddiff']) {
        
$highestpulse['download']['count']         = $user[$thisuser['rank']]['downloaddiff'];
        
$highestpulse['download']['user']         = $user[$thisuser['rank']]['username'];
    }
    
    
// Update team (total) stats
    
$teamstats['keys']             += $user[$thisuser['rank']]['keys'];
    
$teamstats['clicks']         += $user[$thisuser['rank']]['clicks'];
    
$teamstats['uptime']         += $user[$thisuser['rank']]['uptime'];
    
$teamstats['download']         += $user[$thisuser['rank']]['download'];
    
$teamstats['upload']         += $user[$thisuser['rank']]['upload'];
    
$teamstats['keysdiff']         += $user[$thisuser['rank']]['keysdiff'];
    
$teamstats['clicksdiff']     += $user[$thisuser['rank']]['clicksdiff'];
    
$teamstats['uptimediff']     += $user[$thisuser['rank']]['uptimediff'];
    
$teamstats['downloaddiff']     += $user[$thisuser['rank']]['downloaddiff'];
    
$teamstats['uploaddiff']     += $user[$thisuser['rank']]['uploaddiff'];
}

usort($user, "arraySortCmp");

$stattimes = q("SELECT timestamp FROM `3_global` ORDER BY `timestamp` DESC");
$statstill = fetchAssoc($stattimes)['timestamp'];
$statsfrom = fetchAssoc($stattimes)['timestamp'];
echo 
'[b][size=16pt]Statistieken gegenereerd op '.generateDateTime($statstill).'[/size] ('.date("H:i:s", $statstill).')'.'<br />';
echo 
'Geteld vanaf '.generateDateTime($statsfrom).' '.date('H:i:s', $statsfrom).'<br /><br />';

// Determine if we're going to use network or uptime stats
if (date('z', $statstill) % 2 == 0) {        // If day of the year is even...
    
$thirdstat = 'uptime';
    
$thirdstath = 'Uptime';
}
else {
    
$thirdstat = 'network';
    
$thirdstath = 'Download';
}

// Milestone stuff
$milestone = array( 
        array(
'name' => 'N00b',       'keyvalue' =>        10), 
        array(
'name' => 'Hout',       'keyvalue' =>    100000), 
        array(
'name' => 'Kool',       'keyvalue' =>    250000), 
        array(
'name' => 'Klei',       'keyvalue' =>    500000), 
        array(
'name' => 'Steen',      'keyvalue' =>   1000000), 
        array(
'name' => 'Metaal',     'keyvalue' =>   2500000), 
        array(
'name' => 'Brons',      'keyvalue' =>   5000000), 
        array(
'name' => 'Zilver',     'keyvalue' =>   7500000), 
        array(
'name' => 'Goud',       'keyvalue' =>  10000000), 
        array(
'name' => 'Titanium',   'keyvalue' =>  25000000), 
        array(
'name' => 'Diamant',    'keyvalue' =>  50000000), 
        array(
'name' => 'Platina',    'keyvalue' =>  75000000), 
        array(
'name' => 'Kryptonite', 'keyvalue' => 100000000) 
); 
$curmilst = count($milestone) - 1;

// Show table header
echo '[table][tr][td][b]#[/td][td][b]Gebruikersnaam[/td][td][b]Keys[/td][td][b]Kliks[/td][td][b]'.ucfirst($thirdstath).'[/td][/tr]';

// Loop through the list of users
foreach($user as $k=>$v) {
    global 
$curmilst;
    
    
// Check if new milestone should be displayed
    
$milechange = false;
    while (
$user[$k]['keys'] < $milestone[$curmilst]['keyvalue']) {
        
$curmilst--;
        
$milechange = true;
    }
    if (
$curmilst >= 0 && $milechange == true) {
        echo 
"<br />";
        echo 
'[tr][td][/td][td][b]'.$milestone[$curmilst]['name'].'[/td][td][b]'.formatNumber($milestone[$curmilst]['keyvalue']).'[/td][td][/td][td][/td][/tr]';
    }
    
    
// Display user row
    
echo '<br />';
    echo 
'[tr][td]'.($k+1).' [/td][td] '.str_replace(":D", ":[b][/b]D", str_replace("[", "[[b][/b]", $v['username'])).' [/td][td]'.formatNumber($v['keys']);
    if (
$v['keysdiff'] > 0) {
        if (
$v['username'] == $highestpulse['keys']['user']) {
            echo 
' [blue]';
        }
        else {
            echo 
' [green]';
        }
        echo 
'+'.formatNumber($v['keysdiff']);
    }
    echo 
' [/td][td]'.formatNumber($v['clicks']);
    if (
$v['clicksdiff'] > 0) {
        if (
$v['username'] == $highestpulse['clicks']['user']) {
            echo 
' [blue]';
        }
        else {
            echo 
' [green]';
        }
        echo 
'+'.formatNumber($v['clicksdiff']);
    }
    echo 
' [/td][td]';
    if (
$thirdstat == 'uptime') {
        echo 
generateUptime($v['uptime']);
        if (
$v['uptimediff'] > 0) {
            if (
$v['username'] == $highestpulse['uptime']['user']) {
                echo 
' [blue]';
            }
            else {
                echo 
' [green]';
            }
            echo 
'+'.generateUptime($v['uptimediff']);
        }
    }
    else {
        echo 
generateBandwidth($v['download']);
        if (
$v['downloaddiff'] > 0 or $v['uploaddiff'] > 0) {
            if (
$v['username'] == $highestpulse['download']['user']) {
                
$btag = '[blue]';
                
$etag = '[/blue]';
            }
            else {
                
$btag = '[green]';
                
$etag = '[/green]';
            }
            echo 
' '.$btag.'+'.generateBandwidth($v['downloaddiff']).$etag;
        }
    }
    echo 
'[/td][/tr]';
}
echo 
'<br /><br />';

// Get users who joined or left the team
$leftjoined = q("SELECT * FROM `3_users` WHERE `status`='just-joined' OR `status`='just-left'");
while(
$a = fetchAssoc($leftjoined)) {
    if (
$a['status'] == 'just-joined') {
        echo 
'Welkom '.trim(str_ireplace($teamtag, '', $a['username'])).'! :D';
    }
    else {
        echo 
trim(str_ireplace($teamtag, '', $a['username'])).' heeft besloten ons te verlaten :(';
    }
    echo 
'<br />';
}

echo 
'<br /><br />';
// Display total stats
echo '[b]Totalen[/b]';
echo 
'[table]';
echo 
'[tr][td]Keys [/td][td]'.formatNumber($teamstats['keys']).'[/td][td]'.(($teamstats['keysdiff'] >= 0) ? '[green]+' : '[red]-').formatNumber($teamstats['keysdiff']).'[/td][/tr]';
echo 
'[tr][td]Clicks [/td][td]'.formatNumber($teamstats['clicks']).'[/td][td]'.(($teamstats['clicksdiff'] >= 0) ? '[green]+' : '[red]-').formatNumber($teamstats['clicksdiff']).'[/td][/tr]';
echo 
'[tr][td]Uptime [/td][td]'.generateUptime($teamstats['uptime']).'[/td][td]'.(($teamstats['uptimediff'] >= 0) ? '[green]+' : '[red]-').generateUptime($teamstats['uptimediff']).'[/td][/tr]';
echo 
'[tr][td]Download [/td][td]'.generateBandwidth($teamstats['download']).'[/td][td]'.(($teamstats['downloaddiff'] >= 0) ? '[green]+' : '[red]-').generateBandwidth($teamstats['downloaddiff']).'[/td][/tr]';
echo 
'[tr][td]Upload [/td][td]'.generateBandwidth($teamstats['upload']).'[/td][td]'.(($teamstats['uploaddiff'] >= 0) ? '[green]+' : '[red]-').generateBandwidth($teamstats['uploaddiff']).'[/td][/tr]';
echo 
'[/table]';

echo 
'<br /><br />';
echo 
'[url='.$scripturl.']Deze statistieken[/url] ([url='.$scripturl.'?source]Broncode[/url])';

exit(); 
//?