Fix duplicate streamWatching, locale guild et console log/error
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m43s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m43s
This commit is contained in:
@@ -5,8 +5,8 @@ import type { GuildPlayer, Disco } from "@/types/schemas"
|
||||
import type { PlayerMetadata } from "@/types/player"
|
||||
import uptime from "./uptime"
|
||||
import dbGuild from "@/schemas/guild"
|
||||
import { t } from "./i18n"
|
||||
import { logConsole } from "./console"
|
||||
import { t, getGuildLocale } from "./i18n"
|
||||
import { logConsole, logConsoleError } from "./console"
|
||||
|
||||
const progressIntervals = new Map<string, NodeJS.Timeout>()
|
||||
|
||||
@@ -25,7 +25,7 @@ export function startProgressSaving(guildId: string, botId: string) {
|
||||
const interval = setInterval(async () => {
|
||||
try {
|
||||
const queue = useQueue(guildId)
|
||||
if (!queue || !queue.isPlaying() || !queue.currentTrack) { startProgressSaving(guildId, botId); return }
|
||||
if (!queue || !queue.isPlaying() || !queue.currentTrack) { await stopProgressSaving(guildId, botId); return }
|
||||
|
||||
const guildProfile = await dbGuild.findOne({ guildId })
|
||||
if (!guildProfile) { await stopProgressSaving(guildId, botId); return }
|
||||
@@ -50,8 +50,7 @@ export function startProgressSaving(guildId: string, botId: string) {
|
||||
guildProfile.markModified("guildPlayer")
|
||||
await guildProfile.save().catch(console.error)
|
||||
} catch (error) {
|
||||
logConsole('discord_player', 'progress_saving.error', { guildId, botId })
|
||||
console.error(error)
|
||||
logConsoleError('discord_player', 'progress_saving.error', { guildId, botId }, error as Error)
|
||||
await stopProgressSaving(guildId, botId)
|
||||
}
|
||||
}, 3000)
|
||||
@@ -127,12 +126,13 @@ export async function playerReplay(client: Client, dbData: GuildPlayer) {
|
||||
})
|
||||
|
||||
try { if (!queue.connection) await queue.connect(voiceChannel) }
|
||||
catch (error) { console.error(error) }
|
||||
catch (error) { logConsoleError('discord_player', 'replay.connect_error', {}, error as Error) }
|
||||
|
||||
if (!instance.replay.trackUrl) return
|
||||
|
||||
const guildLocale = await getGuildLocale(queue.guild.id)
|
||||
const result = await player.search(instance.replay.trackUrl, { requestedBy: client.user ?? undefined })
|
||||
if (!result.hasTracks()) await textChannel.send(t(queue.guild.preferredLocale, "player.no_track_found", { url: instance.replay.trackUrl }))
|
||||
if (!result.hasTracks()) await textChannel.send(t(guildLocale, "player.no_track_found", { url: instance.replay.trackUrl }))
|
||||
const track = result.tracks[0]
|
||||
|
||||
const entry = queue.tasksQueue.acquire()
|
||||
@@ -143,9 +143,9 @@ export async function playerReplay(client: Client, dbData: GuildPlayer) {
|
||||
if (!queue.isPlaying()) await queue.node.play()
|
||||
if (instance.replay.progress) await queue.node.seek(instance.replay.progress)
|
||||
startProgressSaving(queue.guild.id, botId)
|
||||
await textChannel.send(t(queue.guild.preferredLocale, "player.music_restarted"))
|
||||
await textChannel.send(t(guildLocale, "player.music_restarted"))
|
||||
}
|
||||
catch (error) { console.error(error) }
|
||||
catch (error) { logConsoleError('discord_player', 'replay.play_error', {}, error as Error) }
|
||||
finally { queue.tasksQueue.release() }
|
||||
}
|
||||
|
||||
@@ -164,7 +164,8 @@ export async function playerDisco(client: Client, guild: Guild, dbData: Disco) {
|
||||
return "clear"
|
||||
}
|
||||
|
||||
const { embed, components } = generatePlayerEmbed(guild, guild.preferredLocale)
|
||||
const guildLocale = await getGuildLocale(guild.id)
|
||||
const { embed, components } = generatePlayerEmbed(guild, guildLocale)
|
||||
if (components && embed.data.footer) embed.setFooter({ text: `Uptime: ${uptime(client.uptime)} \n ${embed.data.footer.text}` })
|
||||
else embed.setFooter({ text: `Uptime: ${uptime(client.uptime)}` })
|
||||
|
||||
@@ -183,7 +184,7 @@ export async function playerDisco(client: Client, guild: Guild, dbData: Disco) {
|
||||
}
|
||||
else return await channel.send({ embeds: [embed] })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
logConsoleError('discord_player', 'disco.general_error', {}, error as Error)
|
||||
return "clear"
|
||||
}
|
||||
}
|
||||
@@ -199,7 +200,7 @@ export async function playerEdit(interaction: ButtonInteraction) {
|
||||
await interaction.update({ components })
|
||||
}
|
||||
|
||||
export function generatePlayerEmbed(guild: Guild, locale: Locale) {
|
||||
export function generatePlayerEmbed(guild: Guild, locale: Locale | string) {
|
||||
const embed = new EmbedBuilder().setColor("#ffc370")
|
||||
|
||||
const queue = useQueue(guild.id)
|
||||
|
||||
Reference in New Issue
Block a user