diff --git a/config.example.json b/config.example.json index 33feeef..720a723 100644 --- a/config.example.json +++ b/config.example.json @@ -3,5 +3,6 @@ "token": "MTU1fdsYNTRb2RT.FcD2l1ig.jIuKqwertyd432RROhF5A", "prefix": "$>", "codePrefix": "$>", + "maxFileSize": 10240, "myriad": "8081" } diff --git a/src/listeners/messageInvalid.js b/src/listeners/messageInvalid.js index d441cfa..af1dc60 100644 --- a/src/listeners/messageInvalid.js +++ b/src/listeners/messageInvalid.js @@ -16,7 +16,7 @@ class MessageInvalidListener extends Listener { return null; } - const parse = this.parseMessage(message); + const parse = await this.parseMessage(message); if (!parse) { return null; } @@ -62,14 +62,22 @@ class MessageInvalidListener extends Listener { return message.util.send(output); } - parseMessage(message) { + async parseMessage(message) { const prefix = this.client.config.codePrefix; const starts = message.content.slice(0, prefix.length).toLowerCase().startsWith(prefix.toLowerCase()); if (!starts) { return null; } - const regex = /^\s*(`{1,3})(.+?)[ \n]([^]+)\1\s*$/; + let file = null; + let regex = ""; + + if (file = message.attachments.first()) { + regex = /^\s*(`{1})(.+)(`{1})\s*$/; + } else { + regex = /^\s*(`{1,3})(.+?)[ \n]([^]+)\1\s*$/; + } + const match = message.content.slice(prefix.length).match(regex); if (!match) { return null; @@ -80,7 +88,18 @@ class MessageInvalidListener extends Listener { return null; } - const code = match[3].trim(); + let code = ""; + + if (file) { + if (file.size > this.client.config.maxFileSize) { + return null; + } + code = await fetch(file.url) + .then(res => res.text()); + } else { + code = match[3].trim(); + } + return { language, code }; } }