From 9519dfaf0a05e97c40622c958134a1e7c8c3926f Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 12 Aug 2023 12:10:21 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20AdGuard=20Home=20time=20unit=20f?= =?UTF-8?q?ix=20(#1005)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{dns-hole.ts => dns-hole/router.ts} | 10 ++++++++-- src/tools/server/sdk/adGuard/adGuard.schema.ts | 2 +- src/tools/server/sdk/adGuard/adGuard.ts | 18 ++---------------- src/widgets/dnshole/DnsHoleSummary.tsx | 2 +- 4 files changed, 12 insertions(+), 20 deletions(-) rename src/server/api/routers/{dns-hole.ts => dns-hole/router.ts} (92%) diff --git a/src/server/api/routers/dns-hole.ts b/src/server/api/routers/dns-hole/router.ts similarity index 92% rename from src/server/api/routers/dns-hole.ts rename to src/server/api/routers/dns-hole/router.ts index 2a5c02a94..e21a3dc59 100644 --- a/src/server/api/routers/dns-hole.ts +++ b/src/server/api/routers/dns-hole/router.ts @@ -135,8 +135,14 @@ const collectAdGuardSummary = async (app: ConfigAppType) => { const status = await adGuard.getStatus(); const countFilteredDomains = await adGuard.getCountFilteringDomains(); - const blockedQueriesToday = stats.blocked_filtering.reduce((prev, sum) => prev + sum, 0); - const queriesToday = stats.dns_queries.reduce((prev, sum) => prev + sum, 0); + const blockedQueriesToday = + stats.time_units === 'days' + ? stats.blocked_filtering[stats.blocked_filtering.length - 1] + : stats.blocked_filtering.reduce((prev, sum) => prev + sum, 0); + const queriesToday = + stats.time_units === 'days' + ? stats.dns_queries[stats.dns_queries.length - 1] + : stats.dns_queries.reduce((prev, sum) => prev + sum, 0); return { domainsBeingBlocked: countFilteredDomains, diff --git a/src/tools/server/sdk/adGuard/adGuard.schema.ts b/src/tools/server/sdk/adGuard/adGuard.schema.ts index bad381659..a2c843062 100644 --- a/src/tools/server/sdk/adGuard/adGuard.schema.ts +++ b/src/tools/server/sdk/adGuard/adGuard.schema.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; export const adGuardApiStatsResponseSchema = z.object({ - time_units: z.enum(['hours']), + time_units: z.enum(['hours', 'days']), top_queried_domains: z.array(z.record(z.string(), z.number())), top_clients: z.array(z.record(z.string(), z.number())), top_blocked_domains: z.array(z.record(z.string(), z.number())), diff --git a/src/tools/server/sdk/adGuard/adGuard.ts b/src/tools/server/sdk/adGuard/adGuard.ts index e018a2e7c..38a05102c 100644 --- a/src/tools/server/sdk/adGuard/adGuard.ts +++ b/src/tools/server/sdk/adGuard/adGuard.ts @@ -1,3 +1,4 @@ +import { z } from 'zod'; import { trimStringEnding } from '../../../shared/strings'; import { adGuardApiFilteringStatusSchema, @@ -77,19 +78,4 @@ export class AdGuard { } } -export type AdGuardStatsType = { - time_units: string; - top_queried_domains: { [key: string]: number }[]; - top_clients: { [key: string]: number }[]; - top_blocked_domains: { [key: string]: number }[]; - dns_queries: number[]; - blocked_filtering: number[]; - replaced_safebrowsing: number[]; - replaced_parental: number[]; - num_dns_queries: number; - num_blocked_filtering: number; - num_replaced_safebrowsing: number; - num_replaced_safesearch: number; - num_replaced_parental: number; - avg_processing_time: number; -}; +export type AdGuardStatsType = z.infer; diff --git a/src/widgets/dnshole/DnsHoleSummary.tsx b/src/widgets/dnshole/DnsHoleSummary.tsx index bcfc443e5..270f18dd5 100644 --- a/src/widgets/dnshole/DnsHoleSummary.tsx +++ b/src/widgets/dnshole/DnsHoleSummary.tsx @@ -138,7 +138,7 @@ function DnsHoleSummaryWidgetTile({ widget }: DnsHoleSummaryWidgetProps) {
- {formatNumber(data.dnsQueriesToday, 3)} + {formatNumber(data.dnsQueriesToday, 0)} {t('card.metrics.queriesToday')}