diff --git a/commands/interaction/slash/utils/emoji.js b/commands/interaction/slash/utils/emoji.js index 59dbebb..f2106c0 100644 --- a/commands/interaction/slash/utils/emoji.js +++ b/commands/interaction/slash/utils/emoji.js @@ -4,7 +4,7 @@ const { createEmbed } = require("#utils/embed"); const { acknowledge } = require("#utils/interactions"); const { icon, pill, iconPill, highlight, timestamp } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); -const { STATICS } = require("#utils/statics"); +const { STATICS, STATIC_ASSETS } = require("#utils/statics"); const { ingest } = require("#logging"); @@ -146,7 +146,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' '), image: { - url: res.data.platforms[DEFAULT_PLATFORM].images[0].src + url: res.data.platforms[DEFAULT_PLATFORM].images[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, @@ -204,7 +204,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' '), image: { - url: emojiAsset[0].src + url: emojiAsset[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, @@ -255,7 +255,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' '), image: { - url: res.data.platforms[DEFAULT_PLATFORM].images[0].src + url: res.data.platforms[DEFAULT_PLATFORM].images[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, diff --git a/commands/interaction/slash/utils/emojiinfo.js b/commands/interaction/slash/utils/emojiinfo.js index ba101c1..05ca38b 100644 --- a/commands/interaction/slash/utils/emojiinfo.js +++ b/commands/interaction/slash/utils/emojiinfo.js @@ -3,7 +3,7 @@ const { emojipedia } = require("#api"); const { createEmbed } = require("#utils/embed"); const { pill } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); -const { STATICS } = require("#utils/statics"); +const { STATICS, STATIC_ASSETS } = require("#utils/statics"); const { Components } = require("detritus-client/lib/utils"); const { InteractionCallbackTypes, MessageComponentButtonStyles, ApplicationCommandOptionTypes } = require("detritus-client/lib/constants"); @@ -33,7 +33,7 @@ function toCodePoint(unicodeSurrogates, sep) { module.exports = { - name: 'emoji-info', + name: 'emojipedia', description: 'Shows detailed information about an emoji.', contexts: [ 0, @@ -46,7 +46,7 @@ module.exports = { options: [ { name: 'emoji', - description: 'Emoji to enlarge. Use two built-in emoji to mix them.', + description: 'Emoji to look up.', type: ApplicationCommandOptionTypes.TEXT, required: true }, @@ -99,7 +99,7 @@ module.exports = { }, description: newView.data.codes.map((c)=>pill(c)).join(' ') + "\n\n" + newView.data.metadata.description, image: { - url: newView.data.platforms["twitter"].images[0].src + url: newView.data.platforms["twitter"].images[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, @@ -139,7 +139,14 @@ module.exports = { // Use the high-res emojipedia icon, if available let ico = `https://abs.twimg.com/emoji/v2/72x72/${toCodePoint(emoji[0])}.png` - if(!res.data.platforms["twitter"]) ico = Object.values(res.data.platforms)[0].images[0].src + if(!res.data.platforms["twitter"] && Object.values(res.data.platforms)[0]) ico = Object.values(res.data.platforms)[0].images[0].src + + let iPreviewImage; + if(!res.data.platforms["twitter"] && Object.values(res.data.platforms)[0]){ + iPreviewImage = res.data.platforms[Object.keys(res.data.platforms)[0]].images[0].src + } else if(res.data.platforms["twitter"]){ + iPreviewImage = res.data.platforms["twitter"].images[0].src + } currentView = createEmbed("default", context, { author: { @@ -149,7 +156,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' ') + "\n\n" + res.data.metadata.description, image: { - url: res.data.platforms["twitter"].images[0].src + url: iPreviewImage || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, diff --git a/commands/message/utils/emoji.js b/commands/message/utils/emoji.js index ec43eb3..015a3d3 100644 --- a/commands/message/utils/emoji.js +++ b/commands/message/utils/emoji.js @@ -5,7 +5,7 @@ const { ingest } = require("#logging"); const { createEmbed } = require("#utils/embed"); const { icon, pill, iconPill, highlight, timestamp, smallIconPill } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); -const { STATICS } = require("#utils/statics"); +const { STATICS, STATIC_ASSETS } = require("#utils/statics"); const { Utils } = require("detritus-client"); const { Components, Snowflake } = require("detritus-client/lib/utils"); @@ -226,7 +226,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' '), image: { - url: emojiAsset[0].src + url: emojiAsset[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, @@ -286,7 +286,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' '), image: { - url: res.data.platforms[DEFAULT_PLATFORM].images[0].src + url: res.data.platforms[DEFAULT_PLATFORM].images[0].src || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, diff --git a/commands/message/utils/emojiinfo.js b/commands/message/utils/emojiinfo.js index 0dd8540..3c61471 100644 --- a/commands/message/utils/emojiinfo.js +++ b/commands/message/utils/emojiinfo.js @@ -3,7 +3,7 @@ const { emojipedia } = require("#api"); const { createEmbed } = require("#utils/embed"); const { pill, smallIconPill } = require("#utils/markdown"); const { editOrReply } = require("#utils/message"); -const { STATICS } = require("#utils/statics"); +const { STATICS, STATIC_ASSETS } = require("#utils/statics"); // TODO: Turn this into a general purpose permissions constant const { Permissions, InteractionCallbackTypes, MessageComponentButtonStyles } = require("detritus-client/lib/constants"); @@ -33,8 +33,8 @@ function toCodePoint(unicodeSurrogates, sep) { module.exports = { label: "emoji", - name: "emojiinfo", - aliases: ['ei'], + name: "emojipedia", + aliases: ["emojiinfo", "ei"], metadata: { description: `${smallIconPill("reply", "Supports Replies")}\n\nDisplays more detailed information about emoji. Only supports unicode emoji.`, description_short: 'Detailed information about an emoji.', @@ -78,8 +78,8 @@ module.exports = { let newView = await emojipedia(context, ctx.data.customId) newView = newView.response.body - ico = newView.data.platforms["twitter"].images[0].src - if(!newView.data.platforms["twitter"]) ico = Object.values(newView.data.platforms)[0].images[0].src + ico = `https://abs.twimg.com/emoji/v2/72x72/${toCodePoint(emoji[0])}.png` + if(!newView.data.platforms["twitter"] && Object.values(newView.data.platforms)[0]) ico = Object.values(newView.data.platforms)[0].images[0].src let previewImage; if(!newView.data.platforms["twitter"]){ @@ -96,7 +96,7 @@ module.exports = { }, description: newView.data.codes.map((c)=>pill(c)).join(' ') + "\n\n" + newView.data.metadata.description, image: { - url: previewImage + url: previewImage || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, @@ -140,12 +140,12 @@ module.exports = { // Use the high-res emojipedia icon, if available let ico = `https://abs.twimg.com/emoji/v2/72x72/${toCodePoint(emoji[0])}.png` - if(!res.data.platforms["twitter"]) ico = Object.values(res.data.platforms)[0].images[0].src + if(!res.data.platforms["twitter"] && Object.values(res.data.platforms)[0]) ico = Object.values(res.data.platforms)[0].images[0].src let iPreviewImage; - if(!res.data.platforms["twitter"]){ + if(!res.data.platforms["twitter"] && Object.values(res.data.platforms)[0]){ iPreviewImage = res.data.platforms[Object.keys(res.data.platforms)[0]].images[0].src - } else { + } else if(res.data.platforms["twitter"]){ iPreviewImage = res.data.platforms["twitter"].images[0].src } @@ -157,7 +157,7 @@ module.exports = { }, description: res.data.codes.map((c)=>pill(c)).join(' ') + "\n\n" + res.data.metadata.description, image: { - url: iPreviewImage + url: iPreviewImage || STATIC_ASSETS.emoji_placeholder }, footer: { iconUrl: STATICS.emojipedia, diff --git a/labscore/utils/statics.js b/labscore/utils/statics.js index 8ea1652..805fa00 100644 --- a/labscore/utils/statics.js +++ b/labscore/utils/statics.js @@ -16,6 +16,10 @@ const Statics = Object.freeze({ file: "misc/embed-spacer-botinvite.png", revision: 0 }, + emoji_placeholder: { + file: "misc/emoji-placeholder.png", + revision: 0 + }, }, brands: { anthropic: { @@ -236,5 +240,6 @@ module.exports.STATIC_ICONS = Object.freeze({ module.exports.STATIC_ASSETS = Object.freeze({ chat_loading: staticAsset(Statics.assets.chat_loading), image_loading: staticAsset(Statics.assets.image_loading), - embed_invite_spacer: staticAsset(Statics.assets.embed_invite_spacer) + embed_invite_spacer: staticAsset(Statics.assets.embed_invite_spacer), + emoji_placeholder: staticAsset(Statics.assets.emoji_placeholder) }) \ No newline at end of file