From d1a0130f00bba6a740527ba16219802894939aed Mon Sep 17 00:00:00 2001 From: Raphix Date: Tue, 29 Aug 2023 11:51:22 +0200 Subject: [PATCH] =?UTF-8?q?Version=200.6.0=20-=20Ajout=20des=20fonctionnal?= =?UTF-8?q?it=C3=A9s=20externes=20de=20la=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 89 +++++++++++++++++---- package.json | 2 +- src/modules/sub-list.js | 32 +++++++- src/modules/sub-player.js | 10 +++ src/modules/sub-playlist.js | 14 ++++ src/modules/sub-web.js | 36 +++++++++ src/web/public/javascript/__index_script.js | 12 ++- 7 files changed, 177 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3e68542..77e7e8f 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ * En cas de bug, n'hésitez pas à faire un **report** sur votre profil. * Vous pouvez utiliser la commande **/restart** sur Discord pour redémarrer l'intégralité du programme ! +* Certaines fonctionnalités sont encore en développement et peuvent générer des bugs, merci de me les reports en faisant un Rapport en cliquant sur votre petite tête +* Les playlists (en version 0.6.0) ne sont pas sauvegardés en raison de la Pipeline qui écrase tout comme un sauvage ... même les tokens de connexion .... +* N'hésitez pas lorsque vous êtes seuls à expérimenter le bot en le poussant à bout pour voir ses limites et de me le signaler ^^ +* Pour toutes suggestions, pas de problème ^^ Vous pouvez envoyez un rapport avec la catégorie Suggestion ! ^^ @@ -16,32 +20,74 @@ ## Changelog ### Subsonics - Web - 0.6.0 -- **Adds :** *Web features : Playlist | Pipeline Deploy V2 | Search Ellipis | Handle Playlist on Web* +- **Adds :** *Playlist | Pipeline Deploy V2 | Search Ellipis | Handle Playlist on Web | Add Song Button from current* #### Details -**Web Player Features** -> - Playlist ->> - SEND/ SEARCH_SONGS ->> - SEND/ ADD_SONGS -> - Make a popup ->> - Lire maintenant ->> - Ajouter à une playlist + +**Playlist** +> - Ajouter / Supprimer des chansons +> - Lire toutes la playlist + + **Pipeline Deploy V2** ->> - Copy /data/ except "betas.json" ->> - Reinject /data/ +> - Copy /data/ except "betas.json" +> - Reinject /data/ + +**Handle Playlist on Web** + +> - Check with ytpfs +> - Make a preview track + +**Add Song Button from current** + +> - Take Current & SEND/ADD_SONG_TO_PLAYLIST
### Subsonics - Web - 0.7.0 -- **Adds :** *Settings : Web Page Change, Logs, Connexions, Gestion d'accès, Beta | Users V2 | Handle CLP & Banned account* +- **Adds :** *Settings : Logs, Connexions, Gestion d'accès | Users V2 | Improvements* #### Details --- TO DO + +**Settings** +> - Logs : Afficher les logs +> - Connexions : Afficher l'état des nodes et modifier les nodes +> - Gestion d'accès : Bannir les personnes / Leur ajouter des perms * + +**Users V2** +> - Ajout des permissions +> - Handle Ban Case + +**Improvements** + +> - Change Volume with moving | +> - Find a default URL when thumbnail is null
### Subsonics - Web - 0.8.0 -- **Adds :** *Alerts, Playlist Share, See Who is Online* +- **Adds :** *Alerts, Playlist Share, See Who is Online | Edit playlist picture | Tooltip* #### Details --- TO DO + +**Alerts** +> - Popup Prefab +> - Declencher lors de l'action + +**Playlist Share** + +> - Envoyer des playlist avec la liste des utilisateurs + +**See Who is Online** + +> - Ajouter une petite liste des gens connectés actuellement + +**Edit playlist picture** + +> - Support l'upload +> - Ajouter à la playlist +> - Handle la picture + +**Tooltip** + +> - Tooltip sur les bouttons
@@ -50,4 +96,19 @@ #### Details -- TO DO +
+ +### Subsonics - Web - 1.1.0 +- **Adds :** *Soundboard Editor* +#### Details +-- TO DO + + +
+ +### Subsonics - Web - 1.2.0 +- **Adds :** *Assets Rework* +#### Details +-- TO DO + \ No newline at end of file diff --git a/package.json b/package.json index 20aed44..009e19c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "subsonics-web", "author": "Raphix", - "version": "0.6.0", + "version": "0.6.1", "nodemonConfig": { "ext": "js, html", "ignore": [ diff --git a/src/modules/sub-list.js b/src/modules/sub-list.js index 31543c3..11e7e91 100644 --- a/src/modules/sub-list.js +++ b/src/modules/sub-list.js @@ -1,6 +1,7 @@ const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); const { __glob } = require("../modules/global-variables"); const { LogType } = require('./sub-log'); +const discord = require("./discord-bot") const dlog = new LogType("Queue-List") @@ -223,12 +224,39 @@ module.exports.List = class { } else { - // [A FINIR POUR WEB] - } + if(!client) { + client = discord.getClient() + } + let player = client.manager.players.get("137291455336022018") + + if(!player) { + + player = client.manager.create({ + guild: "137291455336022018", + voiceChannel: discord.getMemberVoices().get(userId), + textChannel: "664355637685256203", + }); + + + player.connect(); + } + + for(var song of playlist) { + + const song_finded = await client.manager.search(song.url) + next.push(song_finded.tracks[0]) + } + if(!player.playing) { + + player.play(next[0]) + this.remove(next[0]) + + } + } } diff --git a/src/modules/sub-player.js b/src/modules/sub-player.js index 6d346bb..dbfc035 100644 --- a/src/modules/sub-player.js +++ b/src/modules/sub-player.js @@ -175,6 +175,16 @@ module.exports.getState = function(client, interaction) { +} + +module.exports.playPlaylist = function (data, client) { + + + + list.playlistAdd(data, null) + + + } module.exports.SPECIAL_MJ = async function (client, userId) { diff --git a/src/modules/sub-playlist.js b/src/modules/sub-playlist.js index 83ac233..6f7e671 100644 --- a/src/modules/sub-playlist.js +++ b/src/modules/sub-playlist.js @@ -89,6 +89,20 @@ module.exports.removeSong = function (id, name, song ) { } +module.exports.playPlaylist = function (id, name) { + check() + if(playlists[id][name]) { + plog.log("Ajout de la playlist à l'utilisateur \"" + id + "\" dans la liste de lecture !") + + subplayer.playPlaylist(playlists[id][name]) + } else { + + plog.log("L'utilisateur \"" + id + "\" n'a pas une playlist avec le nom "+ name + " dans la base de donnée Playlist !") + + } + +} + function check() { diff --git a/src/modules/sub-web.js b/src/modules/sub-web.js index 3e61088..f7aabd6 100644 --- a/src/modules/sub-web.js +++ b/src/modules/sub-web.js @@ -599,6 +599,42 @@ function IOConnection(io) { + }) + + socket.on("SEND/PLAY_PLAYLIST", async (data) => { + + + var cookies = socket.handshake.headers.cookie + + if(cookies) { + + cookies = cook.parse(cookies) + var token = cookies.token + + if(auth.checkUser(token)) { + + + + var user = auth.getUser(token) + var userId = user.user.id + + + subplaylist.playPlaylist(userId, data) + + io.emit("DO_UPDATE_PLAYLIST") + io.emit("ANSWER/SEND/PLAY_PLAYLIST/OK") + + } else { + + io.emit("ANSWER/SEND/PLAY_PLAYLIST", {"error":"USER_DONT_EXIST"}) + } + } else { + io.emit("ANSWER/SEND/PLAY_PLAYLIST", {"error":"TOKEN_NOT_FINDED"}) + + } + + + }) diff --git a/src/web/public/javascript/__index_script.js b/src/web/public/javascript/__index_script.js index bc9f51f..266f99b 100644 --- a/src/web/public/javascript/__index_script.js +++ b/src/web/public/javascript/__index_script.js @@ -88,6 +88,16 @@ function delPlayList(key) { } +function playPlayList(key) { + + send("PLAY_PLAYLIST", key) + + +} + + + + socket.on("DO_UPDATE_PLAYLIST", () => { @@ -184,7 +194,7 @@ socket.on("ANSWER/GET/PLAYLIST", (data) => { } - playlistToPush.push('

' + key + '


' + playlist_songs.join("")) + playlistToPush.push('

' + key + '


' + playlist_songs.join("")) if(playlistToPush.join("") == "") {