From 2aadafe37b24da6d22707d51b0b7832fbec54417 Mon Sep 17 00:00:00 2001 From: tycrek Date: Tue, 7 Sep 2021 19:43:46 -0600 Subject: [PATCH] moved all `.js` files into `src/` & removed TLog socket plugin --- ass-x | 2 +- {generators/gfycat => gfycat}/adjectives.txt | 0 {generators/gfycat => gfycat}/animals.txt | 0 package.json | 11 +++++------ ass.js => src/ass.js | 12 ++++++------ auth.js => src/auth.js | 2 +- checkEngine.js => src/checkEngine.js | 2 +- data.js => src/data.js | 0 {generators => src/generators}/gfycat.js | 7 +++++-- {generators => src/generators}/lengthGen.js | 0 {generators => src/generators}/random.js | 0 {generators => src/generators}/token.js | 2 +- {generators => src/generators}/zws.js | 0 hash.js => src/hash.js | 0 metrics.js => src/metrics.js | 4 ++-- {routers => src/routers}/resource.js | 4 ++-- {routers => src/routers}/upload.js | 4 ++-- setup.js => src/setup.js | 4 ++-- storage.js => src/storage.js | 4 ++-- thumbnails.js => src/thumbnails.js | 2 +- utils.js => src/utils.js | 12 ++++-------- vibrant.js => src/vibrant.js | 0 22 files changed, 35 insertions(+), 37 deletions(-) rename {generators/gfycat => gfycat}/adjectives.txt (100%) rename {generators/gfycat => gfycat}/animals.txt (100%) rename ass.js => src/ass.js (85%) mode change 100755 => 100644 rename auth.js => src/auth.js (93%) rename checkEngine.js => src/checkEngine.js (94%) rename data.js => src/data.js (100%) rename {generators => src/generators}/gfycat.js (67%) rename {generators => src/generators}/lengthGen.js (100%) rename {generators => src/generators}/random.js (100%) rename {generators => src/generators}/token.js (95%) rename {generators => src/generators}/zws.js (100%) rename hash.js => src/hash.js (100%) rename metrics.js => src/metrics.js (92%) rename {routers => src/routers}/resource.js (97%) rename {routers => src/routers}/upload.js (98%) rename setup.js => src/setup.js (98%) mode change 100755 => 100644 rename storage.js => src/storage.js (98%) rename thumbnails.js => src/thumbnails.js (98%) rename utils.js => src/utils.js (90%) mode change 100755 => 100644 rename vibrant.js => src/vibrant.js (100%) diff --git a/ass-x b/ass-x index ac4fbe6..7c7eb2a 160000 --- a/ass-x +++ b/ass-x @@ -1 +1 @@ -Subproject commit ac4fbe6d850919a4c347cf3bb69c8d2cb60cd87d +Subproject commit 7c7eb2a5b3b8e644f2a6b8caf7e8041cf7b5e42e diff --git a/generators/gfycat/adjectives.txt b/gfycat/adjectives.txt similarity index 100% rename from generators/gfycat/adjectives.txt rename to gfycat/adjectives.txt diff --git a/generators/gfycat/animals.txt b/gfycat/animals.txt similarity index 100% rename from generators/gfycat/animals.txt rename to gfycat/animals.txt diff --git a/package.json b/package.json index 16e6d3a..fe9739e 100755 --- a/package.json +++ b/package.json @@ -8,15 +8,14 @@ "npm": ">=7.x.x" }, "scripts": { - "start": "node ass.js", - "setup": "node setup.js", - "metrics": "node metrics.js", - "new-token": "node generators/token.js", + "start": "node src/ass.js", + "setup": "node src/setup.js", + "metrics": "node src/metrics.js", + "new-token": "node src/generators/token.js", "restart": "systemctl restart ass.service", - "engine-check": "node checkEngine.js", + "engine-check": "node src/checkEngine.js", "prestart": "npm run engine-check", "presetup": "npm run engine-check", - "logs": "node ./node_modules/@tycrek/log/socketClient.js", "docker-logs": "docker-compose logs -f --tail=50 --no-log-prefix ass", "docker-update": "git pull && docker-compose up --force-recreate --build -d && docker image prune -f", "docker-resetup": "docker-compose exec ass npm run setup && docker-compose restart" diff --git a/ass.js b/src/ass.js old mode 100755 new mode 100644 similarity index 85% rename from ass.js rename to src/ass.js index 9a28b46..cea0235 --- a/ass.js +++ b/src/ass.js @@ -1,7 +1,7 @@ let doSetup = null; try { // Check if config.json exists - require('./config.json'); + require('../config.json'); } catch (err) { doSetup = require('./setup').doSetup; } @@ -13,7 +13,7 @@ if (doSetup) { } // Load the config -const { host, port, useSsl, isProxied, s3enabled, frontendName, indexFile } = require('./config.json'); +const { host, port, useSsl, isProxied, s3enabled, frontendName, indexFile } = require('../config.json'); //#region Imports const fs = require('fs-extra'); @@ -24,8 +24,8 @@ const marked = require('marked'); const uploadRouter = require('./routers/upload'); const resourceRouter = require('./routers/resource'); const { path, log, getTrueHttp, getTrueDomain } = require('./utils'); -const { CODE_INTERNAL_SERVER_ERROR } = require('./MagicNumbers.json'); -const { name: ASS_NAME, version: ASS_VERSION } = require('./package.json'); +const { CODE_INTERNAL_SERVER_ERROR } = require('../MagicNumbers.json'); +const { name: ASS_NAME, version: ASS_VERSION } = require('../package.json'); //#endregion // Welcome :D @@ -66,7 +66,7 @@ useSsl && app.use(helmet.hsts({ preload: true })); // skipcq: JS-0093 app.use(nofavicon); // Use custom index, otherwise render README.md -const ASS_INDEX = indexFile !== '' && fs.existsSync(`./${indexFile}`) && require(`./${indexFile}`); +const ASS_INDEX = indexFile !== '' && fs.existsSync(`../${indexFile}`) && require(`../${indexFile}`); app.get('/', (req, res, next) => ASS_INDEX // skipcq: JS-0229 ? ASS_INDEX(req, res, next) : fs.readFile(path('README.md')) @@ -79,7 +79,7 @@ app.get('/', (req, res, next) => ASS_INDEX // skipcq: JS-0229 app.use('/', ROUTERS.upload); // Set up custom frontend -const ASS_FRONTEND = fs.existsSync(`./${frontendName}/package.json`) ? (require('submodule'), require(`./${frontendName}`)) : { enabled: false }; +const ASS_FRONTEND = fs.existsSync(path(`./${frontendName}/package.json`)) ? (require('submodule'), require(`../${frontendName}`)) : { enabled: false }; // todo: update with src/ ASS_FRONTEND.enabled && app.use(ASS_FRONTEND.endpoint, ASS_FRONTEND.router); // skipcq: JS-0093 // '/:resouceId' always needs to be LAST since it's a catch-all route diff --git a/auth.js b/src/auth.js similarity index 93% rename from auth.js rename to src/auth.js index 1bb0578..1b1269a 100644 --- a/auth.js +++ b/src/auth.js @@ -5,7 +5,7 @@ const fs = require('fs-extra'); const { log, path, arrayEquals } = require('./utils'); -const users = require('./auth.json').users || {}; +const users = require('../auth.json').users || {}; // Monitor auth.json for changes (triggered by running 'npm run new-token') fs.watch(path('auth.json'), { persistent: false }, diff --git a/checkEngine.js b/src/checkEngine.js similarity index 94% rename from checkEngine.js rename to src/checkEngine.js index dd277fb..0b7150a 100644 --- a/checkEngine.js +++ b/src/checkEngine.js @@ -1,5 +1,5 @@ const check = require("check-node-version"); -const ENGINES = require('./package.json').engines; +const ENGINES = require('../package.json').engines; const TLog = require('@tycrek/log'); const logger = new TLog(); diff --git a/data.js b/src/data.js similarity index 100% rename from data.js rename to src/data.js diff --git a/generators/gfycat.js b/src/generators/gfycat.js similarity index 67% rename from generators/gfycat.js rename to src/generators/gfycat.js index f7ddefc..a7f418d 100644 --- a/generators/gfycat.js +++ b/src/generators/gfycat.js @@ -1,6 +1,4 @@ const fs = require('fs-extra'); -const adjectives = fs.readFileSync('./generators/gfycat/adjectives.txt').toString().split('\n'); -const animals = fs.readFileSync('./generators/gfycat/animals.txt').toString().split('\n'); // Don't trigger circular dependency during setup if (!require.main.filename.includes('setup.js')) @@ -11,6 +9,11 @@ function getWord(list, delim = '') { } function genString(count = MIN_LENGTH) { + // For some reason these 3 lines MUST be inside the function + const { path } = require('../utils'); + const adjectives = fs.readFileSync(path('./gfycat/adjectives.txt')).toString().split('\n'); + const animals = fs.readFileSync(path('./gfycat/animals.txt')).toString().split('\n'); + let gfycat = ''; for (let i = 0; i < (count < MIN_LENGTH ? MIN_LENGTH : count); i++) gfycat += getWord(adjectives, '-'); diff --git a/generators/lengthGen.js b/src/generators/lengthGen.js similarity index 100% rename from generators/lengthGen.js rename to src/generators/lengthGen.js diff --git a/generators/random.js b/src/generators/random.js similarity index 100% rename from generators/random.js rename to src/generators/random.js diff --git a/generators/token.js b/src/generators/token.js similarity index 95% rename from generators/token.js rename to src/generators/token.js index 674eaaf..5581844 100644 --- a/generators/token.js +++ b/src/generators/token.js @@ -12,7 +12,7 @@ module.exports = () => uuid().replace(/-/g, ''); // If directly called on the command line, generate a new token if (require.main === module) { const token = module.exports(); - const authPath = path.join(__dirname, '..', 'auth.json'); + const authPath = path.join(process.cwd(), 'auth.json'); let name = ''; fs.readJson(authPath) diff --git a/generators/zws.js b/src/generators/zws.js similarity index 100% rename from generators/zws.js rename to src/generators/zws.js diff --git a/hash.js b/src/hash.js similarity index 100% rename from hash.js rename to src/hash.js diff --git a/metrics.js b/src/metrics.js similarity index 92% rename from metrics.js rename to src/metrics.js index c304d0b..d101817 100644 --- a/metrics.js +++ b/src/metrics.js @@ -1,6 +1,6 @@ const fs = require('fs-extra'); const path = require('path'); -const { s3enabled } = require('./config.json'); +const { s3enabled } = require('../config.json'); const { formatBytes } = require('./utils'); const { bucketSize } = require('./storage'); @@ -9,7 +9,7 @@ const log = new TLog({ level: 'debug', timestamp: { enabled: false } }); module.exports = () => { const data = require('./data'); - const { users } = fs.readJsonSync(path.join(__dirname, 'auth.json')); + const { users } = fs.readJsonSync(path.join(process.cwd(), 'auth.json')); Object.keys(users).forEach((token) => users[token].count = 0); let totalSize = 0; diff --git a/routers/resource.js b/src/routers/resource.js similarity index 97% rename from routers/resource.js rename to src/routers/resource.js index 5542f8c..7ffd3b4 100644 --- a/routers/resource.js +++ b/src/routers/resource.js @@ -2,9 +2,9 @@ const fs = require('fs-extra'); const escape = require('escape-html'); const fetch = require('node-fetch'); const { deleteS3 } = require('../storage'); -const { diskFilePath, s3enabled, viewDirect } = require('../config.json'); +const { diskFilePath, s3enabled, viewDirect } = require('../../config.json'); const { path, log, getTrueHttp, getTrueDomain, formatBytes, formatTimestamp, getS3url, getDirectUrl, getResourceColor, replaceholder } = require('../utils'); -const { CODE_UNAUTHORIZED, CODE_NOT_FOUND, } = require('../MagicNumbers.json'); +const { CODE_UNAUTHORIZED, CODE_NOT_FOUND, } = require('../../MagicNumbers.json'); const data = require('../data'); const users = require('../auth'); diff --git a/routers/upload.js b/src/routers/upload.js similarity index 98% rename from routers/upload.js rename to src/routers/upload.js index 7898865..9bdaf76 100644 --- a/routers/upload.js +++ b/src/routers/upload.js @@ -3,9 +3,9 @@ const fs = require('fs-extra'); const { DateTime } = require('luxon'); const { WebhookClient, MessageEmbed } = require('discord.js'); const { doUpload, processUploaded } = require('../storage'); -const { maxUploadSize, resourceIdSize, gfyIdSize, resourceIdType } = require('../config.json'); +const { maxUploadSize, resourceIdSize, gfyIdSize, resourceIdType } = require('../../config.json'); const { path, log, verify, getTrueHttp, getTrueDomain, generateId, formatBytes } = require('../utils'); -const { CODE_UNAUTHORIZED, CODE_PAYLOAD_TOO_LARGE } = require('../MagicNumbers.json'); +const { CODE_UNAUTHORIZED, CODE_PAYLOAD_TOO_LARGE } = require('../../MagicNumbers.json'); const data = require('../data'); const users = require('../auth'); diff --git a/setup.js b/src/setup.js old mode 100755 new mode 100644 similarity index 98% rename from setup.js rename to src/setup.js index 246f2b8..fafe4e9 --- a/setup.js +++ b/src/setup.js @@ -53,7 +53,7 @@ function getConfirmSchema(description) { // If directly called on the command line, run setup script function doSetup() { - const path = (...paths) => require('path').join(__dirname, ...paths); + const path = (...paths) => require('path').join(process.cwd(), ...paths); const TLog = require('@tycrek/log'); const fs = require('fs-extra'); const prompt = require('prompt'); @@ -64,7 +64,7 @@ function doSetup() { // Override default configs with existing configs to allow migrating configs // Now that's a lot of configs! try { - const existingConfig = require('./config.json'); + const existingConfig = require('../config.json'); Object.entries(existingConfig).forEach(([key, value]) => { Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value); // skipcq: JS-0093 Object.prototype.hasOwnProperty.call(s3config, key) && (s3config[key] = value); // skipcq: JS-0093 diff --git a/storage.js b/src/storage.js similarity index 98% rename from storage.js rename to src/storage.js index 776608e..c396335 100644 --- a/storage.js +++ b/src/storage.js @@ -8,8 +8,8 @@ const Thumbnail = require('./thumbnails'); const Vibrant = require('./vibrant'); const Hash = require('./hash'); const { getDatedDirname, sanitize, generateId, formatBytes, log } = require('./utils'); -const { s3enabled, s3endpoint, s3bucket, s3usePathStyle, s3accessKey, s3secretKey, saveAsOriginal, maxUploadSize, mediaStrict } = require('./config.json'); -const { CODE_UNSUPPORTED_MEDIA_TYPE } = require('./MagicNumbers.json'); +const { s3enabled, s3endpoint, s3bucket, s3usePathStyle, s3accessKey, s3secretKey, saveAsOriginal, maxUploadSize, mediaStrict } = require('../config.json'); +const { CODE_UNSUPPORTED_MEDIA_TYPE } = require('../MagicNumbers.json'); const ID_GEN_LENGTH = 32; const ALLOWED_MIMETYPES = /(image)|(video)|(audio)\//; diff --git a/thumbnails.js b/src/thumbnails.js similarity index 98% rename from thumbnails.js rename to src/thumbnails.js index 1648323..22bce7f 100644 --- a/thumbnails.js +++ b/src/thumbnails.js @@ -3,7 +3,7 @@ const Jimp = require('jimp'); const shell = require('any-shell-escape'); const { exec } = require('child_process'); const { isProd, path } = require('./utils'); -const { diskFilePath } = require('./config.json'); +const { diskFilePath } = require('../config.json'); // Thumbnail parameters const THUMBNAIL = { diff --git a/utils.js b/src/utils.js old mode 100755 new mode 100644 similarity index 90% rename from utils.js rename to src/utils.js index 15f9629..50771b0 --- a/utils.js +++ b/src/utils.js @@ -8,11 +8,11 @@ const token = require('./generators/token'); const zwsGen = require('./generators/zws'); const randomGen = require('./generators/random'); const gfyGen = require('./generators/gfycat'); -const { HTTP, HTTPS, KILOBYTES } = require('./MagicNumbers.json'); +const { HTTP, HTTPS, KILOBYTES } = require('../MagicNumbers.json'); // Catch config.json not existing when running setup script try { - var { useSsl, port, domain, isProxied, diskFilePath, saveWithDate, s3bucket, s3endpoint, s3usePathStyle } = require('./config.json'); // skipcq: JS-0239, JS-0102 + var { useSsl, port, domain, isProxied, diskFilePath, saveWithDate, s3bucket, s3endpoint, s3usePathStyle } = require('../config.json'); // skipcq: JS-0239, JS-0102 } catch (ex) { if (ex.code !== 'MODULE_NOT_FOUND') console.error(ex); } @@ -74,7 +74,7 @@ function getDatedDirname() { } // Set up pathing & the logger -const path = (...paths) => Path.join(process.cwd(), ...paths); +const path = (...paths) => Path.join(process.cwd(), ...paths); // '..' was added to make it easier to run files after moving the project to src/ const logger = new TLog({ level: process.env.LOG_LEVEL || (process.env.NODE_ENV === 'production' ? 'info' : 'debug'), timestamp: { @@ -85,11 +85,7 @@ const logger = new TLog({ }); // Enable the Express logger -logger - .env('ASS_ENV') - //.enable.process({ uncaughtException: false }).debug('Plugin enabled', 'Process') - .enable.express({ handle500: false }).debug('Plugin enabled', 'Express') - .enable.socket().debug('Plugin enabled', 'Socket'); +logger.enable.express({ handle500: false }).debug('Plugin enabled', 'Express'); const idModes = { zws: 'zws', // Zero-width spaces (see: https://zws.im/) diff --git a/vibrant.js b/src/vibrant.js similarity index 100% rename from vibrant.js rename to src/vibrant.js