108 lines
3.8 KiB
JavaScript
108 lines
3.8 KiB
JavaScript
import fs from "fs";
|
|
import * as action from "../util/discordAction.js";
|
|
import request from "request"; // yes i know this is deprecated i will fix it later (no i won't)
|
|
|
|
function download(url, filename) {
|
|
request
|
|
.get(url)
|
|
.on("error", console.log)
|
|
.pipe(
|
|
fs.createWriteStream(
|
|
`resources/soundboard/${filename
|
|
.toLowerCase()
|
|
.replaceAll(" ", "_")
|
|
.replaceAll("-", "_")}`
|
|
)
|
|
);
|
|
return true;
|
|
}
|
|
|
|
export default {
|
|
name: "addsound",
|
|
description: "uploads a sound to the soundboard files",
|
|
arguments: "none",
|
|
execute(message, args) {
|
|
if (message.attachments.first()) {
|
|
const filename = message.attachments.first().name;
|
|
if (
|
|
filename.endsWith(".mp3") ||
|
|
filename.endsWith(".wav") ||
|
|
filename.endsWith(".ogg") ||
|
|
filename.endsWith(".webm") ||
|
|
filename.endsWith(".m4a")
|
|
) {
|
|
const filenameNoExtension = filename.split(".")[0];
|
|
const files = fs.readdirSync("resources/soundboard");
|
|
if (filenameNoExtension) {
|
|
if (!(files.includes(filename) || filenameNoExtension === "ls")) {
|
|
let possibleFilenames = {
|
|
regular: filenameNoExtension,
|
|
spaced: filenameNoExtension.replaceAll(" ", "_"),
|
|
spacedmp3: filenameNoExtension.replaceAll(" ", "_") + ".mp3",
|
|
mp3: filenameNoExtension + ".mp3",
|
|
spacedogg: filenameNoExtension.replaceAll(" ", "_") + ".ogg",
|
|
ogg: filenameNoExtension + ".ogg",
|
|
spacedwav: filenameNoExtension.replaceAll(" ", "_") + ".wav",
|
|
wav: filenameNoExtension + ".wav",
|
|
spacedwebm: filenameNoExtension.replaceAll(" ", "_") + ".webm",
|
|
webm: filenameNoExtension + ".webm",
|
|
};
|
|
let invalid = false;
|
|
for (const i = 0; i < possibleFilenames.length; i++) {
|
|
if (files.includes(possibleFilenames[i])) {
|
|
invalid = true;
|
|
}
|
|
}
|
|
if (!invalid) {
|
|
const success = download(
|
|
message.attachments.first().url,
|
|
filename
|
|
);
|
|
if (success) {
|
|
action.reply(
|
|
message,
|
|
`downloaded your file to \`resources/soundboard/${filename
|
|
.toLowerCase()
|
|
.replaceAll(" ", "_")
|
|
.replaceAll(
|
|
"-",
|
|
"_"
|
|
)}\`, if this name is different than the one you put, that's normal. all files are lowercased and "fixed."`
|
|
);
|
|
} else {
|
|
action.reply(
|
|
message,
|
|
"an unknown error occurred while attempting to download your file. see the console for details (id put it here but its probably too long for discord)"
|
|
);
|
|
}
|
|
} else {
|
|
action.reply(
|
|
message,
|
|
`invalid file name! the file name either already exists, or you named it ls. don't name it ls. detected file name: \`${filename}\``
|
|
);
|
|
}
|
|
} else {
|
|
action.reply(
|
|
message,
|
|
`invalid file name! the file name either already exists, or you named it ls. don't name it ls. detected file name: \`${filename}\``
|
|
);
|
|
}
|
|
} else {
|
|
action.reply(
|
|
message,
|
|
"error has occurred; filename could not be split"
|
|
);
|
|
}
|
|
} else {
|
|
action.reply(
|
|
message,
|
|
`invalid file extention; only \`mp3\`, \`wav\`, \`ogg\`, \`webm\`, and \`m4a\` files are supported. \`${
|
|
filename.split(".")[1]
|
|
}\` is not.`
|
|
);
|
|
}
|
|
} else {
|
|
action.reply(message, "no file detected");
|
|
}
|
|
},
|
|
};
|