/[sudobot]/trunk/src/commands/fun/JokeCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/fun/JokeCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/commands/joke.js revision 49 by rakin, Mon Jul 29 17:28:21 2024 UTC trunk/src/commands/fun/JokeCommand.ts revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1  const { default: axios } = require("axios");  /**
2  const { MessageEmbed } = require("discord.js");  * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20    import { CommandInteraction, Message, MessageEmbed } from 'discord.js';
21    import BaseCommand from '../../utils/structures/BaseCommand';
22    import DiscordClient from '../../client/Client';
23    import CommandOptions from '../../types/CommandOptions';
24    import InteractionOptions from '../../types/InteractionOptions';
25    import axios from 'axios';
26    
27    export default class JokeCommand extends BaseCommand {
28        supportsInteractions: boolean = true;
29        coolDown = 4000;
30    
31        constructor() {
32            super('joke', 'fun', []);
33        }
34    
35        async run(client: DiscordClient, msg: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
36            if (msg instanceof CommandInteraction)
37                await msg.deferReply();
38    
 module.exports = {  
     async handle(msg, cm) {  
39          axios.get("https://v2.jokeapi.dev/joke/Any?blacklistFlags=nsfw,religious,political,racist", {          axios.get("https://v2.jokeapi.dev/joke/Any?blacklistFlags=nsfw,religious,political,racist", {
40              headers: {              headers: {
41                  'Accept': 'application/json'                  'Accept': 'application/json'
# Line 10  module.exports = { Line 43  module.exports = {
43          })          })
44          .then(async res => {          .then(async res => {
45              if (res.data && !res.data.error) {              if (res.data && !res.data.error) {
46                  await msg.reply({                  await this.deferReply(msg, {
47                      embeds: [                      embeds: [
48                          new MessageEmbed()                          new MessageEmbed()
49                          .setColor('#007bff')                          .setColor('#007bff')
# Line 24  module.exports = { Line 57  module.exports = {
57                  });                  });
58              }              }
59              else {              else {
60                  await msg.reply({                  await this.deferReply(msg, {
61                      content: "Something went wrong with the API response. Please try again later."                      content: "Something went wrong with the API response. Please try again later."
62                  });                  });
63              }              }
64          })          })
65          .catch(async e => {          .catch(async e => {
66              console.log(e);              console.log(e);
67              await msg.reply({              await this.deferReply(msg, {
68                  content: "Something went wrong with the API. Please try again later."                  content: "Something went wrong with the API. Please try again later."
69              });              });
70          })          })
71      }      }
 };  
72    }

Legend:
Removed from v.49  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26