|
|
@@ -0,0 +1,66 @@ |
|
|
|
<?php |
|
|
|
|
|
|
|
const LOG_PATH = '../log.txt'; |
|
|
|
|
|
|
|
header ('Content-Type: application/json; charset=UTF-8'); |
|
|
|
|
|
|
|
$log_data = []; |
|
|
|
|
|
|
|
$page = (int) (filter_input (INPUT_POST, 'p') ?? 1); |
|
|
|
$length = (int) (filter_input (INPUT_POST, 'max') ?? 20); |
|
|
|
$asc = (int) (filter_input (INPUT_POST, 'asc') ?? 0) !== 0; |
|
|
|
$keyword = trim (filter_input (INPUT_POST, 'q') ?? ''); |
|
|
|
|
|
|
|
$date_start = filter_input (INPUT_POST, 'start'); |
|
|
|
$date_end = filter_input (INPUT_POST, 'end'); |
|
|
|
|
|
|
|
$f = fopen (LOG_PATH, 'r'); |
|
|
|
|
|
|
|
if ($f !== false) |
|
|
|
{ |
|
|
|
while (($dt = fgetcsv ($f, 0, "\t")) !== false) |
|
|
|
{ |
|
|
|
$chat_info = json_decode ($dt[1]); |
|
|
|
|
|
|
|
$log_data[] = ['dateTime' => $dt[0], |
|
|
|
'chatIcon' => $chat_info -> author -> imageUrl, |
|
|
|
'chatName' => htmlspecialchars ($chat_info -> author -> name), |
|
|
|
'chatMessage' => htmlspecialchars ($chat_info -> message), |
|
|
|
'answer' => htmlspecialchars ($dt[2])]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
fclose ($f); |
|
|
|
|
|
|
|
unset ($f); |
|
|
|
|
|
|
|
if ($keyword !== '') |
|
|
|
{ |
|
|
|
$log_data = array_filter ($log_data, fn ($row) => ( |
|
|
|
strpos (($row['chatName'] . "\n" . $row['chatMessage'] . "\n" |
|
|
|
. $row['answer']), |
|
|
|
$keyword) |
|
|
|
!== false)); |
|
|
|
} |
|
|
|
|
|
|
|
if ($date_start) |
|
|
|
{ |
|
|
|
$log_data = array_filter ($log_data, fn ($row) => ( |
|
|
|
substr ($row['dateTime'], 0, 10) >= $date_start)); |
|
|
|
} |
|
|
|
|
|
|
|
if ($date_end) |
|
|
|
{ |
|
|
|
$log_data = array_filter ($log_data, fn ($row) => ( |
|
|
|
substr ($row['dateTime'], 0, 10) <= $date_end)); |
|
|
|
} |
|
|
|
|
|
|
|
$pages_max = (int) ((count ($log_data) - 1) / $length) + 1; |
|
|
|
|
|
|
|
if (!($asc)) |
|
|
|
$log_data = array_reverse ($log_data); |
|
|
|
|
|
|
|
$log_data = array_slice ($log_data, ($page - 1) * $length, $length, true); |
|
|
|
|
|
|
|
echo json_encode ($log_data); |
|
|
|
|