const tenor = require('tenorjs').client({ 'Key': process.env.tenorAPIKey, // https://tenor.com/developer/keyregistration 'Filter': 'off', // "off", "low", "medium", "high", not case sensitive 'Locale': 'en_US', 'MediaFilter': 'minimal', 'DateFormat': 'D/MM/YYYY - H:mm:ss A', }); const { SlashCommandBuilder } = require('@discordjs/builders'); const { Collection } = require('discord.js'); const fn = require('../functions.js'); const strings = require('../strings.json'); const { GifData } = require('../CustomModules/NodBot.js'); const customEmbeds = require('../CustomModules/Embeds.js'); const Indexer = require('../CustomModules/Indexer.js'); const Embeds = require('../CustomModules/Embeds.js'); const { emoji } = strings; module.exports = { data: new SlashCommandBuilder() .setName('view') .setDescription('View content saved in Nodbot\'s database.') // GIFs .addSubcommand(subcommand => subcommand .setName('gifs') .setDescription('Display all saved GIFs.') ) // Joints .addSubcommand(subcommand => subcommand .setName('joints') .setDescription('Display all saved joints.') ) // Pastas .addSubcommand(subcommand => subcommand .setName('pastas') .setDescription('Display all saved copypastas.') ) // Requests .addSubcommand(subcommand => subcommand .setName('requests') .setDescription('Display all saved requests.') ), async execute(interaction) { await interaction.deferReply({ ephemeral: true }); try { // Code Here... const subcommand = interaction.options.getSubcommand(); const iStorage = interaction.client.iStorage.get(interaction.id); const commandData = { author: interaction.user.username, command: `/${interaction.commandName} ${subcommand}` }; switch (subcommand) { // GIFs case "gifs": if (!interaction.client.gifs) { interaction.editReply('For some reason I don\'t have access to the collection of gifs. Sorry about that!'); return; } let indexedGifs = Indexer(interaction.client.gifs, 0); indexedGifs.gifsString = new String(); iStorage.page = 0; for (const gif of indexedGifs.thisPage) { indexedGifs.gifsString += `[${gif.name}.gif](${gif.url})\n`; } interaction.editReply(fn.embeds.gifs(commandData, indexedGifs)); break; // Joints case "joints": if (!interaction.client.joints) { interaction.editReply('For some reason I don\'t have access to the collection of joints. Sorry about that!'); return; } let indexedJoints = Indexer(interaction.client.joints, 0); indexedJoints.jointsString = new String(); iStorage.page = 0; for (const joint of indexedJoints.thisPage) { indexedJoints.jointsString += `${joint.content}\n`; } interaction.editReply(fn.embeds.joints(commandData, indexedJoints)); break; // Pastas case "pastas": if (!interaction.client.pastas) { interaction.editReply({ content: 'For some reason I don\'t have access to the collection of copypastas. Sorry about that!', ephemeral: true }); return; } let indexedPastas = Indexer(interaction.client.pastas, 0); indexedPastas.pastasString = new String(); iStorage.page = 0; for (const pasta of indexedPastas.thisPage) { indexedPastas.pastasString += `${pasta.name}.pasta\n`; } interaction.editReply(fn.embeds.pastas(commandData, indexedPastas)); break; case "requests": if (!interaction.client.requests) { interaction.editReply('For some reason I don\'t have access to the collection of requests. Sorry about that!'); return; } let indexedRequests = Indexer(interaction.client.requests, 0); indexedRequests.requestsString = new String(); iStorage.page = 0; for (const request of indexedRequests.thisPage) { indexedRequests.requestsString += `[${request.id}]: ${request.request} (submitted by ${request.author})\n`; } interaction.editReply(fn.embeds.requests(commandData, indexedRequests)); break; // Default default: break; } } catch (err) { const errorId = fn.generateErrorId(); console.error(`${errorId}: err`); await interaction.editReply(`Sorry, an error has occured. Error ID: ${errorId}`); } } };