Haha-Yes/commands/fun/reddit.js

43 lines
1.7 KiB
JavaScript
Raw Normal View History

import { SlashCommandBuilder } from 'discord.js';
import { EmbedBuilder } from 'discord.js';
2022-06-17 02:14:14 +02:00
import fetch from 'node-fetch';
2022-06-17 01:25:35 +02:00
export default {
data: new SlashCommandBuilder()
.setName('reddit')
.setDescription('Send random images from the subreddit you choose')
.addStringOption(option =>
option.setName('subreddit')
.setDescription('The subreddit you wish to see')
.setRequired(true)),
category: 'fun',
async execute(interaction, args) {
2022-06-17 01:25:35 +02:00
await interaction.deferReply({ ephemeral: false });
const subreddit = args[0];
fetch('https://www.reddit.com/r/' + subreddit + '.json?limit=100').then((response) => {
2022-06-17 01:25:35 +02:00
return response.json();
}).then((response) => {
if (response.error == 404) {
return interaction.editReply('Not a valid subreddit');
}
if (response.data.dist == 0) {
return interaction.editReply('Not a valid subreddit');
}
const i = Math.floor((Math.random() * response.data.children.length));
if (response.data.children[i].data.over_18 == true && !interaction.channel.nsfw) {
return interaction.editReply('No nsfw');
}
const redditEmbed = new EmbedBuilder()
2022-06-17 01:25:35 +02:00
.setColor(interaction.member ? interaction.member.displayHexColor : 'NAVY')
.setTitle(response.data.children[i].data.title)
.setDescription(response.data.children[i].data.selftext)
.setURL('https://reddit.com' + response.data.children[i].data.permalink)
2022-06-17 12:30:20 +02:00
.setFooter({ text: `/r/${response.data.children[i].data.subreddit} | ⬆ ${response.data.children[i].data.ups} 🗨 ${response.data.children[i].data.num_comments}` });
2022-06-17 01:25:35 +02:00
2022-07-03 01:00:17 +02:00
interaction.followUp({ embeds: [redditEmbed] });
2022-06-17 01:25:35 +02:00
interaction.followUp(response.data.children[i].data.url);
});
},
};