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",
|
"canceled": "Canceled",
|
||||||
"inProgress": "In Progress"
|
"inProgress": "In Progress"
|
||||||
},
|
},
|
||||||
"csgo": {
|
"gamedig": {
|
||||||
|
"name": "Name",
|
||||||
"map": "Map",
|
"map": "Map",
|
||||||
|
"currentPlayers": "Current players",
|
||||||
"players": "Players",
|
"players": "Players",
|
||||||
|
"maxPlayers": "Max players",
|
||||||
|
"bots": "Bots",
|
||||||
"ping": "Ping"
|
"ping": "Ping"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -666,9 +666,13 @@
|
|||||||
"canceled": "Annulé",
|
"canceled": "Annulé",
|
||||||
"inProgress": "En cours"
|
"inProgress": "En cours"
|
||||||
},
|
},
|
||||||
"csgo": {
|
"gamedig": {
|
||||||
|
"name": "Nom",
|
||||||
"map": "Carte",
|
"map": "Carte",
|
||||||
|
"currentPlayers": "Joueurs actuels",
|
||||||
"players": "Joueurs",
|
"players": "Joueurs",
|
||||||
|
"maxPlayers": "Joueurs max",
|
||||||
|
"bots": "Bots",
|
||||||
"ping": "Ping"
|
"ping": "Ping"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,6 @@ const components = {
|
|||||||
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
|
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
|
||||||
cloudflared: dynamic(() => import("./cloudflared/component")),
|
cloudflared: dynamic(() => import("./cloudflared/component")),
|
||||||
coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
|
coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
|
||||||
csgo: dynamic(() => import("./csgo/component")),
|
|
||||||
deluge: dynamic(() => import("./deluge/component")),
|
deluge: dynamic(() => import("./deluge/component")),
|
||||||
diskstation: dynamic(() => import("./diskstation/component")),
|
diskstation: dynamic(() => import("./diskstation/component")),
|
||||||
downloadstation: dynamic(() => import("./downloadstation/component")),
|
downloadstation: dynamic(() => import("./downloadstation/component")),
|
||||||
@ -23,6 +22,7 @@ const components = {
|
|||||||
fileflows: dynamic(() => import("./fileflows/component")),
|
fileflows: dynamic(() => import("./fileflows/component")),
|
||||||
flood: dynamic(() => import("./flood/component")),
|
flood: dynamic(() => import("./flood/component")),
|
||||||
freshrss: dynamic(() => import("./freshrss/component")),
|
freshrss: dynamic(() => import("./freshrss/component")),
|
||||||
|
gamedig: dynamic(() => import("./gamedig/component")),
|
||||||
ghostfolio: dynamic(() => import("./ghostfolio/component")),
|
ghostfolio: dynamic(() => import("./ghostfolio/component")),
|
||||||
gluetun: dynamic(() => import("./gluetun/component")),
|
gluetun: dynamic(() => import("./gluetun/component")),
|
||||||
gotify: dynamic(() => import("./gotify/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 createLogger from "utils/logger";
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
|
||||||
const proxyName = "csgoProxyHandler";
|
const proxyName = "gamedigProxyHandler";
|
||||||
const logger = createLogger(proxyName);
|
const logger = createLogger(proxyName);
|
||||||
const gamedig = require("gamedig");
|
const gamedig = require("gamedig");
|
||||||
|
|
||||||
export default async function csgoProxyHandler(req, res) {
|
export default async function gamedigProxyHandler(req, res) {
|
||||||
const { group, service } = req.query;
|
const { group, service } = req.query;
|
||||||
const serviceWidget = await getServiceWidget(group, service);
|
const serviceWidget = await getServiceWidget(group, service);
|
||||||
const url = new URL(serviceWidget.url);
|
const url = new URL(serviceWidget.url);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const serverData = await gamedig.query({
|
const serverData = await gamedig.query({
|
||||||
type: "csgo",
|
type: serviceWidget.serverType,
|
||||||
host: url.hostname,
|
host: url.hostname,
|
||||||
port: url.port || 27015,
|
port: url.port,
|
||||||
givenPortOnly: true,
|
givenPortOnly: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -24,6 +24,7 @@ export default async function csgoProxyHandler(req, res) {
|
|||||||
map: serverData.map,
|
map: serverData.map,
|
||||||
players: serverData.players.length,
|
players: serverData.players.length,
|
||||||
maxplayers: serverData.maxplayers,
|
maxplayers: serverData.maxplayers,
|
||||||
|
bots: serverData.bots.length,
|
||||||
ping: serverData.ping,
|
ping: serverData.ping,
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} 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 channelsdvrserver from "./channelsdvrserver/widget";
|
||||||
import cloudflared from "./cloudflared/widget";
|
import cloudflared from "./cloudflared/widget";
|
||||||
import coinmarketcap from "./coinmarketcap/widget";
|
import coinmarketcap from "./coinmarketcap/widget";
|
||||||
import csgo from "./csgo/widget";
|
|
||||||
import deluge from "./deluge/widget";
|
import deluge from "./deluge/widget";
|
||||||
import diskstation from "./diskstation/widget";
|
import diskstation from "./diskstation/widget";
|
||||||
import downloadstation from "./downloadstation/widget";
|
import downloadstation from "./downloadstation/widget";
|
||||||
@ -18,6 +17,7 @@ import evcc from "./evcc/widget";
|
|||||||
import fileflows from "./fileflows/widget";
|
import fileflows from "./fileflows/widget";
|
||||||
import flood from "./flood/widget";
|
import flood from "./flood/widget";
|
||||||
import freshrss from "./freshrss/widget";
|
import freshrss from "./freshrss/widget";
|
||||||
|
import gamedig from "./gamedig/widget";
|
||||||
import ghostfolio from "./ghostfolio/widget";
|
import ghostfolio from "./ghostfolio/widget";
|
||||||
import gluetun from "./gluetun/widget";
|
import gluetun from "./gluetun/widget";
|
||||||
import gotify from "./gotify/widget";
|
import gotify from "./gotify/widget";
|
||||||
@ -100,7 +100,6 @@ const widgets = {
|
|||||||
channelsdvrserver,
|
channelsdvrserver,
|
||||||
cloudflared,
|
cloudflared,
|
||||||
coinmarketcap,
|
coinmarketcap,
|
||||||
csgo,
|
|
||||||
deluge,
|
deluge,
|
||||||
diskstation,
|
diskstation,
|
||||||
downloadstation,
|
downloadstation,
|
||||||
@ -109,6 +108,7 @@ const widgets = {
|
|||||||
fileflows,
|
fileflows,
|
||||||
flood,
|
flood,
|
||||||
freshrss,
|
freshrss,
|
||||||
|
gamedig,
|
||||||
ghostfolio,
|
ghostfolio,
|
||||||
gluetun,
|
gluetun,
|
||||||
gotify,
|
gotify,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user