|
- import * as R from 'ramda';
- import * as MumblePing from 'mumble-ping';
-
- interface MumbleStatus {
- online: boolean,
- currentUsers?: number,
- maxUsers?: number,
- }
-
- const offlineStatus: MumbleStatus = { online: false };
-
- export default function getMumbleStatus(host: string, port: number = 64738): PromiseLike<MumbleStatus> {
- return new Promise((resolve) => {
- let connected = false;
- MumblePing(host, port, (err, res) => {
- connected = true;
- if (!err) {
- resolve({ online: true, maxUsers: res.maxUsers, currentUsers: res.users })
- } else {
- resolve(offlineStatus);
- }
- });
- setTimeout(() => {
- if (!connected) resolve(offlineStatus);
- }, 1000);
- });
- }
|