From 321dfd66446326656dd325dcd40f75daf641e085 Mon Sep 17 00:00:00 2001 From: cbackas Date: Sat, 16 Nov 2024 14:46:01 -0600 Subject: [PATCH 1/2] update discordjs packages --- deno.lock | 77 ++++++++++++++++++++++++++++++++++++++++++++----- import_map.json | 2 +- 2 files changed, 70 insertions(+), 9 deletions(-) diff --git a/deno.lock b/deno.lock index 5ea0e20..af92fb2 100644 --- a/deno.lock +++ b/deno.lock @@ -7,6 +7,7 @@ "npm:axios@^1.4.0": "1.7.7", "npm:city-timezones@^1.2.1": "1.3.0", "npm:discord.js@14.11.0": "14.11.0", + "npm:discord.js@^14.16.0": "14.16.3", "npm:moment-timezone@~0.5.43": "0.5.46", "npm:node-schedule@^2.1.1": "2.1.1", "npm:parse-url@^8.1.0": "8.1.0", @@ -34,6 +35,9 @@ "@discordjs/collection@1.5.3": { "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==" }, + "@discordjs/collection@2.1.1": { + "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==" + }, "@discordjs/formatters@0.3.3": { "integrity": "sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==", "dependencies": [ @@ -49,14 +53,28 @@ "@discordjs/rest@1.7.1": { "integrity": "sha512-Ofa9UqT0U45G/eX86cURQnX7gzOJLG2oC28VhIk/G6IliYgQF7jFByBJEykPSHE4MxPhqCleYvmsrtfKh1nYmQ==", "dependencies": [ - "@discordjs/collection", + "@discordjs/collection@1.5.3", "@discordjs/util@0.3.1", "@sapphire/async-queue", "@sapphire/snowflake", "discord-api-types@0.37.103", "file-type", "tslib", - "undici" + "undici@5.28.4" + ] + }, + "@discordjs/rest@2.4.0": { + "integrity": "sha512-Xb2irDqNcq+O8F0/k/NaDp7+t091p+acb51iA4bCKfIn+WFWd6HrNvcsSbMMxIR9NjcMZS6NReTKygqiQN+ntw==", + "dependencies": [ + "@discordjs/collection@2.1.1", + "@discordjs/util@1.1.1", + "@sapphire/async-queue", + "@sapphire/snowflake", + "@vladfrangu/async_event_emitter", + "discord-api-types@0.37.97", + "magic-bytes.js", + "tslib", + "undici@6.19.8" ] }, "@discordjs/util@0.3.1": { @@ -68,8 +86,8 @@ "@discordjs/ws@0.8.3": { "integrity": "sha512-hcYtppanjHecbdNyCKQNH2I4RP9UrphDgmRgLYrATEQF1oo4sYSve7ZmGsBEXSzH72MO2tBPdWSThunbxUVk0g==", "dependencies": [ - "@discordjs/collection", - "@discordjs/rest", + "@discordjs/collection@1.5.3", + "@discordjs/rest@1.7.1", "@discordjs/util@0.3.1", "@sapphire/async-queue", "@types/ws", @@ -79,6 +97,20 @@ "ws" ] }, + "@discordjs/ws@1.1.1": { + "integrity": "sha512-PZ+vLpxGCRtmr2RMkqh8Zp+BenUaJqlS6xhgWKEZcgC/vfHLEzpHtKkB0sl3nZWpwtcKk6YWy+pU3okL2I97FA==", + "dependencies": [ + "@discordjs/collection@2.1.1", + "@discordjs/rest@2.4.0", + "@discordjs/util@1.1.1", + "@sapphire/async-queue", + "@types/ws", + "@vladfrangu/async_event_emitter", + "discord-api-types@0.37.83", + "tslib", + "ws" + ] + }, "@fastify/busboy@2.1.1": { "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==" }, @@ -184,12 +216,18 @@ "delayed-stream@1.0.0": { "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, + "discord-api-types@0.37.100": { + "integrity": "sha512-a8zvUI0GYYwDtScfRd/TtaNBDTXwP5DiDVX7K5OmE+DRT57gBqKnwtOC5Ol8z0mRW8KQfETIgiB8U0YZ9NXiCA==" + }, "discord-api-types@0.37.103": { "integrity": "sha512-r+qitxXKe2l6KFw5odPdZSSqdEou+7eNC7BfbZ7mny5Me/K06wCTeKUMVeH/YsI9+4QQudskeQ307kr/7ppQ1A==" }, "discord-api-types@0.37.61": { "integrity": "sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==" }, + "discord-api-types@0.37.83": { + "integrity": "sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==" + }, "discord-api-types@0.37.97": { "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==" }, @@ -197,21 +235,38 @@ "integrity": "sha512-CkueWYFQ28U38YPR8HgsBR/QT35oPpMbEsTNM30Fs8loBIhnA4s70AwQEoy6JvLcpWWJO7GY0y2BUzZmuBMepQ==", "dependencies": [ "@discordjs/builders", - "@discordjs/collection", + "@discordjs/collection@1.5.3", "@discordjs/formatters@0.3.3", - "@discordjs/rest", + "@discordjs/rest@1.7.1", "@discordjs/util@0.3.1", - "@discordjs/ws", + "@discordjs/ws@0.8.3", "@sapphire/snowflake", "@types/ws", "discord-api-types@0.37.103", "fast-deep-equal", "lodash.snakecase", "tslib", - "undici", + "undici@5.28.4", "ws" ] }, + "discord.js@14.16.3": { + "integrity": "sha512-EPCWE9OkA9DnFFNrO7Kl1WHHDYFXu3CNVFJg63bfU7hVtjZGyhShwZtSBImINQRWxWP2tgo2XI+QhdXx28r0aA==", + "dependencies": [ + "@discordjs/builders", + "@discordjs/collection@1.5.3", + "@discordjs/formatters@0.5.0", + "@discordjs/rest@2.4.0", + "@discordjs/util@1.1.1", + "@discordjs/ws@1.1.1", + "@sapphire/snowflake", + "discord-api-types@0.37.100", + "fast-deep-equal", + "lodash.snakecase", + "tslib", + "undici@6.19.8" + ] + }, "fast-deep-equal@3.1.3": { "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, @@ -255,6 +310,9 @@ "luxon@3.5.0": { "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==" }, + "magic-bytes.js@1.10.0": { + "integrity": "sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==" + }, "mime-db@1.52.0": { "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, @@ -367,6 +425,9 @@ "@fastify/busboy" ] }, + "undici@6.19.8": { + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==" + }, "util-deprecate@1.0.2": { "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, diff --git a/import_map.json b/import_map.json index 78d3e8a..8c0b017 100644 --- a/import_map.json +++ b/import_map.json @@ -4,7 +4,7 @@ "lib/": "./src/lib/", "interfaces/": "./src/interfaces/", "commands/": "./src/commands/", - "npm:discord.js": "npm:discord.js@14.11.0", + "npm:discord.js": "npm:discord.js@^14.16.0", "npm:@prisma/client": "npm:@prisma/client@5.0.0", "npm:prisma": "npm:prisma@^5.0.0", "npm:axios": "npm:axios@^1.4.0", From 1e351623124efefb65756c031dac564bfd66bd51 Mon Sep 17 00:00:00 2001 From: cbackas Date: Sat, 16 Nov 2024 14:47:15 -0600 Subject: [PATCH 2/2] fix compile issues after discordjs upgrade --- src/commands/link.ts | 7 +++++-- src/lib/episodeNotifier.ts | 2 +- src/lib/morningSummary.ts | 9 +++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/commands/link.ts b/src/commands/link.ts index b031d2b..152b51a 100644 --- a/src/commands/link.ts +++ b/src/commands/link.ts @@ -2,11 +2,13 @@ import { ChannelType, type ChatInputCommandInteraction, Collection, + type GuildTextChannelType, PermissionFlagsBits, SlashCommandBuilder, type SlashCommandStringOption, SlashCommandSubcommandBuilder, type TextBasedChannel, + type TextChannel, } from "npm:discord.js" import client from "lib/prisma.ts" import { type CommandV2 } from "interfaces/command.ts" @@ -91,11 +93,12 @@ export const command: CommandV2 = { channel = interaction.options.getChannel( "channel", true, - ) as TextBasedChannel + [ChannelType.GuildText], + ) } // error if the channel didnt get set for some reason - if (channel == null || channel.type === ChannelType.GuildStageVoice) { + if (channel == null || !channel.isSendable()) { return await interaction.editReply("Invalid channel") } diff --git a/src/lib/episodeNotifier.ts b/src/lib/episodeNotifier.ts index 7485baa..b882a54 100644 --- a/src/lib/episodeNotifier.ts +++ b/src/lib/episodeNotifier.ts @@ -16,7 +16,7 @@ import { addLeadingZeros, toRanges } from "lib/util.ts" export function isTextChannel( channel: Channel, -): channel is AnyThreadChannel | TextChannel { +): channel is AnyThreadChannel | TextChannel { return channel.isTextBased() && !channel.isDMBased() && ![ChannelType.GuildVoice].includes(channel.type) } diff --git a/src/lib/morningSummary.ts b/src/lib/morningSummary.ts index 21cea9d..1283072 100644 --- a/src/lib/morningSummary.ts +++ b/src/lib/morningSummary.ts @@ -19,11 +19,16 @@ export async function sendMorningSummary( }, }) - const embed: APIEmbed = await getUpcomingEpisodesEmbed(shows, 1) + const embed: APIEmbed = getUpcomingEpisodesEmbed(shows, 1) for (const dest of settings.morningSummaryDestinations) { const channel = await c.channels.fetch(dest.channelId) - if (channel == null || !isTextChannel(channel)) continue + if (channel == null || !isTextChannel(channel) || !channel.isSendable()) { + console.warn( + `Found channel ${dest.channelId} in the morning summary destinations but it is not a text channel or is not sendable`, + ) + continue + } await channel.send({ content: "",