diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/Logger.hx | 9 | ||||
| -rw-r--r-- | src/server/Main.hx | 19 |
2 files changed, 16 insertions, 12 deletions
diff --git a/src/server/Logger.hx b/src/server/Logger.hx index bf06968..42d382d 100644 --- a/src/server/Logger.hx +++ b/src/server/Logger.hx @@ -40,20 +40,13 @@ class Logger { Utils.ensureDir(folder); removeOldestLog(folder); final name = DateTools.format(Date.now(), "%Y-%m-%d_%H_%M_%S"); - File.saveContent('$folder/$name.json', Json.stringify(getLogs(), filterNulls, "\t")); + File.saveContent('$folder/$name.json', Main.jsonStringify(getLogs(), "\t")); } public function getLogs():Array<ServerEvent> { return logs; } - public function filterNulls(key:Any, value:Any):Any { - #if js - if (value == null) return js.Lib.undefined; - #end - return value; - } - function removeOldestLog(folder:String):Void { final names = FileSystem.readDirectory(folder).filter(name -> { if (FileSystem.isDirectory('$folder/$name')) return false; diff --git a/src/server/Main.hx b/src/server/Main.hx index 4f0fd03..d5c0800 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -940,7 +940,7 @@ class Main { }), logs: logger.getLogs() } - final json = Json.stringify(data, logger.filterNulls, "\t"); + final json = jsonStringify(data, "\t"); send(client, { type: Dump, dump: { @@ -984,23 +984,34 @@ class Main { } public function send(client:Client, data:WsEvent):Void { - client.ws.send(Json.stringify(data), null); + client.ws.send(jsonStringify(data), null); } public function broadcast(data:WsEvent):Void { - final json = Json.stringify(data); + final json = jsonStringify(data); for (client in clients) client.ws.send(json, null); } public function broadcastExcept(skipped:Client, data:WsEvent):Void { - final json = Json.stringify(data); + final json = jsonStringify(data); for (client in clients) { if (client == skipped) continue; client.ws.send(json, null); } } + public static function jsonStringify(data:Any, ?space:String):String { + return Json.stringify(data, jsonFilterNulls, space); + } + + static function jsonFilterNulls(key:Any, value:Any):Any { + #if js + if (value == null) return js.Lib.undefined; + #end + return value; + } + function skipVideo(data:WsEvent):Void { if (videoList.length == 0) return; final item = videoList.currentItem; |
