From 4c03e05686a2952b77ec9979c89bc08f6afb3dc6 Mon Sep 17 00:00:00 2001 From: mrfry Date: Sat, 15 May 2021 11:12:32 +0200 Subject: [PATCH] Added supportedSites api --- src/modules/api/submodules/qminingapi.ts | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/modules/api/submodules/qminingapi.ts b/src/modules/api/submodules/qminingapi.ts index 450ec44..bc884ab 100644 --- a/src/modules/api/submodules/qminingapi.ts +++ b/src/modules/api/submodules/qminingapi.ts @@ -293,6 +293,35 @@ function saveQuestion(questions, subj, testUrl, userid, savedQuestionsDir) { utils.WriteFile(JSON.stringify(questionsToSave), `${subjPath}/${fname}`) } +function loadSupportedSites() { + const script = utils.ReadFile(userScriptFile).split('\n') + + let i = 0 + let stayIn = true + let inHeader = false + let inMatch = false + const sites = [] + while (i < script.length && stayIn) { + if (inHeader) { + if (script[i].includes('@match')) { + inMatch = true + } + if (inMatch && !script[i].includes('match')) { + stayIn = false + inMatch = false + } + if (inMatch) { + sites.push(script[i].split(' ').pop()) + } + } else { + inHeader = script[i].includes('==UserScript==') + } + i++ + } + + return sites +} + function LoadVersion() { const scriptContent = utils.ReadFile(userScriptFile) @@ -385,6 +414,7 @@ function setup(data: SubmoduleData): any { const savedQuestionsDir = publicDir + 'savedQuestions' let version = LoadVersion() + let supportedSites = loadSupportedSites() let motd = LoadMOTD(motdFile) let userSpecificMotd = LoadUserSpecificMOTD(userSpecificMotdFile) let testUsers: any = LoadTestUsers() @@ -420,6 +450,7 @@ function setup(data: SubmoduleData): any { logMsg: 'User script file changed', action: () => { version = LoadVersion() + supportedSites = loadSupportedSites() }, }, ] @@ -662,6 +693,13 @@ function setup(data: SubmoduleData): any { }) } }) + + app.get('/supportedSites', function (req: Request, res: any) { + logger.LogReq(req) + + res.json(supportedSites) + }) + app.get('/datacount', function (req: Request, res: any) { logger.LogReq(req) if (req.query.detailed === 'all') { @@ -675,6 +713,7 @@ function setup(data: SubmoduleData): any { res.json(getSimplreRes(questionDbs)) } }) + app.get('/infos', function (req: Request, res) { const user: User = req.session.user