From 9d8512475bd38016a1d0d7bdfc36a17ab1f97933 Mon Sep 17 00:00:00 2001 From: aef123 Date: Sat, 6 May 2023 21:03:06 -0700 Subject: [PATCH] Cleaning up file sync --- filesync.json | 2 +- src/fileWatch.ts | 12 ++++++++++++ src/index.ts | 17 ++++------------- src/networking/messageHandler.ts | 15 ++++++++------- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/filesync.json b/filesync.json index b107c82..a6b7c69 100644 --- a/filesync.json +++ b/filesync.json @@ -13,7 +13,7 @@ }, "logFiles": { "update": true, - "interval": 1, + "interval": 30, "remoteLocation": "/logs/", "localLocation": "D:\\bitburner_game_logs" }, diff --git a/src/fileWatch.ts b/src/fileWatch.ts index 8eaea54..44c7956 100644 --- a/src/fileWatch.ts +++ b/src/fileWatch.ts @@ -3,6 +3,7 @@ import { config } from "./config"; import { EventType } from "./eventTypes"; import { mkdir } from "fs/promises"; import { resolve } from "path"; +import { getAllFiles } from "./networking/messageGenerators"; import type { Signal } from "signal-js"; import type { File } from "./interfaces"; @@ -23,6 +24,17 @@ export async function setupLogsFolder() { } } +export async function monitorLogs(signaller: Signal) +{ + if (config.get("logFiles").update) { + await setupLogsFolder(); + while(true) { + signaller.emit(EventType.MessageSend, getAllFiles()); + await new Promise((resolve) => setTimeout(resolve, config.get("logFiles").interval * 1000)); + } + } +} + function isError(err: unknown): err is NodeJS.ErrnoException { return (err as NodeJS.ErrnoException).code !== undefined; } diff --git a/src/index.ts b/src/index.ts index 1f8839f..324179a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import { setupWatch, setupLogsFolder } from "./fileWatch"; +import { setupWatch, monitorLogs } from "./fileWatch"; import { config, loadConfig } from "./config"; import { setupSocket } from "./networking/webSocket"; import signal from "signal-js"; @@ -20,10 +20,9 @@ export async function start() { const watch = await setupWatch(signal); const socket = setupSocket(signal); let isConnected: boolean = false; - - await setupLogsFolder(); + // Add a handler for received messages. - signal.on(EventType.MessageReceived, (msg: RawData) => messageHandler(signal, msg, watch.paths, config.get("logFiles").update, config.get("logFiles").remoteLocation, config.get("logFiles").localLocation)); + signal.on(EventType.MessageReceived, (msg: RawData) => messageHandler(signal, msg, watch.paths)); // Add a handler for when a connection to a game is made. signal.on(EventType.ConnectionMade, () => { @@ -68,13 +67,5 @@ export async function start() { process.exit(); }); - if (config.get("logFiles").update) { - while(true) { - if ((isConnected as boolean) === true) { - signal.emit(EventType.MessageSend, getAllFiles()); - } - - await new Promise((resolve) => setTimeout(resolve, config.get("logFiles").interval * 1000)); - } - } + await monitorLogs(signal); } diff --git a/src/networking/messageHandler.ts b/src/networking/messageHandler.ts index c4ce667..c2abfdd 100644 --- a/src/networking/messageHandler.ts +++ b/src/networking/messageHandler.ts @@ -32,14 +32,15 @@ export function isStringArray(s: Array): s is string[] { return s.every((s) => typeof s === "string"); } -export function messageHandler(signaller: Signal, - data: RawData, - paths: Map, - updateLogs: boolean, - remoteLogFolder: string, - localLogFolder: string) { +export function messageHandler(signaller: Signal, data: RawData, paths: Map) { + + let updateLogs: boolean = config.get("logFiles").update; + let remoteLogFolder: string = config.get("logFiles").remoteLocation; + let localLogFolder: string = config.get("logFiles").localLocation; + let incoming; + try { incoming = deserialize(data); } catch (err) { @@ -85,7 +86,7 @@ export function messageHandler(signaller: Signal, } } } - + break; } }