aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Main.hx
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2021-09-27 20:13:55 +0300
committerRblSb <msrblsb@gmail.com>2021-09-27 20:14:36 +0300
commit1dc2722d509e578b243bfda1a675dcfdb6003941 (patch)
treedd78e7e09432177f5ea4ed8a3febbfbf0d5113ec /src/server/Main.hx
parentd3c34032ef86163d683ef22906481e0f3196ae79 (diff)
Got a bug? Write /dump to chat as admin
And open new issue with received file.
Diffstat (limited to 'src/server/Main.hx')
-rw-r--r--src/server/Main.hx35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/server/Main.hx b/src/server/Main.hx
index b9e9325..748c513 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -238,7 +238,13 @@ class Main {
function saveState():Void {
trace("Saving state...");
- final data:ServerState = {
+ final json = Json.stringify(getCurrentState(), "\t");
+ File.saveContent(statePath, json);
+ writeUsers(userList);
+ }
+
+ function getCurrentState():ServerState {
+ return {
videoList: videoList,
isPlaylistOpen: isPlaylistOpen,
itemPos: itemPos,
@@ -248,9 +254,6 @@ class Main {
paused: videoTimer.isPaused()
}
}
- final json = Json.stringify(data, "\t");
- File.saveContent(statePath, json);
- writeUsers(userList);
}
function loadState():Void {
@@ -395,6 +398,7 @@ class Main {
if (data.type == TogglePlaylistLock) return false;
if (data.type == UpdatePlaylist) return false;
if (data.type == Logout) return false;
+ if (data.type == Dump) return false;
// check if request has same field as type value
final t:String = cast data.type;
final t = t.charAt(0).toLowerCase() + t.substr(1);
@@ -811,6 +815,29 @@ class Main {
isOpen: isPlaylistOpen
}
});
+
+ case Dump:
+ if (!client.isAdmin) return;
+ final data = {
+ state: getCurrentState(),
+ clients: clients.map(client -> {
+ name: client.name,
+ id: client.id,
+ ip: clientIp(client.req),
+ isBanned: client.isBanned,
+ isAdmin: client.isAdmin,
+ isLeader: client.isLeader,
+ isUser: client.isUser,
+ }),
+ logs: logger.getLogs()
+ }
+ final json = Json.stringify(data, logger.filterNulls, "\t");
+ send(client, {
+ type: Dump,
+ dump: {
+ data: json
+ }
+ });
}
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage