Recherche avancée

Médias (91)

Autres articles (105)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Le plugin : Gestion de la mutualisation

    2 mars 2010, par

    Le plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
    Installation basique
    On installe les fichiers de SPIP sur le serveur.
    On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
    On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
    < ?php (...)

Sur d’autres sites (10097)

  • 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;

  • mp3dec : fix reading the Xing tag

    18 octobre 2014, par Anton Khirnov
    mp3dec : fix reading the Xing tag
    

    The quality scale field is only supposed to be present if the fourth bit
    is set. In practice, lame always sets it, but other tools might not.

    CC:libav-stable@libav.org

    • [DH] libavformat/mp3dec.c
  • asfdec : Fix reading from the pipe

    10 juillet 2015, par Alexandra Hájková
    asfdec : Fix reading from the pipe
    

    Signed-off-by : Luca Barbato <lu_zero@gentoo.org>

    • [DH] libavformat/asfdec.c