fix: rozpierdalał sie przy dodawaniu do kolejki kiedy coś grało
This commit is contained in:
1
history/06-04-2026.json
Normal file
1
history/06-04-2026.json
Normal file
@@ -0,0 +1 @@
|
||||
{"timestamp":1775507776136,"url":"https://www.youtube.com/watch?v=xTemcPZw8Eo","user":"kapitan.papryk"}
|
||||
1
history/26-02-2026.json
Normal file
1
history/26-02-2026.json
Normal file
@@ -0,0 +1 @@
|
||||
{"timestamp":1772133865649,"url":"https://www.youtube.com/watch?v=TWiOB4lUZrQ","user":"kapitan.papryk"}
|
||||
@@ -32,10 +32,10 @@ async function execute(interaction: ChatInputCommandInteraction<CacheType>) {
|
||||
}
|
||||
|
||||
await interaction.editReply(msg_downloading(url));
|
||||
await forceRequestSong(interaction, url)
|
||||
|
||||
const msg = getPlayMsg(url)
|
||||
await interaction.editReply(msg_play());
|
||||
forceRequestSong(url, { user: interaction.user.username }).then(() => {
|
||||
// const msg = getPlayMsg(url)
|
||||
interaction.editReply(msg_play());
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
await interaction.editReply('Coś poszło nie tak :/');
|
||||
|
||||
@@ -36,10 +36,9 @@ async function execute(interaction: ChatInputCommandInteraction<CacheType>) {
|
||||
}
|
||||
|
||||
await interaction.editReply(msg_downloading(url));
|
||||
await requestSong(interaction, url)
|
||||
|
||||
const msg = getPlayMsg(url)
|
||||
await interaction.editReply(msg_play());
|
||||
requestSong(url, { user: interaction.user.username }).then(() => {
|
||||
interaction.editReply(msg_play());
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
await interaction.editReply('Coś poszło nie tak :/');
|
||||
|
||||
4
src/global.d.ts
vendored
4
src/global.d.ts
vendored
@@ -16,7 +16,7 @@ type Queue = {
|
||||
}
|
||||
|
||||
type HistoryObject = {
|
||||
interaction: ChatInputCommandInteraction<CacheType>
|
||||
url: string
|
||||
user?: number | string,
|
||||
url?: string,
|
||||
}
|
||||
|
||||
|
||||
@@ -18,24 +18,25 @@ export function toggleLoop(): AudioFile | null {
|
||||
}
|
||||
|
||||
export async function requestSong(
|
||||
interaction: ChatInputCommandInteraction<CacheType>,
|
||||
url: string,
|
||||
user?: any
|
||||
data: Partial<HistoryObject>
|
||||
) {
|
||||
|
||||
const path = await getAudioFile(url)
|
||||
getAudioFile(url).then((path) => {
|
||||
queue.songList.push({ path, url })
|
||||
add_to_history({ interaction, url })
|
||||
add_to_history({ url, user: data.user })
|
||||
updatePlayer()
|
||||
})
|
||||
}
|
||||
|
||||
export async function forceRequestSong(
|
||||
interaction: ChatInputCommandInteraction<CacheType>,
|
||||
url: string) {
|
||||
url: string,
|
||||
data: Partial<HistoryObject>
|
||||
) {
|
||||
|
||||
const path = await getAudioFile(url)
|
||||
const audio = { path, url }
|
||||
queue.songList.push(audio)
|
||||
add_to_history({ url, user: data.user })
|
||||
queue.current = audio
|
||||
playSong(player, path);
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ export async function connectToChannel(channel: VoiceBasedChannel) {
|
||||
}
|
||||
|
||||
export async function playSong(player: AudioPlayer, songUrl: string) {
|
||||
try {
|
||||
/**
|
||||
* Here we are creating an audio resource using a sample song freely available online
|
||||
* (see https://www.soundhelix.com/audio-examples)
|
||||
@@ -84,4 +85,7 @@ export async function playSong(player: AudioPlayer, songUrl: string) {
|
||||
* state within 5 seconds, otherwise it will reject with an error.
|
||||
*/
|
||||
return entersState(player, AudioPlayerStatus.Playing, 5_000);
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ import path from "node:path";
|
||||
import fs from "node:fs";
|
||||
import { HISTORY_DIR_PATH } from "../main";
|
||||
|
||||
export async function add_to_history(history: HistoryObject) {
|
||||
export async function add_to_history(data: HistoryObject) {
|
||||
try {
|
||||
const today = new Date();
|
||||
|
||||
const day = String(today.getDate()).padStart(2, '0');
|
||||
@@ -16,18 +17,14 @@ export async function add_to_history(history: HistoryObject) {
|
||||
fs.mkdirSync(HISTORY_DIR_PATH);
|
||||
}
|
||||
|
||||
let data = [];
|
||||
let history = {
|
||||
timestamp: today.getTime(),
|
||||
url: data.url,
|
||||
user: data.user,
|
||||
};
|
||||
|
||||
try {
|
||||
const content = fs.readFileSync(file_path, 'utf8');
|
||||
data = JSON.parse(content);
|
||||
} catch (err) {
|
||||
data = [];
|
||||
fs.writeFileSync(file_path, JSON.stringify(history));
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
|
||||
data.push(history)
|
||||
|
||||
fs.writeFileSync(file_path, JSON.stringify(data, (key, value) => {
|
||||
return typeof value === "bigint" ? value.toString() : value
|
||||
}, 2));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user