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,
1
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,
0
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');
0
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.
0

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 ?
0
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