From 40dfa7d5c0dc8e4cb2c95e403b6b4b2c4bf70644 Mon Sep 17 00:00:00 2001 From: Matthijs Kuiper Date: Sat, 4 Feb 2017 16:05:45 +0100 Subject: Original UTStats beta 4.2.8 --- html/pages/admin/acelog.php | 318 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100755 html/pages/admin/acelog.php (limited to 'html/pages/admin/acelog.php') diff --git a/html/pages/admin/acelog.php b/html/pages/admin/acelog.php new file mode 100755 index 0000000..365174a --- /dev/null +++ b/html/pages/admin/acelog.php @@ -0,0 +1,318 @@ +'); +} + +// Get filter, order and set sorting +if (isset($_GET[order])) { + $order = my_addslashes($_GET[order]); + setcookie('uts_ace_order', $_GET['order'], time()+60*60*24*30*365); +} +else if (isset($_COOKIE['uts_ace_order'])){ + $order = $_REQUEST['uts_ace_order']; +} +else { + $order = "time"; +} + +if (isset($_GET[sort])) { + $sort = my_addslashes($_GET[sort]); + setcookie('uts_ace_sort', $_GET['sort'], time()+60*60*24*30*365); +} +else if (isset($_COOKIE['uts_ace_sort'])){ + $sort = $_REQUEST['uts_ace_sort']; +} +else { + $sort = ($order == "time") ? "DESC" : "ASC"; +} + +if (isset($_GET[timeout])) { + $timeout = my_addslashes($_GET[timeout]); + setcookie('uts_ace_timeout', $_GET['timeout'], time()+60*60*24*30*365); +} +else if (isset($_COOKIE['uts_ace_timeout'])){ + $timeout = $_REQUEST['uts_ace_timeout']; +} +else { + $timeout = 0; +} + +if (isset($_GET[show])) { + $show = my_addslashes($_GET[show]); + setcookie('uts_ace_show', $_GET['show'], time()+60*60*24*30*365); +} +else if (isset($_COOKIE['uts_ace_show'])){ + $show = $_REQUEST['uts_ace_show']; +} +else { + $show = "week"; +} + +if (!empty($filename)) { + if (!file_exists('logs/ace/'. $filename) or !is_file('logs/ace/'. $filename)) die('File not found'); + if (isset($_REQUEST['del'])) { + unlink('logs/ace/'. $filename); + $filename = ''; + } +} + +if (empty($filename)) { + echo ' + + +
+ + + + + + + + + + + + + '; + $logdir = opendir('logs/ace'); + $logs = array(); + $sortlogs = array(); + $i = 0; + while (false !== ($filename = readdir($logdir))) { + if (!is_file('logs/ace/'. $filename)) continue; + if ($filename == '.htaccess' or $filename == 'index.htm') continue; + + preg_match('/\d{4}\.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}/', $filename, &$date); + $adate = preg_split('/\./', $date[0]); + // filter on days + if ($show != "all") { + // calculate days + $logAgeInDays = abs(strtotime(date("Y/m/d")) - strtotime("$adate[0]/$adate[1]/$adate[2]"))/68400-1; + if (($show == "day" and $logAgeInDays > 1) + or ($show == "week" and $logAgeInDays > 7) + or ($show == "month" and $logAgeInDays > 31)) { + continue; + } + } + + $i++; + $TimeStamp = "unknown"; + $PlayerName = "unknown"; + $KickReason = "unknown"; + if (substr($filename, strlen($filename) - strlen($import_ace_screenshot_extension)) == $import_ace_screenshot_extension + and substr($filename, 0, strlen($import_ace_screenshot_start)) == $import_ace_screenshot_start) { + // Screenshot + $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; + $PlayerName = "Unknown"; + $KickReason = "Screenshot"; + } + else { + // logfile + + $fp = my_fopen('logs/ace/'.$filename, 'rb', $compression = NULL); + if (!$fp) die("Error opening file"); + + while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) { + $info = preg_split('/\s/', $line, 3); + $info[2] = preg_replace('/[\r\n]+/', '', $info[2]); + if ($info[1] == "TimeStamp....:") { + $TimeStamp = $info[2]; + } + else if ($info[1] == "PlayerName...:") { + $PlayerName = $info[2]; + } + else if ($info[1] == "KickReason...:") { + $KickReason = $info[2]; + } + else if ($info[1] == "RequestedBy..:") { + $KickReason = "Requested Screenshot"; + } + else if ($info[1] == "WARNING:") { + $ainfo = preg_split('/\s/', $info[2]); + if ($ainfo[5] == "UDP") { + $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; + $PlayerName = $ainfo[1]; + $KickReason = "Proxy/Tunnel"; + } + } + else if ($info[2] == ": Kicked - [REASON] Timeout during check spawn") { + $TimeStamp = "$adate[2]-$adate[1]-$adate[0] / $adate[3]:$adate[4]:$adate[5]"; + $PlayerName = preg_replace('/[\[\]]/', '', $info[1]); + $KickReason = "Timeout during check spawn"; + } + } + my_fclose($fp, $compression); + } + + // don't show timeout logs? + if (($timeout == 0) + and (($KickReason == "Timeout during check spawn") + or ($KickReason == "Timeout during checks") + or ($KickReason == "Timeout during initial check"))) { + continue; + } + + $logs[$i] = array($filename, $TimeStamp, $PlayerName, $KickReason); + $extra = 0; + if (substr($filename, -4) == '.bz2') $extra = 4; + if (substr($filename, -3) == '.gz') $extra = 3; + + if ($order == "time") { + $sortlogs[$i] = $date[0]; + } + else if ($order == "name") { + $sortlogs[$i] = strtolower($PlayerName); + } + else if ($order == "reason") { + $sortlogs[$i] = strtolower($KickReason); + } + } + closedir($logdir); + if (count($logs) == 0) { + echo ''; + } else { + if ($sort == "ASC") { + asort($sortlogs); + } + else { + arsort($sortlogs); + } + $i = 0; + foreach($sortlogs as $id => $date) { + $log = $logs[$id][0]; + if (empty($log)) { + continue; + } + $TimeStamp = $logs[$id][1]; + $PlayerName = $logs[$id][2]; + $KickReason = $logs[$id][3]; + $Screenshot = $logs[$id][4]; + $extra = 0; + if (substr($log, -4) == '.bz2') $extra = 4; + if (substr($log, -3) == '.gz') $extra = 3; + + $i++; + $class = ($i%2) ? 'grey' : 'grey2'; + echo ''; + } + } + echo ''; +} + + +if (!empty($filename)) { + if (!file_exists('logs/ace/'. $filename) or !is_file('logs/ace/'. $filename)) die('File not found (2)'); + echo'
Available ACE Logs:
Filter: + + Show timeouts
Time'.SortPic('time', $order, $sort).'Player Name'.SortPic('name', $order, $sort).'Kick Reason'.SortPic('reason', $order, $sort).'
No logs available!
'; + $tmp = substr($log, strlen($log) - (23 + $extra), 19); + $tmp = str_replace('.', '', $tmp); + // $ts = mtimestamp($tmp); + echo ' '.$TimeStamp.''; + echo ''; + echo ''.$PlayerName.''; + echo ''; + echo ''.$KickReason.''; + echo ''; + $d_size = file_size_info(filesize('logs/ace/'. $log)); + echo $d_size['size'] .' '. $d_size['type']; + echo ''; + echo 'Delete'; + echo '
+ + + + '; + if (substr($filename, strlen($filename) - strlen($import_ace_screenshot_extension)) == $import_ace_screenshot_extension + and substr($filename, 0, strlen($import_ace_screenshot_start)) == $import_ace_screenshot_start) { + // screenshot + echo ''; + } + else { + $fp = my_fopen('logs/ace/'.$filename, 'rb', $compression = NULL); + if (!$fp) die("Error opening file"); + + $i = 0; + echo ''; + */ + echo wordwrap(htmlentities($line), 80, '
', 1) ."
"; + $info = preg_split('/\s/', $line, 3); + $info[2] = preg_replace('/[\r\n]/', '', $info[2]); + if ($info[1] == "FileName.....:") { + $Screenshot = basename($info[2]); + } + + } + echo ''; + my_fclose($fp, $compression); + + // look for a matching ace screenshot + if (isset($Screenshot) and file_exists('logs/ace/' . $Screenshot)) { + echo ' + + + '; + + echo ''; + } + } +} + +echo ''; +if (!empty($filename)) echo''; +echo''; +echo '
'.$filename.''; + echo 'Delete'; + echo '
'; + echo ''; + echo '
'; + + while (($line = my_fgets($fp, 5000, $compression)) !== FALSE) { + /* + $i++; + $class = ($i%2) ? 'grey' : 'grey2'; + echo '
'; + echo ''; + echo htmlentities($line); + echo ''; + echo '
'.$Screenshot.''; + echo 'Delete'; + echo '
'; + echo ''; + echo '
Go Back To Logfile Overview
Go Back To Admin Page
'; + +?> -- cgit