forked from noxious/server
Code improvements
This commit is contained in:
parent
f5191aa81f
commit
08b6c5c598
@ -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[] = [];
|
||||
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
@ -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 };
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user