diff --git a/modules.json b/modules.json index 612f6ce..fe7a0b8 100644 --- a/modules.json +++ b/modules.json @@ -1,33 +1,39 @@ { "dataEditor": { "path": "./modules/dataEditor/dataEditor.js", + "publicdirs": [ "qminingPublic/", "modules/dataEditor/public/" ], "name": "dataeditor", "urls": [ "dataeditor.frylabs.net" ], "isNextJs": true }, "qmining": { "path": "./modules/qmining/qmining.js", + "publicdirs": [ "qminingPublic/", "modules/qmining/public/" ], "name": "qmining", "urls": [ "qmining.frylabs.net" ], "isNextJs": true }, "api": { "path": "./modules/api/api.js", + "publicdirs": [ "qminingPublic/" ], "name": "api", "urls": [ "api.frylabs.net", "localhost" ] }, "main": { "path": "./modules/main/main.js", + "publicdirs": [ "public/" ], "name": "main", "urls": [ "frylabs.net", "www.frylabs.net" ] }, "sio": { "path": "./modules/sio/sio.js", + "publicdirs": [ "sioPublic/" ], "name": "sio", "urls": [ "sio.frylabs.net" ] }, "stuff": { "path": "./modules/stuff/stuff.js", + "publicdirs": [ "stuffPublic/" ], "name": "stuff", "urls": [ "stuff.frylabs.net" ] } diff --git a/modules/api/api.js b/modules/api/api.js index 788e4c8..814c055 100644 --- a/modules/api/api.js +++ b/modules/api/api.js @@ -52,6 +52,7 @@ const daysAfterUserGetsPWs = 2 // days after user gets pw-s let userDB let url +let publicdirs = [] function GetApp () { app.use(bodyParser.urlencoded({ @@ -79,7 +80,10 @@ function GetApp () { '/badtestsender' ] })) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 50000 * 1024 * 1024 @@ -653,4 +657,5 @@ exports.getApp = GetApp exports.setup = (data) => { userDB = data.userDB url = data.url + publicdirs = data.publicdirs } diff --git a/modules/dataEditor/dataEditor.js b/modules/dataEditor/dataEditor.js index 95527b7..a1ebfcf 100644 --- a/modules/dataEditor/dataEditor.js +++ b/modules/dataEditor/dataEditor.js @@ -28,6 +28,7 @@ const logger = require('../../utils/logger.js') const auth = require('../../middlewares/auth.middleware.js') let userDB +let publicdirs = [] function GetApp () { app.use(bodyParser.urlencoded({ @@ -50,8 +51,10 @@ function GetApp () { '/getVeteranPw' ] })) - app.use(express.static('modules/dataEditor/public')) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 10000 * 1024 * 1024 @@ -103,4 +106,5 @@ exports.name = 'Data editor' exports.getApp = GetApp exports.setup = (data) => { userDB = data.userDB + publicdirs = data.publicdirs } diff --git a/modules/main/main.js b/modules/main/main.js index ebbf0b9..dbbcb99 100644 --- a/modules/main/main.js +++ b/modules/main/main.js @@ -25,17 +25,22 @@ const bodyParser = require('body-parser') const busboy = require('connect-busboy') const app = express() -// const logger = require('../../utils/logger.js') +const logger = require('../../utils/logger.js') // const utils = require('../utils/utils.js') // const actions = require('../utils/actions.js') +let publicdirs = [] + function GetApp () { app.set('view engine', 'ejs') app.set('views', [ './modules/main/views', './sharedViews' ]) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 10000 * 1024 * 1024 @@ -73,6 +78,7 @@ function GetApp () { exports.name = 'Main' exports.getApp = GetApp -exports.setup = (x) => { - url = x.url +exports.setup = (data) => { + url = data.url + publicdirs = data.publicdirs } diff --git a/modules/qmining/qmining.js b/modules/qmining/qmining.js index edb8d16..de98ee1 100644 --- a/modules/qmining/qmining.js +++ b/modules/qmining/qmining.js @@ -28,6 +28,7 @@ const logger = require('../../utils/logger.js') const auth = require('../../middlewares/auth.middleware.js') let donateURL = '' +let publicdirs = [] let userDB try { @@ -61,8 +62,10 @@ function GetApp () { '/irc' ] })) - app.use(express.static('modules/qmining/public')) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 10000 * 1024 * 1024 @@ -201,4 +204,5 @@ exports.name = 'Qmining' exports.getApp = GetApp exports.setup = (data) => { userDB = data.userDB + publicdirs = data.publicdirs } diff --git a/modules/sio/sio.js b/modules/sio/sio.js index 2eaaab0..7cfece4 100644 --- a/modules/sio/sio.js +++ b/modules/sio/sio.js @@ -31,13 +31,18 @@ const utils = require('../../utils/utils.js') const uloadFiles = './public/f' +let publicdirs = [] + function GetApp () { app.set('view engine', 'ejs') app.set('views', [ './modules/sio/views', './sharedViews' ]) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 10000 * 1024 * 1024 @@ -102,3 +107,6 @@ function GetApp () { exports.name = 'Sio' exports.getApp = GetApp +exports.setup = (data) => { + publicdirs = data.publicdirs +} diff --git a/modules/stuff/stuff.js b/modules/stuff/stuff.js index 51d3555..b53a000 100644 --- a/modules/stuff/stuff.js +++ b/modules/stuff/stuff.js @@ -31,13 +31,18 @@ const logger = require('../../utils/logger.js') const listedFiles = './public/files' +let publicdirs = [] + function GetApp () { app.set('view engine', 'ejs') app.set('views', [ './modules/stuff/views', './sharedViews' ]) - app.use(express.static('public')) + publicdirs.forEach((pdir) => { + logger.Log(`Using public dir: ${pdir}`) + app.use(express.static(pdir)) + }) app.use(busboy({ limits: { fileSize: 10000 * 1024 * 1024 @@ -213,6 +218,7 @@ function GetApp () { exports.name = 'Stuff' exports.getApp = GetApp -exports.setup = (x) => { - url = x.url +exports.setup = (data) => { + url = data.url + publicdirs = data.publicdirs } diff --git a/qminingPublic/favicon.ico b/qminingPublic/favicon.ico new file mode 100755 index 0000000..cab5a02 Binary files /dev/null and b/qminingPublic/favicon.ico differ diff --git a/server.js b/server.js index b05348e..5560602 100755 --- a/server.js +++ b/server.js @@ -112,10 +112,16 @@ Object.keys(modules).forEach(function (k, i) { try { let mod = require(x.path) logger.Log(`Loading ${mod.name} module`, logger.GetColor('yellow')) + + x.publicdirs.forEach((pdir) => { + utils.CreatePath(pdir) + }) + if (mod.setup) { mod.setup({ url: 'https://' + x.urls[0], - userDB: userDB + userDB: userDB, + publicdirs: x.publicdirs }) }