This commit is contained in:
2023-09-20 17:33:25 +02:00
parent f8028921c3
commit 006c09ce66
7 changed files with 20 additions and 7 deletions

View File

@@ -56,3 +56,4 @@ services:
url: 'http://pihole.lan/admin'
type: 'pihole'
keywords: 'dns ads blocker internet'
api_token: a3996b80e3d9cdb86b338396a164a8814e8d6f44d2986261fe573bfea53a75fb

View File

@@ -9,7 +9,6 @@
}
function logoURL(): string {
console.log(brand.logo);
if (brand.logo == undefined) {
return '';
}

View File

@@ -2,4 +2,9 @@
export let data;
</script>
pihole status placeholder
pihole status
{#await data.raw}
waiting
{:then value}
<pre>{JSON.stringify(value, null, 2)}</pre>
{/await}

View File

@@ -1,7 +1,11 @@
import { type ServiceHandler } from '../service';
export const handle: ServiceHandler = () => {
const res = { logo: 'https://cdn.rawgit.com/pi-hole/graphics/master/Vortex/Vortex.svg' };
export const handle: ServiceHandler = ({ fetch, config }) => {
const url = config.url + '/api.php?summaryRaw&auth=' + config.api_token;
return res;
return {
logo: 'https://cdn.rawgit.com/pi-hole/graphics/master/Vortex/Vortex.svg',
raw: fetch(url).then((raw) => raw.json()),
url: url
};
};

View File

@@ -5,4 +5,6 @@ interface ServiceHandlerArgs {
config: ServiceConfig;
}
export type ServiceHandler = (input: ServiceHandlerArgs) => Record<string, unknown>;
export type ServiceHandler = (
input: ServiceHandlerArgs
) => Record<string, unknown> | Promise<Record<string, unknown>>;

View File

@@ -2,7 +2,7 @@ import { clientAddressIsPrivate, clientConfig, serverConfig } from '$lib/server/
import type { PageServerLoad } from './$types';
import { getServiceHandler } from '$lib/services/services';
export const load: PageServerLoad = ({ fetch, getClientAddress }) => {
export const load: PageServerLoad = async ({ fetch, getClientAddress }) => {
const serviceData: Array<Array<unknown>> = [];
const config = clientConfig();

View File

@@ -16,6 +16,8 @@
{#each data.config.services as group, i}
<ServiceGroup {group} groupData={data.serviceData[i]} columns={data.config.columns} />
{/each}
<pre>{JSON.stringify(data, null, 2)}</pre>
</main>
<footer class="flex h-8 w-full flex-row">