mirror of
https://github.com/karl0ss/homepage.git
synced 2025-05-30 17:05:08 +01:00
implemented fetching of minecraft server status
This commit is contained in:
parent
767fc1ec39
commit
8604418fb1
@ -30,6 +30,7 @@ const components = {
|
|||||||
lidarr: dynamic(() => import("./lidarr/component")),
|
lidarr: dynamic(() => import("./lidarr/component")),
|
||||||
mastodon: dynamic(() => import("./mastodon/component")),
|
mastodon: dynamic(() => import("./mastodon/component")),
|
||||||
medusa: dynamic(() => import("./medusa/component")),
|
medusa: dynamic(() => import("./medusa/component")),
|
||||||
|
minecraft: dynamic(() => import("./minecraft/component")),
|
||||||
miniflux: dynamic(() => import("./miniflux/component")),
|
miniflux: dynamic(() => import("./miniflux/component")),
|
||||||
mikrotik: dynamic(() => import("./mikrotik/component")),
|
mikrotik: dynamic(() => import("./mikrotik/component")),
|
||||||
moonraker: dynamic(() => import("./moonraker/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 lidarr from "./lidarr/widget";
|
||||||
import mastodon from "./mastodon/widget";
|
import mastodon from "./mastodon/widget";
|
||||||
import medusa from "./medusa/widget";
|
import medusa from "./medusa/widget";
|
||||||
|
import minecraft from "./minecraft/widget";
|
||||||
import miniflux from "./miniflux/widget";
|
import miniflux from "./miniflux/widget";
|
||||||
import mikrotik from "./mikrotik/widget";
|
import mikrotik from "./mikrotik/widget";
|
||||||
import moonraker from "./moonraker/widget";
|
import moonraker from "./moonraker/widget";
|
||||||
@ -97,6 +98,7 @@ const widgets = {
|
|||||||
lidarr,
|
lidarr,
|
||||||
mastodon,
|
mastodon,
|
||||||
medusa,
|
medusa,
|
||||||
|
minecraft,
|
||||||
miniflux,
|
miniflux,
|
||||||
mikrotik,
|
mikrotik,
|
||||||
moonraker,
|
moonraker,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user