mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
b5b2e81d3b
The $jsonobj array is iterated from the back, so the first entries overwrite the newest entries (that is, the ones from the back). So it happens that instead of the traffic for today 16 o'clock ,the traffic from the day before yesterday 16 o'clock ends up in the array $data_template and is displayed in the graph. But this should not be like this!
64 lines
2.6 KiB
PHP
64 lines
2.6 KiB
PHP
<?php
|
|
|
|
require '../../includes/csrf.php';
|
|
|
|
if (filter_input(INPUT_GET, 'tu') == 'h') {
|
|
|
|
header('X-Content-Type-Options: nosniff');
|
|
header('Content-Type: application/json');
|
|
|
|
$data_template = array(
|
|
0 => array('date' => '00:00', 'rx' => 0, 'tx' => 0),
|
|
1 => array('date' => '01:00', 'rx' => 0, 'tx' => 0),
|
|
2 => array('date' => '02:00', 'rx' => 0, 'tx' => 0),
|
|
3 => array('date' => '03:00', 'rx' => 0, 'tx' => 0),
|
|
4 => array('date' => '04:00', 'rx' => 0, 'tx' => 0),
|
|
5 => array('date' => '05:00', 'rx' => 0, 'tx' => 0),
|
|
6 => array('date' => '06:00', 'rx' => 0, 'tx' => 0),
|
|
7 => array('date' => '07:00', 'rx' => 0, 'tx' => 0),
|
|
8 => array('date' => '08:00', 'rx' => 0, 'tx' => 0),
|
|
9 => array('date' => '09:00', 'rx' => 0, 'tx' => 0),
|
|
10 => array('date' => '10:00', 'rx' => 0, 'tx' => 0),
|
|
11 => array('date' => '11:00', 'rx' => 0, 'tx' => 0),
|
|
12 => array('date' => '12:00', 'rx' => 0, 'tx' => 0),
|
|
13 => array('date' => '13:00', 'rx' => 0, 'tx' => 0),
|
|
14 => array('date' => '14:00', 'rx' => 0, 'tx' => 0),
|
|
15 => array('date' => '15:00', 'rx' => 0, 'tx' => 0),
|
|
16 => array('date' => '16:00', 'rx' => 0, 'tx' => 0),
|
|
17 => array('date' => '17:00', 'rx' => 0, 'tx' => 0),
|
|
18 => array('date' => '18:00', 'rx' => 0, 'tx' => 0),
|
|
19 => array('date' => '19:00', 'rx' => 0, 'tx' => 0),
|
|
20 => array('date' => '20:00', 'rx' => 0, 'tx' => 0),
|
|
21 => array('date' => '21:00', 'rx' => 0, 'tx' => 0),
|
|
22 => array('date' => '22:00', 'rx' => 0, 'tx' => 0),
|
|
23 => array('date' => '23:00', 'rx' => 0, 'tx' => 0)
|
|
);
|
|
|
|
exec(sprintf('vnstat -i %s --json h', escapeshellarg($interface)), $jsonstdoutvnstat, $exitcodedaily);
|
|
if ($exitcodedaily !== 0) {
|
|
exit('vnstat error');
|
|
}
|
|
|
|
$jsonobj = json_decode($jsonstdoutvnstat[0], true)['interfaces'][0];
|
|
$jsonData = $jsonobj['traffic']['hour'];
|
|
for ($i = count($jsonData) - 1; $i >= 0 && $i >= count($jsonData)-25; --$i) {
|
|
$data_template[$jsonData[$i]['time']['hour']]['rx'] = round($jsonData[$i]['rx'] / 1024, 0);
|
|
$data_template[$jsonData[$i]['time']['hour']]['tx'] = round($jsonData[$i]['tx'] / 1024, 0);
|
|
}
|
|
|
|
$data = array();
|
|
$hour = $jsonobj['updated']['time']['hour'];
|
|
foreach ($data_template as $key => $value) {
|
|
if ($key > $hour) {
|
|
array_push($data, $value);
|
|
}
|
|
}
|
|
foreach ($data_template as $key => $value) {
|
|
if ($key <= $hour) {
|
|
array_push($data, $value);
|
|
}
|
|
}
|
|
echo json_encode($data);
|
|
exit(0);
|
|
}
|