mirror of
https://github.com/pi-hole/web.git
synced 2024-12-06 19:36:21 +01:00
Fixed bugs in over-time graph
This commit is contained in:
@@ -1,11 +1,4 @@
|
||||
<?php
|
||||
function findQueries($var) {
|
||||
return strpos($var, "query") != false;
|
||||
}
|
||||
function findAds($var) {
|
||||
return strpos($var, "gravity.list") != false;
|
||||
}
|
||||
|
||||
$domains = file("/etc/pihole/gravity.list");
|
||||
$log = file("/var/log/pihole.log");
|
||||
$domains_being_blocked = count($domains);
|
||||
@@ -18,6 +11,10 @@
|
||||
|
||||
$ads_percentage_today = $ads_blocked_today / $dns_queries_today * 100;
|
||||
|
||||
$domains_over_time = overTime($dns_queries);
|
||||
$ads_over_time = overTime($ads_blocked);
|
||||
alignTimeArrays($ads_over_time, $domains_over_time);
|
||||
|
||||
function topItems($queries) {
|
||||
$splitQueries = array();
|
||||
foreach ($queries as $query) {
|
||||
@@ -37,7 +34,9 @@
|
||||
function overTime($entries) {
|
||||
$byTime = array();
|
||||
foreach ($entries as $entry) {
|
||||
$hour = substr($entry, 7, 2);
|
||||
$time = date_create(substr($entry, 0, 16), new DateTimeZone('GMT'))->SetTimeZone(new DateTimeZone(date_default_timezone_get()));
|
||||
$hour = $time->format('G');
|
||||
|
||||
if (isset($byTime[$hour])) {
|
||||
$byTime[$hour]++;
|
||||
}
|
||||
@@ -48,6 +47,29 @@
|
||||
return $byTime;
|
||||
}
|
||||
|
||||
function alignTimeArrays(&$times1, &$times2) {
|
||||
foreach (array_keys($times1) as $time) {
|
||||
if (!isset($times2[$time])) {
|
||||
$times2[$time] = 0;
|
||||
}
|
||||
}
|
||||
foreach (array_keys($times2) as $time) {
|
||||
if (!isset($times1[$time])) {
|
||||
$times1[$time] = 0;
|
||||
}
|
||||
}
|
||||
ksort($times1);
|
||||
ksort($times2);
|
||||
}
|
||||
|
||||
function findQueries($var) {
|
||||
return strpos($var, "query") != false;
|
||||
}
|
||||
|
||||
function findAds($var) {
|
||||
return strpos($var, "gravity.list") != false;
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'domains_being_blocked' => $domains_being_blocked,
|
||||
'dns_queries_today' => $dns_queries_today,
|
||||
@@ -55,8 +77,8 @@
|
||||
'ads_percentage_today' => $ads_percentage_today,
|
||||
'top_queries' => topItems($dns_queries),
|
||||
'top_ads' => topItems($ads_blocked),
|
||||
'domains_over_time' => overTime($dns_queries),
|
||||
'ads_over_time' => overTime($ads_blocked)
|
||||
'domains_over_time' => $domains_over_time,
|
||||
'ads_over_time' => $ads_over_time,
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
include('data.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<%?= print_r($data); ?>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
@@ -25,20 +26,20 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
var chartData = {
|
||||
labels: [<?php foreach ($data['domains_over_time'] as $key=>$value) {echo "'" . $key . ":00', ";}?>],
|
||||
labels: [<?php foreach($data['domains_over_time'] as $time=>$qty) {echo $time . ", ";} ?>],
|
||||
datasets: [
|
||||
{
|
||||
label: "All Queries",
|
||||
fillColor: "rgba(220,220,220,0.5)",
|
||||
strokeColor: "rgba(0, 166, 90,.8)",
|
||||
data: [<?php foreach ($data['domains_over_time'] as $key=>$value) {echo $value . ", ";}?>],
|
||||
data: [<?= implode(', ', $data['domains_over_time']) ?>],
|
||||
},
|
||||
{
|
||||
label: "Ad Queries",
|
||||
fillColor: "rgba(243,156,18,0.5)",
|
||||
strokeColor: "rgba(243,156,18,1)",
|
||||
pointColor: "rgba(243,156,18,1)",
|
||||
data: [<?php foreach ($data['ads_over_time'] as $key=>$value) {echo $value . ", ";}?>],
|
||||
data: [<?= implode(', ', $data['ads_over_time']) ?>],
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user