diff --git a/commands/message/fun/garfield.js b/commands/message/fun/garfield.js new file mode 100644 index 0000000..7bd3f63 --- /dev/null +++ b/commands/message/fun/garfield.js @@ -0,0 +1,38 @@ + +const { garfield } = require('../../../labscore/api'); +const { createEmbed } = require('../../../labscore/utils/embed'); +const { timestamp } = require('../../../labscore/utils/markdown'); +const { editOrReply } = require('../../../labscore/utils/message') + +const { Permissions } = require("detritus-client/lib/constants"); + +const FUNNY_CAT_EMOJI = [ + "<:gm:878401411556196352>", + "<:gn:878401411392606258>", + "<:funnycat:899419360748261396>" +] + +module.exports = { + name: 'garfield', + aliases: ['garf'], + metadata: { + description: 'Returns a random garfield comic strip.', + description_short: 'Random garfield comic', + examples: ['garf'], + category: 'fun', + usage: `garfield` + }, + permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS], + run: async (context) => { + context.triggerTyping(); + + const garf = (await garfield()).response.body + + return editOrReply(context, createEmbed("default", context, { + description: `${FUNNY_CAT_EMOJI[Math.floor(Math.random() * FUNNY_CAT_EMOJI.length)]} Garfield Comic Strip for ${timestamp(new Date(garf.date), "D")}`, + image: { + url: garf.comic + } + })) + } +}; \ No newline at end of file diff --git a/labscore/api/endpoints.js b/labscore/api/endpoints.js index 11f4266..ce5cf81 100644 --- a/labscore/api/endpoints.js +++ b/labscore/api/endpoints.js @@ -51,6 +51,7 @@ const Api = Object.freeze({ TTS_TIKTOK: '/tts/tiktok', UTILS_EMOJIPEDIA: '/utils/emojipedia', + UTILS_GARFIELD: '/utils/garfield', UTILS_INFERKIT: '/utils/inferkit', UTILS_MAPKIT: '/utils/mapkit', UTILS_PERSPECTIVE: '/utils/perspective', diff --git a/labscore/api/index.js b/labscore/api/index.js index 1abd54e..0542d25 100644 --- a/labscore/api/index.js +++ b/labscore/api/index.js @@ -296,6 +296,10 @@ module.exports.emojipedia = async function(context, emoji){ }) } +module.exports.garfield = async function(context, emoji){ + return await request(Api.UTILS_GARFIELD, "GET", {}, {}) +} + module.exports.inferkit = async function(context, input){ return await request(Api.UTILS_INFERKIT, "GET", {}, { input: input