From 6b728afc298e9ae6327af887d889862d1d965bc3 Mon Sep 17 00:00:00 2001 From: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com> Date: Mon, 1 Nov 2021 01:27:11 +0000 Subject: [PATCH] image url formatter --- src/helpers/guilds/guild_banner_url.ts | 1 - src/helpers/guilds/guild_icon_url.ts | 1 - src/helpers/guilds/guild_splash_url.ts | 1 - src/helpers/members/avatar_url.ts | 1 - src/transformers/member.ts | 6 +-- src/util/utils.ts | 1 - tests/helpers/members/avatar.ts | 5 +++ tests/mod.ts | 56 +++++++++++++++++++++++++- tests/util/formatUrls.ts | 12 ++++++ 9 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 tests/helpers/members/avatar.ts create mode 100644 tests/util/formatUrls.ts diff --git a/src/helpers/guilds/guild_banner_url.ts b/src/helpers/guilds/guild_banner_url.ts index 89bd6eeb5..9d0b9a6e1 100644 --- a/src/helpers/guilds/guild_banner_url.ts +++ b/src/helpers/guilds/guild_banner_url.ts @@ -10,7 +10,6 @@ export function guildBannerURL( banner?: string | bigint; size?: DiscordImageSize; format?: DiscordImageFormat; - animated?: boolean; } ) { return options.banner diff --git a/src/helpers/guilds/guild_icon_url.ts b/src/helpers/guilds/guild_icon_url.ts index 9ce382900..1cfd52bcd 100644 --- a/src/helpers/guilds/guild_icon_url.ts +++ b/src/helpers/guilds/guild_icon_url.ts @@ -10,7 +10,6 @@ export function guildIconURL( icon?: string | bigint; size?: DiscordImageSize; format?: DiscordImageFormat; - animated?: boolean; } ) { return options.icon diff --git a/src/helpers/guilds/guild_splash_url.ts b/src/helpers/guilds/guild_splash_url.ts index e5f1df6bd..21b6d20cc 100644 --- a/src/helpers/guilds/guild_splash_url.ts +++ b/src/helpers/guilds/guild_splash_url.ts @@ -10,7 +10,6 @@ export function guildSplashURL( splash?: string | bigint; size?: DiscordImageSize; format?: DiscordImageFormat; - animated?: boolean; } ) { return options.splash diff --git a/src/helpers/members/avatar_url.ts b/src/helpers/members/avatar_url.ts index 0c114b90b..033530046 100644 --- a/src/helpers/members/avatar_url.ts +++ b/src/helpers/members/avatar_url.ts @@ -11,7 +11,6 @@ export function avatarURL( avatar?: string | bigint; size?: DiscordImageSize; format?: DiscordImageFormat; - animated?: boolean; } ) { return options.avatar diff --git a/src/transformers/member.ts b/src/transformers/member.ts index 88b1b3d9d..6ad17e644 100644 --- a/src/transformers/member.ts +++ b/src/transformers/member.ts @@ -1,5 +1,5 @@ import type { Bot } from "../bot.ts"; -import type { GuildMember, GuildMemberWithUser } from "../types/members/guild_member.ts"; +import type { GuildMember } from "../types/members/guild_member.ts"; import type { DiscordPremiumTypes } from "../types/users/premium_types.ts"; import type { User } from "../types/users/user.ts"; import type { DiscordUserFlags } from "../types/users/user_flags.ts"; @@ -9,7 +9,7 @@ export interface DiscordenoUser { id: bigint; username: string; discriminator: number; - avatar: bigint | null; + avatar?: bigint; bot?: boolean; system?: boolean; locale?: string; @@ -26,7 +26,7 @@ export function transformUser(bot: Bot, payload: SnakeCasedPropertiesDeep) id: bot.transformers.snowflake(payload.id || ""), username: payload.username, discriminator: Number(payload.discriminator), - avatar: payload.avatar ? bot.utils.iconHashToBigInt(payload.avatar) : null, + avatar: payload.avatar ? bot.utils.iconHashToBigInt(payload.avatar) : undefined, bot: payload.bot, system: payload.system, locale: payload.locale, diff --git a/src/util/utils.ts b/src/util/utils.ts index 99f7fa197..1794fb524 100644 --- a/src/util/utils.ts +++ b/src/util/utils.ts @@ -10,7 +10,6 @@ import type { MessageComponents } from "../types/messages/components/message_com import type { DiscordImageFormat } from "../types/misc/image_format.ts"; import type { DiscordImageSize } from "../types/misc/image_size.ts"; import { CONTEXT_MENU_COMMANDS_NAME_REGEX, SLASH_COMMANDS_NAME_REGEX } from "./constants.ts"; -import { validateLength } from "./validate_length.ts"; import { isSelectMenu } from "../helpers/type_guards/is_select_menu.ts"; import { ApplicationCommandTypes } from "../types/interactions/commands/application_command_types.ts"; import { Bot } from "../bot.ts"; diff --git a/tests/helpers/members/avatar.ts b/tests/helpers/members/avatar.ts new file mode 100644 index 000000000..5cffd7af6 --- /dev/null +++ b/tests/helpers/members/avatar.ts @@ -0,0 +1,5 @@ +import { Bot } from "../../../src/bot.ts"; + +export async function avatarURL(bot: Bot, t: Deno.TestContext) { + +} \ No newline at end of file diff --git a/tests/mod.ts b/tests/mod.ts index 3c15b9e5b..22d8117dd 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -59,8 +59,6 @@ Deno.test("[Bot] - Starting Tests", async (t) => { await startBot(bot); - // bot.rest.debug = console.log; - // Delay the execution to allow READY events to be processed await delayUntil(10000, () => Boolean(startedAt)); console.log("Bot online"); @@ -90,6 +88,48 @@ Deno.test("[Bot] - Starting Tests", async (t) => { throw new Error(`The guild seemed to be created but it was not cached. ${guild.id.toString()}`); } + await Promise.all([ + t.step({ + name: "[guild] format a guild's icon url", + fn: async (t) => { + assertEquals(bot.helpers.guildIconURL(guild.id, { icon: guild.icon }), undefined); + assertEquals( + bot.helpers.guildIconURL(785384884197392384n, { + icon: 3837424427068676005442449262648382018748n, + }), + "https://cdn.discordapp.com/icons/785384884197392384/46f50fb412eab14ec455d5cf777154bc.jpg?size=128" + ); + }, + ...sanitizeMode, + }), + t.step({ + name: "[guild] format a guild's banner url", + fn: async (t) => { + assertEquals(bot.helpers.guildBannerURL(guild.id, { banner: guild.banner }), undefined); + assertEquals( + bot.helpers.guildBannerURL(613425648685547541n, { + banner: 3919584870146358272366452115178209474142n, + }), + "https://cdn.discordapp.com/banners/613425648685547541/84c4964c115c128fb9100952c3b4f65e.jpg?size=128" + ); + }, + ...sanitizeMode, + }), + t.step({ + name: "[guild] format a guild's splash url", + fn: async (t) => { + assertEquals(bot.helpers.guildSplashURL(guild.id, { splash: guild.splash }), undefined); + assertEquals( + bot.helpers.guildSplashURL(785384884197392384n, { + splash: 3837424427068676005442449262648382018748n, + }), + "https://cdn.discordapp.com/splashes/785384884197392384/46f50fb412eab14ec455d5cf777154bc.jpg?size=128" + ); + }, + ...sanitizeMode, + }), + ]); + // CHANNEL TESTS GROUPED await t.step("Channel related tests", async (t) => { const channel = await bot.helpers.createChannel(guild.id, { name: "Discordeno-test" }); @@ -418,6 +458,18 @@ Deno.test("[Bot] - Starting Tests", async (t) => { }, ...sanitizeMode, }), + t.step({ + name: "[member] format a members avatar url", + fn: async (t) => { + assertEquals( + bot.helpers.avatarURL(130136895395987456n, 8840, { + avatar: 4055337350987360625717955448021200177333n, + }), + "https://cdn.discordapp.com/avatars/130136895395987456/eae5905ad2d18d7c8deca20478b088b5.jpg?size=128" + ); + }, + ...sanitizeMode, + }), ]); }); diff --git a/tests/util/formatUrls.ts b/tests/util/formatUrls.ts new file mode 100644 index 000000000..d0ebe8c7d --- /dev/null +++ b/tests/util/formatUrls.ts @@ -0,0 +1,12 @@ +import { formatImageURL } from "../../src/util/utils.ts"; +import { assertEquals } from "../deps.ts"; + +Deno.test({ + name: "[utils] format image url", + fn() { + assertEquals(formatImageURL(`https://skillz.com`), "https://skillz.com.jpg?size=128"); + assertEquals(formatImageURL(`https://skillz.com`, 1024), "https://skillz.com.jpg?size=1024"); + assertEquals(formatImageURL(`https://skillz.com`, 1024, "gif"), "https://skillz.com.gif?size=1024"); + assertEquals(formatImageURL(`https://skillz.com`, undefined, "gif"), "https://skillz.com.jpg?size=128"); + }, +});