diff --git a/src/core/Tile.js b/src/core/Tile.js index b62a712..a16c742 100644 --- a/src/core/Tile.js +++ b/src/core/Tile.js @@ -242,7 +242,7 @@ function addIndexedSubtiletoTile( */ function tileFileName(canvasTileFolder, cell) { const [z, x, y] = cell; - const filename = path.resolve(`${canvasTileFolder}/${z}/${x}/${y}.webp`); + const filename = path.resolve(canvasTileFolder, z, x, `${y}.webp`); try { const mtime = new Date(fs.statSync(filename).mtime).getTime(); if (Date.now() - mtime < 120000) { @@ -471,7 +471,7 @@ async function createEmptyTile( // eslint-disable-next-line prefer-destructuring tileRGBBuffer[i++] = palette.rgb[2]; } - const filename = path.resolve(`${canvasTileFolder}/emptytile.webp`); + const filename = path.resolve(canvasTileFolder, 'emptytile.webp'); try { await sharp(tileRGBBuffer, { raw: { @@ -572,7 +572,7 @@ export async function createTexture( deleteSubtilefromTile(TILE_SIZE, palette, amount, element, textureBuffer); }); - const filename = path.resolve(`${canvasTileFolder}/texture.webp`); + const filename = path.resolve(canvasTileFolder, 'texture.webp'); try { await sharp(textureBuffer, { raw: { @@ -616,21 +616,19 @@ export async function initializeTiles( await createEmptyTile(canvasTileFolder, palette); // base zoomlevel let zoom = maxTiledZoom - 1; - let zoomDir = `${canvasTileFolder}/${zoom}`; + let zoomDir = path.resolve(canvasTileFolder, zoom); console.log(`Tiling: Checking zoomlevel ${zoomDir}`); if (!fs.existsSync(zoomDir)) fs.mkdirSync(zoomDir); let cnt = 0; let cnts = 0; const maxBase = TILE_ZOOM_LEVEL ** zoom; for (let cx = 0; cx < maxBase; cx += 1) { - const tileDir = `${canvasTileFolder}/${zoom}/${cx}`; + const tileDir = path.resolve(canvasTileFolder, zoom, cx); if (!fs.existsSync(tileDir)) { fs.mkdirSync(tileDir); } for (let cy = 0; cy < maxBase; cy += 1) { - const filename = path.resolve( - `${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`, - ); + const filename = path.resolve(canvasTileFolder, zoom, cx, `${cy}.webp`); if (force || !fs.existsSync(filename)) { const ret = await createZoomTileFromChunk( canvasId, @@ -651,18 +649,18 @@ export async function initializeTiles( for (zoom = maxTiledZoom - 2; zoom >= 0; zoom -= 1) { cnt = 0; cnts = 0; - zoomDir = `${canvasTileFolder}/${zoom}`; + zoomDir = path.resolve(canvasTileFolder, zoom); console.log(`Tiling: Checking zoomlevel ${zoomDir}`); if (!fs.existsSync(zoomDir)) fs.mkdirSync(zoomDir); const maxZ = TILE_ZOOM_LEVEL ** zoom; for (let cx = 0; cx < maxZ; cx += 1) { - const tileDir = `${canvasTileFolder}/${zoom}/${cx}`; + const tileDir = path.resolve(canvasTileFolder, zoom, cx); if (!fs.existsSync(tileDir)) { fs.mkdirSync(tileDir); } for (let cy = 0; cy < maxZ; cy += 1) { const filename = path.resolve( - `${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`, + canvasTileFolder, zoom, cx, `${cy}.webp`, ); if (force || !fs.existsSync(filename)) { const ret = await createZoomedTile( diff --git a/src/core/captchaserver.js b/src/core/captchaserver.js index af31b5c..4627dd4 100644 --- a/src/core/captchaserver.js +++ b/src/core/captchaserver.js @@ -12,7 +12,7 @@ const MAX_WAIT = 30 * 1000; /* * worker thread */ -const worker = new Worker(path.resolve('./workers/captchaloader.js')); +const worker = new Worker(path.resolve('workers', 'captchaloader.js')); /* * queue of captcha-generation tasks diff --git a/src/core/config.js b/src/core/config.js index 885f75e..5d22fbb 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -20,7 +20,7 @@ export const MAIL_ADDRESS = process.env.MAIL_ADDRESS || 'donotreply@pixelplanet.fun'; const TILE_FOLDER_REL = process.env.TILE_FOLDER || 'tiles'; -export const TILE_FOLDER = path.join(__dirname, `./${TILE_FOLDER_REL}`); +export const TILE_FOLDER = path.resolve(TILE_FOLDER_REL); export const USE_XREALIP = !!process.env.USE_XREALIP; diff --git a/src/core/tileserver.js b/src/core/tileserver.js index fe2e69a..037d041 100644 --- a/src/core/tileserver.js +++ b/src/core/tileserver.js @@ -24,7 +24,7 @@ const CanvasUpdaters = {}; /* * worker thread */ -const worker = new Worker(path.resolve('./workers/tilewriter.js')); +const worker = new Worker(path.resolve('workers', 'tilewriter.js')); /* * queue of tasks that is worked on in FIFO @@ -61,7 +61,7 @@ class CanvasUpdater { this.TileLoadingQueues = []; this.id = id; this.canvas = canvases[id]; - this.canvasTileFolder = `${TILE_FOLDER}/${id}`; + this.canvasTileFolder = path.resolve(TILE_FOLDER, id); this.firstZoomtileWidth = this.canvas.size / TILE_SIZE / TILE_ZOOM_LEVEL; this.maxTiledZoom = getMaxTiledZoom(this.canvas.size); } @@ -194,7 +194,7 @@ socketEvents.on('chunkUpdate', (canvasId, chunk) => { * starting update loops for canvases */ export default function startAllCanvasLoops() { - if (!fs.existsSync(`${TILE_FOLDER}`)) fs.mkdirSync(`${TILE_FOLDER}`); + if (!fs.existsSync(TILE_FOLDER)) fs.mkdirSync(TILE_FOLDER); const ids = Object.keys(canvases); for (let i = 0; i < ids.length; i += 1) { const id = parseInt(ids[i], 10); diff --git a/src/data/redis/client.js b/src/data/redis/client.js index 74ed8bc..dabed11 100644 --- a/src/data/redis/client.js +++ b/src/data/redis/client.js @@ -12,7 +12,7 @@ import { REDIS_URL, SHARD_NAME } from '../../core/config'; const scripts = { placePxl: defineScript({ NUMBER_OF_KEYS: 9, - SCRIPT: fs.readFileSync(path.resolve('./workers/lua/placePixel.lua')), + SCRIPT: fs.readFileSync(path.resolve('workers', 'lua', 'placePixel.lua')), transformArguments(...args) { return args.map((a) => ((typeof a === 'string') ? a : a.toString())); }, @@ -20,7 +20,7 @@ const scripts = { }), allowedChat: defineScript({ NUMBER_OF_KEYS: 3, - SCRIPT: fs.readFileSync(path.resolve('./workers/lua/allowedChat.lua')), + SCRIPT: fs.readFileSync(path.resolve('workers', 'lua', 'allowedChat.lua')), transformArguments(...args) { return args.map((a) => ((typeof a === 'string') ? a : a.toString())); }, @@ -28,7 +28,7 @@ const scripts = { }), getUserRanks: defineScript({ NUMBER_OF_KEYS: 2, - SCRIPT: fs.readFileSync(path.resolve('./workers/lua/getUserRanks.lua')), + SCRIPT: fs.readFileSync(path.resolve('workers', 'lua', 'getUserRanks.lua')), transformArguments(...args) { return args.map((a) => ((typeof a === 'string') ? a : a.toString())); }, @@ -36,7 +36,7 @@ const scripts = { }), zmRankRev: defineScript({ NUMBER_OF_KEYS: 1, - SCRIPT: fs.readFileSync(path.resolve('./workers/lua/zmRankRev.lua')), + SCRIPT: fs.readFileSync(path.resolve('workers', 'lua', 'zmRankRev.lua')), transformArguments(key, uids) { return [ key,