<?php
$bansPage = true;
require_once __DIR__ . "/include/header.php";
require_once __DIR__ . "/include/tsutils.php";
require_once __DIR__ . "/lib/phpfastcache/autoload.php";



use phpFastCache\Util;
use phpFastCache\CacheManager;

Util\Languages::setEncoding("UTF-8");
$cache = CacheManager::Files();

$banlist = $cache->get('banlist');

// $cache->clean();

if (is_null($banlist)) {
    $banlist = array(getBanlist(), date('d-m-Y H:i:s'));
    $cache->set('banlist', $banlist, 600);
}

$total = "";

if(isset($banlist[0][0])) {
    $total = " (" . $banlist[0][0] . " łącznie)";
}

?>

<div class="panel panel-default">
    <div class="panel-heading">
        <h3 class="panel-title"><i class="fa fa-ban" aria-hidden="true"></i> Lista banów<?php echo $total; ?></h3>
    </div>
    <div class="panel-body">

        <?php if(!$banlist[0]) { ?>
            <div class="alert alert-success">
                <p class="text-center">BRAK ZBANOWANYCH UŻYTKOWNIKÓW</p>
            </div>
        <?php } else { ?>
        <div class="table-responsive">
            <table id="banlist" class="table table-striped table-bordered" cellspacing="0" width="100%">
                <thead>
                    <tr>
                        <th>Nick</th>
                        <th>Powód</th>
                        <th>Zbanowany przez</th>
                        <th>Data zbanowania</th>
                        <th>Wygasa</th>
                    </tr>
                </thead>
                <tbody>
                    <?php echo $banlist[0][1]; ?>
                </tbody>
            </table>
        </div>
        <?php } ?>

    </div>
    <div class="panel-footer">
        Stan na <?php echo $banlist[1]; ?><!-- <span style="float: right">Podgląd odświerza się co 60 sekund</span> -->
    </div>
</div>

<?php

function getBanlist() {
    
    try {
        $tsAdmin = TeamSpeak3::factory(getTeamspeakURI(). "#no_query_clients");
        
        $bany = $tsAdmin->banList();
        
        $output = "";
        $total = 0;
        
        foreach ($bany as $ban) {
            
            if(!isset($ban['lastnickname']))
                continue;
            
            $total++;
            
            $lastnickname =     $ban['lastnickname']->toString();
            $reason =           $ban['reason'];
            $invokername =      $ban['invokername']->toString();
            $created =          date('d-m-Y H:i:s', $ban['created']);
            $duration =         $ban['duration'];
            
            if(empty($reason))
                $reason = "<b>(brak powodu)</b>";
            
            if($duration == 0)
                $expires = "Ban permanentny";
            else
                $expires = date('d-m-Y H:i:s', $ban['created'] + $duration);
            
            $output .= "<tr><td>$lastnickname</td><td>$reason</td><td>$invokername</td><td>$created</td><td>$expires</td></tr>";
        }
        
        return array($total, $output);
    } catch(TeamSpeak3_Exception $e) {
        if($e->getCode() == 1281) {
            return false;
        } else {
            return array(null, '<div class="alert alert-danger"><p class="text-center">Wystąpił błąd ' . $e->getCode() . ': ' . $e->getMessage() . '</p></div>');
        }
    }
            
}


require_once __DIR__ . "/include/footer.php";
?>