diff --git a/src/commands.ts b/src/commands.ts index 0b0b4b0..34fd29b 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -343,16 +343,17 @@ const commands: Record = { return; } - // Check if the channel is already being tracked in the guild - if ( + const trackedChannels = await checkIfGuildIsTrackingChannelAlready( platformUserId, guildId, - ) - ) { + ); + + // Check if the channel is already being tracked in the guild + if (trackedChannels.length) { await interaction.reply({ flags: MessageFlags.Ephemeral, - content: "This channel is already being tracked!", + content: `This channel is already being tracked in ${trackedChannels.map((channel, index) => `${index > 0 && index === trackedChannels.length - 1 ? "and " : ""}<#${channel.guild_channel_id}>`).join(", ")}!`, }); return; @@ -412,16 +413,17 @@ const commands: Record = { return; } - // Check if the channel is already being tracked in the guild - if ( - await twitchCheckIfGuildIsTrackingChannelAlready( - streamerId, + const trackedChannels = + await checkIfGuildIsTrackingChannelAlready( + platformUserId, guildId, - ) - ) { + ); + + // Check if the channel is already being tracked in the guild + if (trackedChannels.length) { await interaction.reply({ flags: MessageFlags.Ephemeral, - content: "This streamer is already being tracked!", + content: `This channel is already being tracked in ${trackedChannels.map((channel, index) => `${index > 0 && index === trackedChannels.length - 1 ? "and " : ""}<#${channel.guild_channel_id}>`).join(", ")}!`, }); return; diff --git a/src/utils/database.ts b/src/utils/database.ts index d2c46be..30f385a 100644 --- a/src/utils/database.ts +++ b/src/utils/database.ts @@ -1,8 +1,8 @@ -import type { dbDiscordTable, dbYouTube } from "../types/database"; +import type { dbDiscordTable } from "../types/database"; import { Pool } from "pg"; -import { dbCredentials, env } from "../config"; +import { dbCredentials } from "../config"; // import path from "path"; // import { Database } from "bun:sqlite"; @@ -30,14 +30,14 @@ export const pool: Pool = new Pool({ export async function checkIfGuildIsTrackingChannelAlready( channelId: string, guild_id: string, -) { +): Promise { const query = `SELECT * FROM discord WHERE platform_user_id = ? AND guild_id = ?`; try { const statement = db.prepare(query); const result = statement.all(channelId, guild_id); - return result.length > 0; + return result; } catch (err) { console.error( "Error checking if guild is tracking channel already:", @@ -150,26 +150,6 @@ export async function twitchCheckIfChannelIsAlreadyTracked(channelId: string) { } } -export async function twitchCheckIfGuildIsTrackingChannelAlready( - channelId: string, - guild_id: string, -) { - const query = `SELECT * FROM discord WHERE platform_user_id = ? AND guild_id = ?`; - - try { - const statement = db.prepare(query); - const result = statement.all(channelId, guild_id); - - return result.length > 0; - } catch (err) { - console.error( - "Error checking if guild is tracking Twitch channel already:", - err, - ); - throw err; - } -} - export async function twitchAddNewChannelToTrack( channelId: string, isLive: boolean,