Fibinger Ádám
8 days ago ef54434d88f2caf5b1e35b30a9c7380af624d190
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Budapest');
session_start();
include 'vendor/autoload.php';
 
use TableGenerator\DataObject;
 
$twig = \Wargasz\TwigFactory::getEnvironment('templates/');
 
$messages = [];
$table = false;
$last_access = '1900-01-01 00:00';
$cols = [
    'team'          => 'Csapat Név',
    'name'          => ['Név',
        function ($a, $originalRowData) {
            return '<a href="https://r6.tracker.network/profile/pc/' . $a . '">' . $a . '</a>';
        }
    ],
    'captain'       => ['Kapitány',
        function ($a, $originalRowData) {
            return $a ? "Igen" : "Nem";
        }
    ],
    'valid'         => [
        'Valid',
        function ($a, $originalRowData) {
            return $a ? $originalRowData['level'] >= 100 ? "Igen" : "Nem-LVL" : "Nem-NoUser";
        }
    ],
    'level'         => 'LvL',
    'alias_history' => 'Alias history'
];
 
if (!empty($_POST['tournament_id']) && strlen($_POST['tournament_id']) == 24)
{
    // 5f71b30a3ba5b62baf0659a8
    // https://api.battlefy.com/tournaments/5f71b30a3ba5b62baf0659a8/teams?page=1&limit=64
 
    if (preg_match('/[a-f0-9]{24}/sm', $_POST['tournament_id']))
    {
        $string = file_get_contents('https://api.battlefy.com/tournaments/' . $_POST['tournament_id'] . '/teams?page=1&limit=64');
 
        $messages[] = 'Downloading tournament ID: ' . $_POST['tournament_id'] . ' => ' . strlen($string);
 
        if ($string && json_decode($string) !== false)
        {
            $_POST['teams_json'] = $string;
            $_SESSION['tournament_id'] = $_POST['tournament_id'];
        }
        else
        {
            $messages[] = 'Sikertelen JSON letöltés...';
        }
    }
}
 
if (!empty($_POST['teams_json']))
{
    $forceDownload = isset($_POST['force_download']) && $_POST['force_download'] == 'on';
 
    $parser = new \Wargasz\BattlefyTeamParser($_POST['teams_json']);
 
    $table = $parser->getTeamData($forceDownload);
    $messages = array_merge($messages, $parser->getMessages());
 
    file_put_contents(\Wargasz\BattlefyTeamParser::getWorkDir() . '/table.json', json_encode($table));
    file_put_contents(\Wargasz\BattlefyTeamParser::getWorkDir() . '/source-' . time() . '.json', $_POST['teams_json']);
    file_put_contents(\Wargasz\BattlefyTeamParser::getWorkDir() . '/parsed.json', json_encode($parser->getParsedTeamData()));
}
else
{
    $json = @file_get_contents(\Wargasz\BattlefyTeamParser::getWorkDir() . '/table.json');
 
    if ($json)
    {
        $table = json_decode($json, true);
    }
}
 
if (!$table)
{
    $tableData = '<h3>Tölts fel egy teams.json -t!</h3>';
}
else
{
    $do = new DataObject($cols, $table);
    $HTMLTable = (new \TableGenerator\Render\HTMLDataTable(['id' => 'ccup']))->setDataObject($do);
    ob_start();
    $HTMLTable->renderTable();
    $tableData = ob_get_clean();
 
    $fmtime = filemtime(\Wargasz\BattlefyTeamParser::getWorkDir() . '/table.json');
 
    if ($fmtime)
    {
        $last_access = new DateTime();
        $last_access->setTimestamp($fmtime);
    }
}
 
echo $twig->render('index.twig', [
    'tournament_id' => $_SESSION['tournament_id'] ?? '',
    'last_access'   => $last_access,
    'table'         => $tableData,
    'messages'      => $messages
]);