diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index dc051578d..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/commands/clip.js b/commands/clip.js index b5dda986d..15f602b9d 100644 --- a/commands/clip.js +++ b/commands/clip.js @@ -1,10 +1,8 @@ -const { PREFIX, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "clip", - description: i18n.__('clip.description'), + description: i18n.__("clip.description"), async execute(message, args) { const { channel } = message.member.voice; const queue = message.client.queue.get(message.guild.id); @@ -33,7 +31,7 @@ module.exports = { message.client.queue.delete(message.guild.id); channel.leave(); }) - .on("error", err => { + .on("error", (err) => { message.client.queue.delete(message.guild.id); channel.leave(); console.error(err); diff --git a/commands/clips.js b/commands/clips.js index 0afa84571..789446ee1 100644 --- a/commands/clips.js +++ b/commands/clips.js @@ -1,19 +1,16 @@ -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); +const i18n = require("../util/i18n"); const fs = require("fs"); -i18n.setLocale(LOCALE); - module.exports = { name: "clips", - description: i18n.__('clips.description'), + description: i18n.__("clips.description"), execute(message) { - fs.readdir("./sounds", function(err, files) { + fs.readdir("./sounds", function (err, files) { if (err) return console.log("Unable to read directory: " + err); let clips = []; - files.forEach(function(file) { + files.forEach(function (file) { clips.push(file.substring(0, file.length - 4)); }); diff --git a/commands/help.js b/commands/help.js index 52dcaaca7..b20a66841 100644 --- a/commands/help.js +++ b/commands/help.js @@ -1,8 +1,5 @@ const { MessageEmbed } = require("discord.js"); -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "help", diff --git a/commands/invite.js b/commands/invite.js index a9c7dd176..06b8bed24 100644 --- a/commands/invite.js +++ b/commands/invite.js @@ -1,11 +1,8 @@ -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "invite", - description: i18n.__('invite.description'), + description: i18n.__("invite.description"), execute(message) { return message.member .send( diff --git a/commands/loop.js b/commands/loop.js index 57dd9f92d..6f83752c4 100644 --- a/commands/loop.js +++ b/commands/loop.js @@ -1,7 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "loop", diff --git a/commands/lyrics.js b/commands/lyrics.js index 7a8a68094..5ac460a56 100644 --- a/commands/lyrics.js +++ b/commands/lyrics.js @@ -1,9 +1,6 @@ const { MessageEmbed } = require("discord.js"); const lyricsFinder = require("lyrics-finder"); -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "lyrics", diff --git a/commands/move.js b/commands/move.js index e057ba5cc..c7fff0961 100644 --- a/commands/move.js +++ b/commands/move.js @@ -1,8 +1,6 @@ const move = require("array-move"); -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "move", diff --git a/commands/nowplaying.js b/commands/nowplaying.js index 200a3149a..5b449b3ed 100644 --- a/commands/nowplaying.js +++ b/commands/nowplaying.js @@ -1,10 +1,6 @@ const { splitBar } = require("string-progressbar"); const { MessageEmbed } = require("discord.js"); - -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "np", diff --git a/commands/pause.js b/commands/pause.js index e82e8ce80..67c8d34d1 100644 --- a/commands/pause.js +++ b/commands/pause.js @@ -1,7 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "pause", diff --git a/commands/ping.js b/commands/ping.js index 17273a7b7..263589cc9 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -1,7 +1,4 @@ -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "ping", diff --git a/commands/play.js b/commands/play.js index 9700d59af..97b14c768 100644 --- a/commands/play.js +++ b/commands/play.js @@ -1,13 +1,11 @@ +const i18n = require("../util/i18n"); const { play } = require("../include/play"); const ytdl = require("ytdl-core"); const YouTubeAPI = require("simple-youtube-api"); const scdl = require("soundcloud-downloader").default; const https = require("https"); -const { YOUTUBE_API_KEY, SOUNDCLOUD_CLIENT_ID, LOCALE, DEFAULT_VOLUME } = require("../util/EvobotUtil"); +const { YOUTUBE_API_KEY, SOUNDCLOUD_CLIENT_ID, DEFAULT_VOLUME } = require("../util/Util"); const youtube = new YouTubeAPI(YOUTUBE_API_KEY); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); module.exports = { name: "play", diff --git a/commands/playlist.js b/commands/playlist.js index a26c0d150..420946f01 100644 --- a/commands/playlist.js +++ b/commands/playlist.js @@ -1,19 +1,10 @@ +const i18n = require("../util/i18n"); const { MessageEmbed } = require("discord.js"); const { play } = require("../include/play"); const YouTubeAPI = require("simple-youtube-api"); const scdl = require("soundcloud-downloader").default; - -const { - YOUTUBE_API_KEY, - SOUNDCLOUD_CLIENT_ID, - MAX_PLAYLIST_SIZE, - DEFAULT_VOLUME, - LOCALE -} = require("../util/EvobotUtil"); +const { YOUTUBE_API_KEY, SOUNDCLOUD_CLIENT_ID, MAX_PLAYLIST_SIZE, DEFAULT_VOLUME } = require("../util/Util"); const youtube = new YouTubeAPI(YOUTUBE_API_KEY); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); module.exports = { name: "playlist", diff --git a/commands/pruning.js b/commands/pruning.js index 1052aa53d..1afc83c77 100644 --- a/commands/pruning.js +++ b/commands/pruning.js @@ -1,8 +1,5 @@ const fs = require("fs"); -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); let config; @@ -14,7 +11,7 @@ try { module.exports = { name: "pruning", - description: i18n.__('pruning.description'), + description: i18n.__("pruning.description"), execute(message) { if (!config) return; config.PRUNING = !config.PRUNING; diff --git a/commands/queue.js b/commands/queue.js index bf30f5d05..f94cdf017 100644 --- a/commands/queue.js +++ b/commands/queue.js @@ -1,8 +1,5 @@ const { MessageEmbed } = require("discord.js"); -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "queue", diff --git a/commands/remove.js b/commands/remove.js index 09ea2840d..ec8b939a0 100644 --- a/commands/remove.js +++ b/commands/remove.js @@ -1,6 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); const pattern = /^[0-9]{1,2}(\s*,\s*[0-9]{1,2})*$/; diff --git a/commands/resume.js b/commands/resume.js index e4b56c7c8..b4b1f0910 100644 --- a/commands/resume.js +++ b/commands/resume.js @@ -1,12 +1,10 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "resume", aliases: ["r"], - description: i18n.__('resume.description'), + description: i18n.__("resume.description"), execute(message) { const queue = message.client.queue.get(message.guild.id); if (!queue) return message.reply(i18n.__("resume.errorNotQueue")).catch(console.error); diff --git a/commands/search.js b/commands/search.js index f85f6003e..9a7220ca8 100644 --- a/commands/search.js +++ b/commands/search.js @@ -1,10 +1,8 @@ const { MessageEmbed } = require("discord.js"); const YouTubeAPI = require("simple-youtube-api"); -const { YOUTUBE_API_KEY, LOCALE } = require("../util/EvobotUtil"); +const { YOUTUBE_API_KEY } = require("../util/Util"); const youtube = new YouTubeAPI(YOUTUBE_API_KEY); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "search", diff --git a/commands/shuffle.js b/commands/shuffle.js index 49a50bdd1..a694c750a 100644 --- a/commands/shuffle.js +++ b/commands/shuffle.js @@ -1,11 +1,9 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "shuffle", - description: i18n.__('shuffle.description'), + description: i18n.__("shuffle.description"), execute(message) { const queue = message.client.queue.get(message.guild.id); if (!queue) return message.channel.send(i18n.__("shuffle.errorNotQueue")).catch(console.error); @@ -18,6 +16,6 @@ module.exports = { } queue.songs = songs; message.client.queue.set(message.guild.id, queue); - queue.textChannel.send(i18n.__mf('shuffle.result', {author: message.author})).catch(console.error); + queue.textChannel.send(i18n.__mf("shuffle.result", { author: message.author })).catch(console.error); } }; diff --git a/commands/skip.js b/commands/skip.js index ae3fd2b30..d8cc269a7 100644 --- a/commands/skip.js +++ b/commands/skip.js @@ -1,7 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "skip", diff --git a/commands/skipto.js b/commands/skipto.js index 12d7e9574..b2f4c1b1a 100644 --- a/commands/skipto.js +++ b/commands/skipto.js @@ -1,7 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "skipto", diff --git a/commands/stop.js b/commands/stop.js index 197ba5025..4392146cd 100644 --- a/commands/stop.js +++ b/commands/stop.js @@ -1,11 +1,9 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "stop", - description: i18n.__('stop.description'), + description: i18n.__("stop.description"), execute(message) { const queue = message.client.queue.get(message.guild.id); diff --git a/commands/uptime.js b/commands/uptime.js index 77353276d..437c30274 100644 --- a/commands/uptime.js +++ b/commands/uptime.js @@ -1,12 +1,9 @@ -const { LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const i18n = require("../util/i18n"); module.exports = { name: "uptime", aliases: ["u"], - description: i18n.__('uptime.description'), + description: i18n.__("uptime.description"), execute(message) { let seconds = Math.floor(message.client.uptime / 1000); let minutes = Math.floor(seconds / 60); @@ -18,7 +15,7 @@ module.exports = { hours %= 24; return message - .reply(i18n.__mf('uptime.result', {days: days, hours: hours, minutes: minutes, seconds: seconds})) + .reply(i18n.__mf("uptime.result", { days: days, hours: hours, minutes: minutes, seconds: seconds })) .catch(console.error); } }; diff --git a/commands/volume.js b/commands/volume.js index 9bc04b6d3..235fab020 100644 --- a/commands/volume.js +++ b/commands/volume.js @@ -1,7 +1,5 @@ -const { canModifyQueue, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); - -i18n.setLocale(LOCALE); +const { canModifyQueue } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { name: "volume", @@ -14,7 +12,8 @@ module.exports = { if (!canModifyQueue(message.member)) return message.reply(i18n.__("volume.errorNotChannel")).catch(console.error); - if (!args[0]) return message.reply(i18n.__mf("volume.currentVolume", { volume: queue.volume })).catch(console.error); + if (!args[0]) + return message.reply(i18n.__mf("volume.currentVolume", { volume: queue.volume })).catch(console.error); if (isNaN(args[0])) return message.reply(i18n.__("volume.errorNotNumber")).catch(console.error); if (Number(args[0]) > 100 || Number(args[0]) < 0) return message.reply(i18n.__("volume.errorNotValid")).catch(console.error); diff --git a/include/play.js b/include/play.js index 54fbf551f..18458cb12 100644 --- a/include/play.js +++ b/include/play.js @@ -1,12 +1,11 @@ const ytdl = require("ytdl-core-discord"); const scdl = require("soundcloud-downloader").default; -const { canModifyQueue, STAY_TIME, LOCALE } = require("../util/EvobotUtil"); -const i18n = require("i18n"); -i18n.setLocale(LOCALE); +const { canModifyQueue, STAY_TIME } = require("../util/Util"); +const i18n = require("../util/i18n"); module.exports = { async play(song, message) { - const { SOUNDCLOUD_CLIENT_ID } = require("../util/EvobotUtil"); + const { SOUNDCLOUD_CLIENT_ID } = require("../util/Util"); let config; diff --git a/index.js b/index.js index 3bc303465..c0d758710 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,8 @@ const { Client, Collection } = require("discord.js"); const { readdirSync } = require("fs"); const { join } = require("path"); -const { TOKEN, PREFIX } = require("./util/EvobotUtil"); -const i18n = require("i18n"); +const { TOKEN, PREFIX } = require("./util/Util"); +const i18n = require("./util/i18n"); const client = new Client({ disableMentions: "everyone", @@ -19,32 +19,6 @@ client.queue = new Map(); const cooldowns = new Collection(); const escapeRegex = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -i18n.configure({ - locales: ["ar", "de", "en", "es", "fr", "it", "ko", "nl", "pl", "pt_br", "ru", "sv", "th", "tr", "vi", "zh_cn", "zh_sg", "zh_tw"], - directory: join(__dirname, "locales"), - defaultLocale: "en", - retryInDefaultLocale: true, - objectNotation: true, - register: global, - - logWarnFn: function (msg) { - console.log("warn", msg); - }, - - logErrorFn: function (msg) { - console.log("error", msg); - }, - - missingKeyFn: function (locale, value) { - return value; - }, - - mustacheConfig: { - tags: ["{{", "}}"], - disable: false - } -}); - /** * Client Events */ diff --git a/util/EvobotUtil.js b/util/Util.js similarity index 100% rename from util/EvobotUtil.js rename to util/Util.js diff --git a/util/i18n.js b/util/i18n.js new file mode 100644 index 000000000..c1d77b269 --- /dev/null +++ b/util/i18n.js @@ -0,0 +1,52 @@ +const { LOCALE } = require("./Util"); +const { join } = require("path"); +const i18n = require("i18n"); + +i18n.configure({ + locales: [ + "ar", + "de", + "en", + "es", + "fr", + "it", + "ko", + "nl", + "pl", + "pt_br", + "ru", + "sv", + "th", + "tr", + "vi", + "zh_cn", + "zh_sg", + "zh_tw" + ], + directory: join(__dirname, "..", "locales"), + defaultLocale: "en", + retryInDefaultLocale: true, + objectNotation: true, + register: global, + + logWarnFn: function (msg) { + console.log(msg); + }, + + logErrorFn: function (msg) { + console.log(msg); + }, + + missingKeyFn: function (locale, value) { + return value; + }, + + mustacheConfig: { + tags: ["{{", "}}"], + disable: false + } +}); + +i18n.setLocale(LOCALE); + +module.exports = i18n;