mirror of
https://github.com/a-sync/game-server-watcher.git
synced 2026-03-31 06:33:44 -04:00
adds description field
* don't cache ajax reqs on localhost * enable markdown editor
This commit is contained in:
1
TODO
1
TODO
@@ -1,3 +1,4 @@
|
||||
// serve a list of game servers and some basic info
|
||||
// flush game server specific (d/t) data
|
||||
|
||||
//v4
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "game-server-watcher",
|
||||
"version": "3.1.2",
|
||||
"version": "3.1.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "game-server-watcher",
|
||||
"version": "3.1.2",
|
||||
"version": "3.1.3",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@slack/bolt": "^3.17.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "game-server-watcher",
|
||||
"version": "3.1.2",
|
||||
"version": "3.1.3",
|
||||
"description": "A simple discord/telegram/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎",
|
||||
"exports": "./dist/server.js",
|
||||
"type": "module",
|
||||
|
||||
@@ -201,6 +201,30 @@
|
||||
"grid_columns": 12
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"title": "Description",
|
||||
"type": "string",
|
||||
"format": "markdown",
|
||||
"options": {
|
||||
"simplemde": {
|
||||
"spellChecker": false,
|
||||
"toolbar": [
|
||||
"bold",
|
||||
"italic",
|
||||
"|",
|
||||
"unordered-list",
|
||||
"ordered-list",
|
||||
"|",
|
||||
"code",
|
||||
"link",
|
||||
"quote",
|
||||
"|",
|
||||
"side-by-side",
|
||||
"preview"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"givenPortOnly": {
|
||||
"title": "givenPortOnly",
|
||||
"description": "Only attempt to query server on given port.",
|
||||
|
||||
@@ -15,19 +15,19 @@
|
||||
<link href="https://fonts.googleapis.com/css2?family=Marvel&family=Roboto&display=swap" rel="stylesheet">
|
||||
<link href="https://use.fontawesome.com/releases/v5.15.4/css/all.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/animate.css@4/animate.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/simplemde@1/dist/simplemde.min.css" rel="stylesheet">
|
||||
<!--
|
||||
<link href="https://cdn.jsdelivr.net/npm/select2@4/dist/css/select2.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/flatpickr@4/dist/flatpickr.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/simplemde@1/dist/simplemde.min.css" rel="stylesheet">
|
||||
-->
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1/dist/umd/popper.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/simplemde@1/dist/simplemde.min.js"></script>
|
||||
<!--
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4/dist/js/select2.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4/dist/flatpickr.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/simplemde@1/dist/simplemde.min.js"></script>
|
||||
-->
|
||||
<script src="https://cdn.jsdelivr.net/npm/node-forge@1/dist/forge.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"></script>
|
||||
|
||||
@@ -45,7 +45,7 @@ $(async () => {
|
||||
"use_default_values": true,
|
||||
"ajax": true,
|
||||
"ajaxCredentials": false,
|
||||
"ajax_cache_responses": true,
|
||||
"ajax_cache_responses": !Boolean(location.hostname === "localhost" || location.hostname === "127.0.0.1"),
|
||||
"ajax_cache_buster": 'gsw-v' + gswFeatures.features.version + '+gamedig-v' + gswFeatures.features.gamedig,
|
||||
"disable_edit_json": false,
|
||||
"disable_collapse": true,
|
||||
|
||||
@@ -178,6 +178,8 @@ class ServerInfoMessage {
|
||||
fields.push({ name: 'Players', value: String(gs.info.playersNum + '/' + gs.info.playersMax), inline: true});
|
||||
fields.push({ name: 'Address', value: String(gs.info.connect)});
|
||||
|
||||
if (gs.config.description) fields.push({ name: 'Description', value: String(gs.config.description).slice(0, 1024)});
|
||||
|
||||
if (showPlayersList && gs.info?.players.length > 0) {
|
||||
const pNames: string[] = [];
|
||||
const pTimes: string[] = [];
|
||||
|
||||
@@ -202,6 +202,17 @@ class ServerInfoMessage {
|
||||
});
|
||||
}
|
||||
|
||||
if (gs.config.description) {
|
||||
text += '\r\nDescription:\r\n' + String(gs.config.description).slice(0, 1024);
|
||||
blocks.push({
|
||||
type: 'section',
|
||||
fields: [{
|
||||
type: 'mrkdwn',
|
||||
text: '*Description* \r\n' + String(gs.config.description).slice(0, 1024)
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
if (showPlayersList && gs.info?.players.length > 0) {
|
||||
const pNames: string[] = [];
|
||||
for (const p of gs.info?.players) {
|
||||
|
||||
@@ -131,6 +131,7 @@ class ServerInfoMessage {
|
||||
|
||||
const chart = showGraph ? '[📈](' + gs.history.statsChart() + ')' : '';
|
||||
let infoText = this.escapeMarkdown(gs.niceName) + ' offline...';
|
||||
|
||||
if (gs.info && gs.online) {
|
||||
infoText = [
|
||||
this.escapeMarkdown(gs.niceName),
|
||||
@@ -139,6 +140,8 @@ class ServerInfoMessage {
|
||||
'Players ' + gs.info.playersNum + '/' + gs.info.playersMax
|
||||
].join('\n');
|
||||
|
||||
if (gs.config.description) infoText += 'Description:\n' + String(gs.config.description).slice(0, 1024) + '\n';
|
||||
|
||||
if (showPlayersList && gs.info.players.length > 0) {
|
||||
const pnArr: string[] = [];
|
||||
for (const p of gs.info.players) {
|
||||
@@ -154,6 +157,7 @@ class ServerInfoMessage {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
infoText += chart;
|
||||
|
||||
try {
|
||||
|
||||
@@ -39,6 +39,7 @@ export interface GameServerConfig {
|
||||
updateIntervalMinutes?: number;//5
|
||||
graphHistoryHours?: number;//12
|
||||
timezoneOffset?: number;//0
|
||||
description?: string;
|
||||
discord?: DiscordConfig[];
|
||||
telegram?: TelegramConfig[];
|
||||
slack?: SlackConfig[];
|
||||
|
||||
Reference in New Issue
Block a user