1
0
forked from noxious/server

Code improvements

This commit is contained in:
Dennis Postma 2024-06-23 01:53:06 +02:00
parent f5191aa81f
commit 08b6c5c598
4 changed files with 26 additions and 25 deletions

View File

@ -1,6 +1,7 @@
import { Server } from "socket.io";
import {TSocket} from "../../utilities/Types";
import fs from 'fs';
import path from "path";
interface IPayload {
}
@ -14,8 +15,7 @@ export default function (socket: TSocket, io: Server) {
socket.on('gm:tile:list', async (data: any, callback: (response: string[]) => void) => {
// get root path
const root_folder = process.cwd();
const folder = `${root_folder}/public/tiles`;
const folder = path.join(process.cwd(), 'public', 'tiles');
// list the files in the folder
let tiles: string[] = [];

View File

@ -2,6 +2,8 @@ import { Server } from "socket.io";
import {TSocket} from "../../utilities/Types";
import {writeFile} from "node:fs";
import {randomUUID} from "node:crypto";
import path from "path";
import fs from "fs";
interface IPayload {
@ -13,21 +15,25 @@ interface IPayload {
* @param io
*/
export default function (socket: TSocket, io: Server) {
socket.on('gm:tile:upload', async (data: any) => {
socket.on('gm:tile:upload', async (data: any, callback: (response: boolean) => void) => {
// get root path
const root_folder = process.cwd();
const public_folder = `${root_folder}/public`;
const public_folder = path.join(process.cwd(), 'public', 'tiles');
// check if folder exists or create it
if (!fs.existsSync(public_folder)) {
fs.mkdirSync(public_folder, { recursive: true });
}
for (const key in data) {
const filename = randomUUID();
const path = `${public_folder}/tiles/${filename}.png`;
const finalFilePath = path.join(public_folder, filename);
const tile = data[key];
// save the tile to the disk, for example
writeFile(path, tile, (err) => {
// pajeet INC
});
writeFile(finalFilePath, tile, (err) => {});
callback(true);
}
});
}

View File

@ -10,21 +10,16 @@ import config from "./Config";
import {loginAccountSchema, registerAccountSchema} from "./ZodTypes";
import path from "path";
function isValidAsset(assetName: string) {
const assetPath = path.join(__dirname, 'public', 'assets', assetName);
return assetPath.startsWith(path.join(__dirname, 'public', 'assets'));
}
async function addHttpRoutes(app: Application) {
app.get('/assets/:type/:file', (req: Request, res: Response) => {
const assetName = req.params.file;
async function addAuthRoutes(app: Application) {
app.get('/assets/:asset', (req: Request, res: Response) => {
const assetName = req.params.asset;
if (!isValidAsset(assetName)) {
return res.status(400).send('Invalid asset name');
}
// if (!isValidAsset(assetName)) {
// return res.status(400).send('Invalid asset name');
// }
const options = {
root: path.join(__dirname, 'public', 'assets'),
root: path.join(process.cwd(), 'public', req.params.type),
};
res.sendFile(assetName, options, (err) => {
@ -75,7 +70,7 @@ async function addAuthRoutes(app: Application) {
return res.status(400).json({ message: 'Failed to register user' });
});
console.log('[✅] Auth routes added');
console.log('[✅] Web routes added');
}
export { addAuthRoutes };
export { addHttpRoutes };

View File

@ -2,7 +2,7 @@ import fs from "fs";
import path from "path";
import express, {Application} from 'express';
import {createServer as httpServer} from 'http';
import {addAuthRoutes} from './app/utilities/Http';
import {addHttpRoutes} from './app/utilities/Http';
import cors from 'cors';
import {Server as SocketServer} from 'socket.io';
import {TSocket} from "./app/utilities/Types";
@ -54,7 +54,7 @@ export class Server
}
// Add http API routes
await addAuthRoutes(this.app);
await addHttpRoutes(this.app);
// Load user manager
await UserManager.boot();