implemented fetching of minecraft server status
This commit is contained in:
parent
767fc1ec39
commit
8604418fb1
4 changed files with 50 additions and 0 deletions
|
@ -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")),
|
||||
|
|
26
src/widgets/minecraft/component.jsx
Normal file
26
src/widgets/minecraft/component.jsx
Normal file
|
@ -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>
|
||||
);
|
||||
}
|
21
src/widgets/minecraft/widget.js
Normal file
21
src/widgets/minecraft/widget.js
Normal file
|
@ -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…
Add table
Reference in a new issue