Recherche avancée

Médias (1)

Mot : - Tags -/biographie

Autres articles (77)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (7508)

  • doc/ffmpeg : document -dn option

    21 février 2018, par Lou Logan
    doc/ffmpeg : document -dn option
    

    Also mention -map in the -vn, -an, and -sn options.

    Fixes #7036.

    Signed-off-by : Lou Logan <lou@lrcd.com>

    • [DH] doc/ffmpeg.texi
  • Anomalie #2678 (Nouveau) : Affichage pas clair dans ajout de document via la médiathèque

    26 avril 2012, par denis -

    Sur un eeepc, quand depuis la page d’article, on clique sur ajouter un document, puis la médiathèque, puis parcourir, la fenêtre de sélection se met plus ou moins ou milieu de la page (le reste devient un fond blanc qui laisse légèrement apercevoir l’espace privé) Jusque là pas de soucis. Mais si on (...)

  • How to make a basic youtube music bot work with searching titles instead of the URL

    21 janvier 2021, par Brandon

    Hello so i've followed this tutorial and added this code to my current bot to make it have a music bot function. Im wondering how to make the following code work with the youtube search function, for example right now I have to do !play URL but I would also like to be able to do !play name of song then the bot will search and play the most matched song.

    &#xA;&#xA;

    I am new to javascript but I know I shouldn't be looking for handouts, but some help would be appreciated.

    &#xA;&#xA;

    const Discord = require("discord.js");&#xA;const { prefix, token } = require("./config.json");&#xA;const ytdl = require("ytdl-core");&#xA;&#xA;const client = new Discord.Client();&#xA;&#xA;const queue = new Map();&#xA;&#xA;client.once("ready", () => {&#xA;  console.log("Ready!");&#xA;});&#xA;&#xA;client.once("reconnecting", () => {&#xA;  console.log("Reconnecting!");&#xA;});&#xA;&#xA;client.once("disconnect", () => {&#xA;  console.log("Disconnect!");&#xA;});&#xA;&#xA;client.on("message", async message => {&#xA;  if (message.author.bot) return;&#xA;  if (!message.content.startsWith(prefix)) return;&#xA;&#xA;  const serverQueue = queue.get(message.guild.id);&#xA;&#xA;  if (message.content.startsWith(`${prefix}play`)) {&#xA;    execute(message, serverQueue);&#xA;    return;&#xA;  } else if (message.content.startsWith(`${prefix}skip`)) {&#xA;    skip(message, serverQueue);&#xA;    return;&#xA;  } else if (message.content.startsWith(`${prefix}stop`)) {&#xA;    stop(message, serverQueue);&#xA;    return;&#xA;  } else {&#xA;    message.channel.send("You need to enter a valid command!");&#xA;  }&#xA;});&#xA;&#xA;async function execute(message, serverQueue) {&#xA;  const args = message.content.split(" ");&#xA;&#xA;  const voiceChannel = message.member.voice.channel;&#xA;  if (!voiceChannel)&#xA;    return message.channel.send(&#xA;      "You need to be in a voice channel to play music!"&#xA;    );&#xA;  const permissions = voiceChannel.permissionsFor(message.client.user);&#xA;  if (!permissions.has("CONNECT") || !permissions.has("SPEAK")) {&#xA;    return message.channel.send(&#xA;      "I need the permissions to join and speak in your voice channel!"&#xA;    );&#xA;  }&#xA;&#xA;  const songInfo = await ytdl.getInfo(args[1]);&#xA;  const song = {&#xA;    title: songInfo.title,&#xA;    url: songInfo.video_url&#xA;  };&#xA;&#xA;  if (!serverQueue) {&#xA;    const queueContruct = {&#xA;      textChannel: message.channel,&#xA;      voiceChannel: voiceChannel,&#xA;      connection: null,&#xA;      songs: [],&#xA;      volume: 5,&#xA;      playing: true&#xA;    };&#xA;&#xA;    queue.set(message.guild.id, queueContruct);&#xA;&#xA;    queueContruct.songs.push(song);&#xA;&#xA;    try {&#xA;      var connection = await voiceChannel.join();&#xA;      queueContruct.connection = connection;&#xA;      play(message.guild, queueContruct.songs[0]);&#xA;    } catch (err) {&#xA;      console.log(err);&#xA;      queue.delete(message.guild.id);&#xA;      return message.channel.send(err);&#xA;    }&#xA;  } else {&#xA;    serverQueue.songs.push(song);&#xA;    return message.channel.send(`${song.title} has been added to the queue!`);&#xA;  }&#xA;}&#xA;&#xA;function skip(message, serverQueue) {&#xA;  if (!message.member.voice.channel)&#xA;    return message.channel.send(&#xA;      "You have to be in a voice channel to stop the music!"&#xA;    );&#xA;  if (!serverQueue)&#xA;    return message.channel.send("There is no song that I could skip!");&#xA;  serverQueue.connection.dispatcher.end();&#xA;}&#xA;&#xA;function stop(message, serverQueue) {&#xA;  if (!message.member.voice.channel)&#xA;    return message.channel.send(&#xA;      "You have to be in a voice channel to stop the music!"&#xA;    );&#xA;  serverQueue.songs = [];&#xA;  serverQueue.connection.dispatcher.end();&#xA;}&#xA;&#xA;function play(guild, song) {&#xA;  const serverQueue = queue.get(guild.id);&#xA;  if (!song) {&#xA;    serverQueue.voiceChannel.leave();&#xA;    queue.delete(guild.id);&#xA;    return;&#xA;  }&#xA;&#xA;  const dispatcher = serverQueue.connection&#xA;    .play(ytdl(song.url))&#xA;    .on("finish", () => {&#xA;      serverQueue.songs.shift();&#xA;      play(guild, serverQueue.songs[0]);&#xA;    })&#xA;    .on("error", error => console.error(error));&#xA;  dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);&#xA;  serverQueue.textChannel.send(`Start playing: **${song.title}**`);&#xA;}&#xA;&#xA;client.login(token);&#xA;

    &#xA;