blob: 8a219b748cc8567047200d85aa3d4d4f14627272 [file] [log] [blame]
pineafan63fc5e22022-08-04 22:04:10 +01001import * as fs from "fs";
2import * as crypto from "crypto";
3import client from "../client.js";
4import * as path from "path";
5import {fileURLToPath} from "url";
pineafan73a7c4a2022-07-24 10:38:04 +01006const __filename = fileURLToPath(import.meta.url);
7const __dirname = path.dirname(__filename);
pineafan32767212022-03-14 21:27:39 +00008
9export default function generateFileName(ending: string): string {
pineafan63fc5e22022-08-04 22:04:10 +010010 let fileName = crypto.randomBytes(35).toString("hex");
11 fileName = fileName.replace(/([a-zA-Z0-9]{8})/g, "$1-");
pineafan32767212022-03-14 21:27:39 +000012 if (fs.existsSync(`./${fileName}`)) {
13 fileName = generateFileName(ending);
14 }
pineafan73a7c4a2022-07-24 10:38:04 +010015 client.database.eventScheduler.schedule("deleteFile", new Date().getTime() + (60 * 1000), {fileName: `${fileName}.${ending}`});
pineafan63fc5e22022-08-04 22:04:10 +010016 return path.join(__dirname, fileName + "." + ending);
pineafan73a7c4a2022-07-24 10:38:04 +010017}