Add Matrix/Synapse widget
This commit is contained in:
parent
1066d17f70
commit
a4066d63cc
@ -757,5 +757,10 @@
|
|||||||
"inCinemas": "In cinemas",
|
"inCinemas": "In cinemas",
|
||||||
"physicalRelease": "Physical release",
|
"physicalRelease": "Physical release",
|
||||||
"digitalRelease": "Digital release"
|
"digitalRelease": "Digital release"
|
||||||
|
},
|
||||||
|
"synapse": {
|
||||||
|
"users": "Users",
|
||||||
|
"rooms": "Rooms",
|
||||||
|
"peers": "Peers"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,6 +36,7 @@ export default async function credentialedProxyHandler(req, res, map) {
|
|||||||
"tailscale",
|
"tailscale",
|
||||||
"truenas",
|
"truenas",
|
||||||
"pterodactyl",
|
"pterodactyl",
|
||||||
|
"synapse",
|
||||||
].includes(widget.type))
|
].includes(widget.type))
|
||||||
{
|
{
|
||||||
headers.Authorization = `Bearer ${widget.key}`;
|
headers.Authorization = `Bearer ${widget.key}`;
|
||||||
|
|||||||
@ -88,6 +88,7 @@ const components = {
|
|||||||
scrutiny: dynamic(() => import("./scrutiny/component")),
|
scrutiny: dynamic(() => import("./scrutiny/component")),
|
||||||
sonarr: dynamic(() => import("./sonarr/component")),
|
sonarr: dynamic(() => import("./sonarr/component")),
|
||||||
speedtest: dynamic(() => import("./speedtest/component")),
|
speedtest: dynamic(() => import("./speedtest/component")),
|
||||||
|
synapse: dynamic(() => import("./synapse/component")),
|
||||||
strelaysrv: dynamic(() => import("./strelaysrv/component")),
|
strelaysrv: dynamic(() => import("./strelaysrv/component")),
|
||||||
tailscale: dynamic(() => import("./tailscale/component")),
|
tailscale: dynamic(() => import("./tailscale/component")),
|
||||||
tautulli: dynamic(() => import("./tautulli/component")),
|
tautulli: dynamic(() => import("./tautulli/component")),
|
||||||
|
|||||||
37
src/widgets/synapse/component.jsx
Normal file
37
src/widgets/synapse/component.jsx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
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 { t } = useTranslation();
|
||||||
|
|
||||||
|
const { widget } = service;
|
||||||
|
|
||||||
|
const { data: usersData, error: usersError } = useWidgetAPI(widget, "users");
|
||||||
|
const { data: roomsData, error: roomsError } = useWidgetAPI(widget, "rooms");
|
||||||
|
const { data: peersData, error: peersError } = useWidgetAPI(widget, "peers");
|
||||||
|
|
||||||
|
if (usersError || roomsError || peersError) {
|
||||||
|
return <Container service={service} error={usersError ?? roomsError ?? peersError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!usersData || !roomsData || !peersData) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="synapse.users" />
|
||||||
|
<Block label="synapse.rooms" />
|
||||||
|
<Block label="synapse.peers" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="synapse.users" value={t("common.number", { value: usersData.total })} />
|
||||||
|
<Block label="synapse.rooms" value={t("common.number", { value: roomsData.total_rooms })} />
|
||||||
|
<Block label="synapse.peers" value={t("common.number", { value: peersData.total })} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
src/widgets/synapse/widget.js
Normal file
20
src/widgets/synapse/widget.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/_synapse/admin/{endpoint}",
|
||||||
|
proxyHandler: credentialedProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
users: {
|
||||||
|
endpoint: "v2/users",
|
||||||
|
},
|
||||||
|
rooms: {
|
||||||
|
endpoint: "v1/rooms",
|
||||||
|
},
|
||||||
|
peers: {
|
||||||
|
endpoint: "v1/federation/destinations",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
@ -81,6 +81,7 @@ import sabnzbd from "./sabnzbd/widget";
|
|||||||
import scrutiny from "./scrutiny/widget";
|
import scrutiny from "./scrutiny/widget";
|
||||||
import sonarr from "./sonarr/widget";
|
import sonarr from "./sonarr/widget";
|
||||||
import speedtest from "./speedtest/widget";
|
import speedtest from "./speedtest/widget";
|
||||||
|
import synapse from "./synapse/widget";
|
||||||
import strelaysrv from "./strelaysrv/widget";
|
import strelaysrv from "./strelaysrv/widget";
|
||||||
import tailscale from "./tailscale/widget";
|
import tailscale from "./tailscale/widget";
|
||||||
import tautulli from "./tautulli/widget";
|
import tautulli from "./tautulli/widget";
|
||||||
@ -183,6 +184,7 @@ const widgets = {
|
|||||||
scrutiny,
|
scrutiny,
|
||||||
sonarr,
|
sonarr,
|
||||||
speedtest,
|
speedtest,
|
||||||
|
synapse,
|
||||||
strelaysrv,
|
strelaysrv,
|
||||||
tailscale,
|
tailscale,
|
||||||
tautulli,
|
tautulli,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user