diff --git a/src/app/events/AssetsDownload.ts b/src/app/events/AssetsDownload.ts deleted file mode 100644 index f7a3ba3..0000000 --- a/src/app/events/AssetsDownload.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Server } from "socket.io"; -import {TSocket, TAsset} from "../utilities/Types"; -import fs from "fs"; -import path from "path"; - -export default function (socket: TSocket, io: Server) { - socket.on('assets:download', async (data: any, callback: (response: TAsset[]) => void) => { - console.log('assets:download requested'); - - let assets: TAsset[] = []; - const tiles = listTiles(); - - tiles.forEach(tile => { - assets.push({key: 'tile_' + tile, value: '/tiles/' + tile, group: 'tiles', type: 'link'}); - }); - - console.log('assets:download response', assets) - - // return the list of assets to the socket - callback(assets); - }); -} - -function listTiles(): string[] { - // get root path - const folder = path.join(process.cwd(), 'public', 'tiles'); - - // list the files in the folder - let tiles: string[] = []; - - try { - const files = fs.readdirSync(folder); - - files.forEach(file => { - tiles.push(file); - }); - } catch (err) { - console.log(err); - } - - console.log(tiles); - - return tiles; -} \ No newline at end of file diff --git a/src/app/events/gm/GmTileUpload.ts b/src/app/events/gm/GmTileUpload.ts index 5f286b7..cebf972 100644 --- a/src/app/events/gm/GmTileUpload.ts +++ b/src/app/events/gm/GmTileUpload.ts @@ -32,7 +32,7 @@ export default function (socket: TSocket, io: Server) { for (const key in data) { // the files in the folder are named 0.png, 1.png, 2.png etc... check the last file name and add 1 const files = fs.readdirSync(public_folder); - const lastFile = files.reduce((a, b) => a > b ? a : b); + const lastFile = files.reduce((a, b) => a > b ? a : b, '0.png'); const lastFileName = lastFile?.split('.')[0]; const filename = `${parseInt(lastFileName ?? '0') + 1}.png`; const finalFilePath = path.join(public_folder, filename); diff --git a/src/app/utilities/Http.ts b/src/app/utilities/Http.ts index 2a3a118..2866c8e 100644 --- a/src/app/utilities/Http.ts +++ b/src/app/utilities/Http.ts @@ -1,7 +1,6 @@ /** * Resources: * https://stackoverflow.com/questions/76131891/what-is-the-best-method-for-socket-io-authentication - * */ import {Application, Request, Response} from 'express'; import UserService from '../services/UserService'; @@ -9,8 +8,18 @@ import jwt from "jsonwebtoken"; import config from "./Config"; import {loginAccountSchema, registerAccountSchema} from "./ZodTypes"; import path from "path"; +import { TAsset } from './Types' +import fs from 'fs' async function addHttpRoutes(app: Application) { + app.get('/assets', (req: Request, res: Response) => { + let assets: TAsset[] = []; + const tiles = listTiles(); + tiles.forEach(tile => { + assets.push({key: 'tile_' + tile, value: '/tiles/' + tile, group: 'tiles', type: 'link'}); + }); + res.json(assets); + }); app.get('/assets/:type/:file', (req: Request, res: Response) => { const assetName = req.params.file; @@ -73,4 +82,26 @@ async function addHttpRoutes(app: Application) { console.log('[✅] Web routes added'); } -export { addHttpRoutes }; \ No newline at end of file +export { addHttpRoutes }; + +function listTiles(): string[] { + // get root path + const folder = path.join(process.cwd(), 'public', 'tiles'); + + // list the files in the folder + let tiles: string[] = []; + + try { + const files = fs.readdirSync(folder); + + files.forEach(file => { + tiles.push(file); + }); + } catch (err) { + console.log(err); + } + + console.log(tiles); + + return tiles; +} \ No newline at end of file