implemented fetching of minecraft server status

pull/1067/head
Sairenity 1 year ago
parent 767fc1ec39
commit 8604418fb1

@ -30,6 +30,7 @@ const components = {
lidarr: dynamic(() => import("./lidarr/component")),
mastodon: dynamic(() => import("./mastodon/component")),
medusa: dynamic(() => import("./medusa/component")),
minecraft: dynamic(() => import("./minecraft/component")),
miniflux: dynamic(() => import("./miniflux/component")),
mikrotik: dynamic(() => import("./mikrotik/component")),
moonraker: dynamic(() => import("./moonraker/component")),

@ -0,0 +1,26 @@
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { widget } = service;
const { data: serverData, error: serverError } = useWidgetAPI(widget, "status");
if(serverError){
return <Container error={serverError} />;
}
if (!serverData) {
return (
<Container service={service}>
<Block label="minecraft.players" />
<Block label="minecraft.version" />
</Container>
);
}
return (
<Container service={service}>
<Block label="minecraft.players" value={`${serverData.players.online} / ${serverData.players.max}`} />
<Block label="minecraft.version" value={serverData.version} />
</Container>
);
}

@ -0,0 +1,21 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import { asJson } from "utils/proxy/api-helpers";
const widget = {
api: "{url}/{endpoint}/{domain}",
proxyHandler: genericProxyHandler,
mappings: {
status: {
endpoint: "2",
map: (data) => {
const jsonData = asJson(data);
return {
players: jsonData.players,
version: jsonData.version
}
}
}
}
}
export default widget;

@ -24,6 +24,7 @@ import kopia from "./kopia/widget";
import lidarr from "./lidarr/widget";
import mastodon from "./mastodon/widget";
import medusa from "./medusa/widget";
import minecraft from "./minecraft/widget";
import miniflux from "./miniflux/widget";
import mikrotik from "./mikrotik/widget";
import moonraker from "./moonraker/widget";
@ -97,6 +98,7 @@ const widgets = {
lidarr,
mastodon,
medusa,
minecraft,
miniflux,
mikrotik,
moonraker,

Loading…
Cancel
Save