Changed to GameDig
Converted csgo widget to gamedig Added game server type as widget parameter Added more fields
This commit is contained in:
parent
47d6bd1fe2
commit
c3b76080cb
@ -675,9 +675,13 @@
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress"
|
||||
},
|
||||
"csgo": {
|
||||
"gamedig": {
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
}
|
||||
}
|
||||
|
||||
@ -666,9 +666,13 @@
|
||||
"canceled": "Annulé",
|
||||
"inProgress": "En cours"
|
||||
},
|
||||
"csgo": {
|
||||
"gamedig": {
|
||||
"name": "Nom",
|
||||
"map": "Carte",
|
||||
"currentPlayers": "Joueurs actuels",
|
||||
"players": "Joueurs",
|
||||
"maxPlayers": "Joueurs max",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,6 @@ const components = {
|
||||
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
|
||||
cloudflared: dynamic(() => import("./cloudflared/component")),
|
||||
coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
|
||||
csgo: dynamic(() => import("./csgo/component")),
|
||||
deluge: dynamic(() => import("./deluge/component")),
|
||||
diskstation: dynamic(() => import("./diskstation/component")),
|
||||
downloadstation: dynamic(() => import("./downloadstation/component")),
|
||||
@ -23,6 +22,7 @@ const components = {
|
||||
fileflows: dynamic(() => import("./fileflows/component")),
|
||||
flood: dynamic(() => import("./flood/component")),
|
||||
freshrss: dynamic(() => import("./freshrss/component")),
|
||||
gamedig: dynamic(() => import("./gamedig/component")),
|
||||
ghostfolio: dynamic(() => import("./ghostfolio/component")),
|
||||
gluetun: dynamic(() => import("./gluetun/component")),
|
||||
gotify: dynamic(() => import("./gotify/component")),
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
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");
|
||||
const { t } = useTranslation();
|
||||
|
||||
if(serverError){
|
||||
return <Container service={service} error={serverError} />;
|
||||
}
|
||||
|
||||
if (!serverData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="csgo.map"/>
|
||||
<Block label="csgo.players" />
|
||||
<Block label="csgo.ping" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const map = serverData.online ? serverData.map : "-";
|
||||
const players = serverData.online ? `${serverData.players} / ${serverData.maxplayers}` : "-";
|
||||
const ping = serverData.online ? `${serverData.ping}` : 0;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="csgo.map" value={map} />
|
||||
<Block label="csgo.players" value={players} />
|
||||
<Block label="csgo.ping" value={t("common.ms", { value: ping, style: "unit", unit: "millisecond" })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
import csgoProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
proxyHandler: csgoProxyHandler
|
||||
}
|
||||
|
||||
export default widget;
|
||||
49
src/widgets/gamedig/component.jsx
Normal file
49
src/widgets/gamedig/component.jsx
Normal file
@ -0,0 +1,49 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
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");
|
||||
const { t } = useTranslation();
|
||||
|
||||
if(serverError){
|
||||
return <Container service={service} error={serverError} />;
|
||||
}
|
||||
|
||||
if (!serverData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="gamedig.name"/>
|
||||
<Block label="gamedig.map"/>
|
||||
<Block label="gamedig.currentPlayers" />
|
||||
<Block label="gamedig.players" />
|
||||
<Block label="gamedig.maxPlayers" />
|
||||
<Block label="gamedig.bots" />
|
||||
<Block label="gamedig.ping" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const name = serverData.online ? serverData.name : "-";
|
||||
const map = serverData.online ? serverData.map : "-";
|
||||
const currentPlayers = serverData.online ? `${serverData.players} / ${serverData.maxplayers}` : "-";
|
||||
const players = serverData.online ? `${serverData.players}` : "-";
|
||||
const maxPlayers = serverData.online ? `${serverData.maxplayers}` : "-";
|
||||
const bots = serverData.online ? `${serverData.bots}` : "-";
|
||||
const ping = serverData.online ? `${serverData.ping}` : 0;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="gamedig.name" value={name} />
|
||||
<Block label="gamedig.map" value={map} />
|
||||
<Block label="gamedig.currentPlayers" value={currentPlayers} />
|
||||
<Block label="gamedig.players" value={players} />
|
||||
<Block label="gamedig.maxPlayers" value={maxPlayers} />
|
||||
<Block label="gamedig.bots" value={bots} />
|
||||
<Block label="gamedig.ping" value={t("common.ms", { value: ping, style: "unit", unit: "millisecond" })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@ -1,20 +1,20 @@
|
||||
import createLogger from "utils/logger";
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
|
||||
const proxyName = "csgoProxyHandler";
|
||||
const proxyName = "gamedigProxyHandler";
|
||||
const logger = createLogger(proxyName);
|
||||
const gamedig = require("gamedig");
|
||||
|
||||
export default async function csgoProxyHandler(req, res) {
|
||||
export default async function gamedigProxyHandler(req, res) {
|
||||
const { group, service } = req.query;
|
||||
const serviceWidget = await getServiceWidget(group, service);
|
||||
const url = new URL(serviceWidget.url);
|
||||
|
||||
try {
|
||||
const serverData = await gamedig.query({
|
||||
type: "csgo",
|
||||
type: serviceWidget.serverType,
|
||||
host: url.hostname,
|
||||
port: url.port || 27015,
|
||||
port: url.port,
|
||||
givenPortOnly: true,
|
||||
});
|
||||
|
||||
@ -24,6 +24,7 @@ export default async function csgoProxyHandler(req, res) {
|
||||
map: serverData.map,
|
||||
players: serverData.players.length,
|
||||
maxplayers: serverData.maxplayers,
|
||||
bots: serverData.bots.length,
|
||||
ping: serverData.ping,
|
||||
});
|
||||
} catch (e) {
|
||||
7
src/widgets/gamedig/widget.js
Normal file
7
src/widgets/gamedig/widget.js
Normal file
@ -0,0 +1,7 @@
|
||||
import gamedigProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
proxyHandler: gamedigProxyHandler
|
||||
}
|
||||
|
||||
export default widget;
|
||||
@ -9,7 +9,6 @@ import changedetectionio from "./changedetectionio/widget";
|
||||
import channelsdvrserver from "./channelsdvrserver/widget";
|
||||
import cloudflared from "./cloudflared/widget";
|
||||
import coinmarketcap from "./coinmarketcap/widget";
|
||||
import csgo from "./csgo/widget";
|
||||
import deluge from "./deluge/widget";
|
||||
import diskstation from "./diskstation/widget";
|
||||
import downloadstation from "./downloadstation/widget";
|
||||
@ -18,6 +17,7 @@ import evcc from "./evcc/widget";
|
||||
import fileflows from "./fileflows/widget";
|
||||
import flood from "./flood/widget";
|
||||
import freshrss from "./freshrss/widget";
|
||||
import gamedig from "./gamedig/widget";
|
||||
import ghostfolio from "./ghostfolio/widget";
|
||||
import gluetun from "./gluetun/widget";
|
||||
import gotify from "./gotify/widget";
|
||||
@ -100,7 +100,6 @@ const widgets = {
|
||||
channelsdvrserver,
|
||||
cloudflared,
|
||||
coinmarketcap,
|
||||
csgo,
|
||||
deluge,
|
||||
diskstation,
|
||||
downloadstation,
|
||||
@ -109,6 +108,7 @@ const widgets = {
|
||||
fileflows,
|
||||
flood,
|
||||
freshrss,
|
||||
gamedig,
|
||||
ghostfolio,
|
||||
gluetun,
|
||||
gotify,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user