mirror of
https://github.com/OPSnet/Gazelle.git
synced 2026-10-18 07:03:12 -04:00
114 lines
2.8 KiB
PHP
114 lines
2.8 KiB
PHP
<?
|
|
|
|
enforce_login();
|
|
|
|
$TorrentID = intval($_POST['torrentid']);
|
|
$FileCount = count($_FILES['logfiles']['name']);
|
|
|
|
$LogScore = 100;
|
|
$LogChecksum = 1;
|
|
|
|
$DB->query("
|
|
SELECT t.ID, t.GroupID
|
|
FROM torrents t
|
|
WHERE t.ID = {$TorrentID} AND t.HasLog='1' AND t.UserID = " . $LoggedUser['ID']);
|
|
|
|
$DetailsArray = array();
|
|
if ($TorrentID != 0 && $DB->has_results() && $FileCount > 0) {
|
|
list($TorrentID, $GroupID) = $DB->next_record(MYSQLI_BOTH);
|
|
$DB->query("DELETE FROM torrents_logs WHERE TorrentID='{$TorrentID}'");
|
|
ini_set('upload_max_filesize', 1000000);
|
|
foreach ($_FILES['logfiles']['name'] as $Pos => $File) {
|
|
if (!$_FILES['logfiles']['size'][$Pos]) {
|
|
break;
|
|
}
|
|
$FileName = $_FILES['logfiles']['tmp_name'][$Pos];
|
|
$LogFile = file_get_contents($_FILES['logfiles']['tmp_name'][$Pos]);
|
|
//detect & transcode unicode
|
|
if (Logchecker::detect_utf_bom_encoding($LogFile)) {
|
|
$LogFile = iconv("unicode", "UTF-8", $LogFile);
|
|
}
|
|
$Log = new Logchecker();
|
|
$Log->new_file($LogFile, $FileName);
|
|
list($Score, $Details, $Checksum, $LogText) = $Log->parse();
|
|
$Details = trim(implode("\r\n", $Details));
|
|
$DetailsArray[] = $Details;
|
|
$LogScore = min($LogScore, $Score);
|
|
$LogChecksum = min(intval($Checksum), $LogChecksum);
|
|
$Logs[] = array($Details, $LogText);
|
|
$DB->query("INSERT INTO torrents_logs (TorrentID, Log, Details, Score, `Checksum`, `FileName`) VALUES ($TorrentID, '".db_string($LogText)."', '".db_string($Details)."', $Score, '".enum_boolean($Checksum)."', '".db_string($File)."')");
|
|
}
|
|
|
|
$DB->query("UPDATE torrents SET HasLogDB='1', LogScore={$LogScore}, LogChecksum='".enum_boolean($LogChecksum)."' WHERE ID='{$TorrentID}'");
|
|
$Cache->delete_value("torrent_group_{$GroupID}");
|
|
$Cache->delete_value("torrents_details_{$GroupID}");
|
|
} else {
|
|
error('No log file uploaded or no torrent is selected.');
|
|
}
|
|
|
|
View::show_header();
|
|
echo <<<HTML
|
|
<div class="thin center">
|
|
<br><a href="javascript:history.go(-1)">Upload another log file</a>
|
|
</div>
|
|
<div class="thin">
|
|
HTML;
|
|
|
|
if($LogScore == 100) {
|
|
$Color = '#418B00';
|
|
}
|
|
elseif($LogScore > 90) {
|
|
$Color = '#74C42E';
|
|
}
|
|
elseif($LogScore > 75) {
|
|
$Color = '#FFAA00';
|
|
}
|
|
elseif($LogScore > 50) {
|
|
$Color = '#FF5E00';
|
|
}
|
|
else {
|
|
$Color = '#FF0000';
|
|
}
|
|
|
|
echo "<blockquote><strong>Score:</strong> <span style=\"color:$Color\">$LogScore</span> (out of 100)</blockquote>";
|
|
|
|
if ($LogChecksum === 0) {
|
|
echo <<<HTML
|
|
<blockquote>
|
|
<strong>Trumpable For:</strong>
|
|
<br /><br />
|
|
Bad/No Checksum(s)
|
|
</blockquote>
|
|
HTML;
|
|
}
|
|
|
|
foreach ($Logs as $Log) {
|
|
list($Details, $Text) = $Log;
|
|
if (!empty($Details)) {
|
|
$Details = explode("\r\n", $Details);
|
|
print <<<HTML
|
|
<blockquote>
|
|
<h3>Log validation report:</h3>
|
|
<ul>
|
|
HTML;
|
|
foreach ($Details as $Property) {
|
|
print "\t\t<li>{$Property}</li>";
|
|
}
|
|
print <<<HTML
|
|
</ul>
|
|
</blockquote>
|
|
HTML;
|
|
}
|
|
|
|
echo <<<HTML
|
|
<blockquote>
|
|
<pre>{$Text}</pre>
|
|
</blockquote>
|
|
</div>
|
|
HTML;
|
|
|
|
}
|
|
|
|
View::show_footer();
|
|
|