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