From c8161e4dce4a07c55b07f2d61ccef04752259291 Mon Sep 17 00:00:00 2001 From: mrfry Date: Wed, 16 Dec 2020 17:48:34 +0100 Subject: [PATCH] Watched files logic refactor, loading api / redirect from file --- src/modules/api/api.ts | 75 +++++++++++++++++++++---------- src/server.ts | 2 +- submodules/moodle-test-userscript | 2 +- 3 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/modules/api/api.ts b/src/modules/api/api.ts index 994059f..40889f6 100644 --- a/src/modules/api/api.ts +++ b/src/modules/api/api.ts @@ -55,6 +55,8 @@ const testUsersFile = 'data/testUsers.json' const idStatFile = 'stats/idstats' const idvStatFile = 'stats/idvstats' const todosFile = 'data/todos.json' +const userScriptFile = 'submodules/moodle-test-userscript/stable.user.js' +const rootRedirectToFile = 'data/apiRootRedirectTo' // other constants const line = '====================================================' // lol @@ -107,7 +109,6 @@ function GetApp(): ModuleType { ] const motdFile = publicDir + 'motd' const userSpecificMotdFile = publicDir + 'userSpecificMotd.json' - const versionFile = publicDir + 'version' let domain = url.split('.') // [ "https://api", "frylabs", "net" ] domain.shift() // [ "frylabs", "net" ] @@ -156,6 +157,7 @@ function GetApp(): ModuleType { const questionDbs = loadJSON(dataFiles) let version = '' + let rootRedirectURL = '' let motd = '' let userSpecificMotd = {} // FIXME: check type from file @@ -175,7 +177,16 @@ function GetApp(): ModuleType { } function LoadVersion() { - version = utils.ReadFile(versionFile) + const scriptContent = utils.ReadFile(userScriptFile) + + let temp: any = scriptContent.split('\n').find((x) => { + return x.includes('@version') + }) + temp = temp.split(' ') + temp = temp[temp.length - 1] + + version = temp + console.log(version) } function LoadMOTD() { @@ -198,6 +209,10 @@ function GetApp(): ModuleType { } } + function reloadRootRedirectURL() { + rootRedirectURL = utils.ReadFile(rootRedirectToFile) + } + function userShouldGetUserSpecificMOTD(id) { let shouldSee = true let write = false @@ -231,30 +246,44 @@ function GetApp(): ModuleType { return shouldSee } + const filesToWatch = [ + { + fname: userSpecificMotdFile, + logMsg: 'User Specific Motd updated', + action: LoadUserSpecificMOTD, + }, + { + fname: motdFile, + logMsg: 'Motd updated', + action: LoadMOTD, + }, + { + fname: testUsersFile, + logMsg: 'Test Users file changed', + action: LoadTestUsers, + }, + { + fname: userScriptFile, + logMsg: 'User script file changed', + action: LoadVersion, + }, + { + fname: rootRedirectToFile, + logMsg: 'Root redirect URL changed', + action: reloadRootRedirectURL, + }, + ] + function Load() { backupData(questionDbs) - utils.WatchFile(userSpecificMotdFile, () => { - logger.Log(`User Specific Motd updated`, logger.GetColor('green')) - LoadUserSpecificMOTD() + filesToWatch.forEach((ftw) => { + utils.WatchFile(ftw.fname, () => { + logger.Log(ftw.logMsg) + ftw.action() + }) + ftw.action() }) - utils.WatchFile(motdFile, () => { - logger.Log(`Motd updated`, logger.GetColor('green')) - LoadMOTD() - }) - utils.WatchFile(versionFile, (newData) => { - logger.Log(`Version changed: ${newData.replace(/\/n/g, '')}`) - LoadVersion() - }) - utils.WatchFile(testUsersFile, () => { - logger.Log(`Test Users file changed`, logger.GetColor('green')) - LoadTestUsers() - }) - - LoadUserSpecificMOTD() - LoadTestUsers() - LoadVersion() - LoadMOTD() } Load() @@ -761,7 +790,7 @@ function GetApp(): ModuleType { app.get('/', function(req: Request, res: any) { logger.LogReq(req) - res.redirect('https://www.youtube.com/watch?v=qLrnkK2YEcE') + res.redirect(rootRedirectURL) }) app.post('/postfeedbackfile', function(req: Request, res: any) { diff --git a/src/server.ts b/src/server.ts index 9406ee4..22572b0 100755 --- a/src/server.ts +++ b/src/server.ts @@ -152,7 +152,7 @@ const cookieSecret = uuidv4() app.use(cookieParser(cookieSecret)) app.use( reqlogger({ - loggableKeywords: [], + loggableKeywords: ['news.json'], loggableModules: ['dataeditor'], }) ) diff --git a/submodules/moodle-test-userscript b/submodules/moodle-test-userscript index f8d4bf2..dc07c90 160000 --- a/submodules/moodle-test-userscript +++ b/submodules/moodle-test-userscript @@ -1 +1 @@ -Subproject commit f8d4bf2a414d2973582c08bfa8b8b8f19389b2e9 +Subproject commit dc07c903d39003a5cc13302a9ee6e6e3e0b6ee17