Node Js lire tout les fichiers mp3 se contenant dans un dossier.

Fermé
R0M1 - 10 juil. 2020 à 15:22
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 - 27 juil. 2020 à 17:40
Bonjour,

J'ai fait un bot discord musique, mais je ne sais pas comment faire pour que le bot lise tout les fichiers d'un dossier et que lorsqu'il a finit de tous les lires, il recommence depuis le debut.

Merci en avance.
A voir également:

5 réponses

Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
27 juil. 2020 à 17:40
Bonjour,

Ton problème est-il résolu ? Si oui, marque le en résolu et poste ton code final. Sinon, quels problèmes y a-t-il encore ?

Bien à toi,
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
12 juil. 2020 à 15:36
Bonjour,

Tout d'abord vérifie que tu possèdes bien les paquets suivants (sinon installe-les
npm install LENOMDUPAQUET
) :
- fs
- path

Ensuite, niveau code ça devrait ressembler à ceci :

const { readdirSync } = require('fs');
const { join } = require('path');
//Ici ↓ on va récupérer tous les fichiers dans le dossier nommé "LENOMDUDOSSIER" qui terminent par ".mp3"
const fichiersMP3 = readdirSync(join(__dirname, 'LENOMDUDOSSIER')).filter(file => file.endsWith('.mp3'));
const path = require('path');
const serverQueue = message.client.queue.get(message.guild.id);

//Maintenant on va ajouter tous les fichiers dans ta playlist

for (const file of fichiersMP3) {
	const musique = require(join(__dirname, 'LENOMDUDOSSIER', `${file}`));
	serverQueue.songs.push(musique);
	console.log(`✅ **${musique}** a bien été ajouté à la playlist !`);
}


Bon, après c'est un peu théorique... Disons que je ne sais pas trop comment est fait ton bot. Est-ce qu'il est fait avec des modules ? Décris un peu plus la structure du bot et je pourrai mieux t'aider ????. Après, si tu es à l'aise avec le node.js, adapte ce code, cherche su Google et si ça ne fonctionne pas, je creuserai un peu plus pour t'aider.

Bonne continuation dans ce projet !

Bien à toi,
Je suis débutant avec NodeJS donc je comprend rien a ton code mais voici le mien :

const Discord = require('discord.js');
const client = new Discord.Client();

client.music = require("discord.js-musicbot-addon");

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
client.user.setActivity('$help', { type: 'WATCHING' });
});

client.on("ready", () => {
const channel = client.channels.cache.get("ID_DU_SALON_VOCAL");
if (!channel) return console.error("The channel does not exist!");
channel.join().then(connection => {
// Yay, it worked!
console.log("Successfully connected.");
connection.play('audio/musique.mp3', { volume: 1 });
console.log(`Musique en cours !`);


}).catch(e => {

// Oh no, it errored! Let's log it to console :)
console.error(e);
});
});

client.on('message', msg => {
if (msg.content === '&info') {
msg.reply("Bot Type : Music");
msg.reply("Developped by : R0M1");
}
if (msg.content === '&help') {
msg.reply("Allez dans le salon vocal musique et profiter de la musique !");
}
});

client.login('TOKEN');
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
13 juil. 2020 à 17:16
D'accord... Le bot est assez simple. Pour ajouter plusieurs fichiers dans une playlist, il va falloir créer un système de playlist à ton bot.

Essaye peut-être comme ceci :

 const { channel } = client.guilds.cache.get('ID de la GUILD').channels.cache.get('ID du Channel Vocal');
	  const permissions = channel.permissionsFor(client.user);
		if (!permissions.has('CONNECT'))  client.guilds.cache.get('ID de la GUILD').channels.cache.get('ID du channel').send('⛔ Impossible de se connecter au channel vocal.');
		if (!permissions.has('SPEAK'))  client.guilds.cache.get('ID de la GUILD').channels.cache.get('ID du channel').send('⛔ Impossible de jouer de la musique dans ce channel vocal.');

    
    		const serverQueue = client.queue.get(client.guilds.cache.get('ID de la GUILD'));

		const queueConstruct = {
			voiceChannel: channel,
			connection: null,
			songs: ["audio/musique.mp3", "audio/musique2.mp3", "audio/musique3.mp3"],
			volume: 1,
			playing: true
		};
		client.queue.set('ID de la GUILD', queueConstruct);
		
		const play = async song => {
			const queue = client.queue.get('ID de la GUILD');
			if (!song) {
				queue.voiceChannel.leave();
				client.queue.delete('ID de la GUILD');
        console.log("❌ La playlist est terminée.")
				;
			}

			const dispatcher = queue.connection.play(queue.songs[0])
				.on('finish', () => {
          queue.songs.push(queue.songs[0])
					queue.songs.shift();
					play(queue.songs[0]);
          				})
				.on('error', error => console.error(error));
			dispatcher.setVolumeLogarithmic(queue.volume / 5);
			console.log("✅ Musique démarrée !")
		};

		try {
			const connection = channel.join();
			queueConstruct.connection = connection;
			play(queueConstruct.songs[0]);
		} catch (error) {
			console.error(`Il y a eu une erreur : ${error}`);
			client.queue.delete('ID de la GUILD');
			channel.leave();
		}


Je ne sais pas trop si ça fonctionne... C'est un peu un code théorique mais je n'ai pas beaucoup de temps en ce moment ????. Dis mois si ça marche.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour, ID de la Guild, c'est l'id du salon ou du serveur ?
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
14 juil. 2020 à 14:26
C'est l'ID du serveur.
0