Version 1.0.0 - Final Version (without Logo)

This commit is contained in:
CICD - Pipeline 2023-09-15 22:10:11 +02:00
parent 35ea19b743
commit ae163756f7
18 changed files with 76 additions and 53 deletions

View File

@ -20,28 +20,17 @@
## Changelog ## Changelog
### Subsonics - Web - 0.9.0
- **Adds :** *Home Menu V2 | User Experience Improvements*
#### Details
**Home Menu V2** (Done)
> - Ajouter une petite liste des gens connectés actuellement
> - Ajouter les radios
> - Ajouter le Changelog
**User Experience Improvements**
> - Fix of Tooltip which is sometimes bugged
> - Canva of Queue List
> - Support Live
<hr>
### Subsonics - Web - 1.0.0 ### Subsonics - Web - 1.0.0
- **Adds :** *Bugs Fixes & Trailer* - **Adds :** *Bugs Fixes*
#### Details #### Details
-- TO DO
**Bugs Fixes**
> - Fix des playlist avec les noms interdits
> - Playlist Private - Handle Exception
**Final Logo**
> - Ajout du logo Final
<hr> <hr>

View File

@ -1,8 +1,8 @@
[ [
{ {
"host": "lava1.horizxon.studio", "host": "lavalink.clxud.dev",
"port": 80, "port": 2333,
"password": "horizxon.studio", "password": "youshallnotpass",
"retryAmount": 1 "retryAmount": 1
} }
] ]

View File

@ -1,7 +1,7 @@
{ {
"name": "subsonics-web", "name": "subsonics-web",
"author": "Raphix", "author": "Raphix",
"version": "0.9.3", "version": "1.0.0",
"nodemonConfig": { "nodemonConfig": {
"ext": "js, html", "ext": "js, html",
"ignore": [ "ignore": [

View File

@ -6,7 +6,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("about") .setName("about")
.setDescription("[NEW] Affiche les informations principales du bot !"), .setDescription("Affiche les informations principales du bot !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -3,7 +3,7 @@ module.exports = {
data:new SlashCommandBuilder() data:new SlashCommandBuilder()
.setName("help") .setName("help")
.setDescription("[NEW] Affiche toutes les commandes disponibles du bot"), .setDescription("Affiche toutes les commandes disponibles du bot"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -7,7 +7,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("leave") .setName("leave")
.setDescription("[NEW] Déconnecte le Bot !"), .setDescription("Déconnecte le Bot !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -9,7 +9,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("pause") .setName("pause")
.setDescription("[NEW] Cette commande te permettera de mettre en pause ou de remettre le morceau en cours !"), .setDescription("Cette commande te permettera de mettre en pause ou de remettre le morceau en cours !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -7,7 +7,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("play") .setName("play")
.setDescription("[NEW] Permet de lire des titres comme des playlists depuis Youtube / SoundCloud / Vimeo !") .setDescription("Permet de lire des titres comme des playlists depuis Youtube / SoundCloud / Vimeo !")
.addStringOption(option => option.setName("nom_ou_lien").setDescription("Lien ou nom du titre ou de la playlist").setRequired(true)), .addStringOption(option => option.setName("nom_ou_lien").setDescription("Lien ou nom du titre ou de la playlist").setRequired(true)),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -9,7 +9,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("previous") .setName("previous")
.setDescription("[NEW] Revenir à la chanson précédente."), .setDescription("Revenir à la chanson précédente."),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -9,7 +9,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("report") .setName("report")
.setDescription("[NEW] Donne le lien vers le panel !") .setDescription("Donne le lien vers le panel !")
.addStringOption(option => option.setName("level").setDescription("Niveau du report").setRequired(true).addChoices( .addStringOption(option => option.setName("level").setDescription("Niveau du report").setRequired(true).addChoices(
{name: "Majeur", value: "Majeur"}, {name: "Majeur", value: "Majeur"},
{name: "Mineur", value: "Mineur"}, {name: "Mineur", value: "Mineur"},

View File

@ -6,7 +6,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("restart") .setName("restart")
.setDescription("[NEW] Redémarre intégralement le Bot !"), .setDescription("Redémarre intégralement le Bot !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -9,7 +9,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("skip") .setName("skip")
.setDescription("[NEW] Passer à la chanson suivante."), .setDescription("Passer à la chanson suivante."),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -9,7 +9,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("state") .setName("state")
.setDescription("[NEW] Donne le titre de la musique !"), .setDescription("Donne le titre de la musique !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -6,7 +6,7 @@ module.exports = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("web") .setName("web")
.setDescription("[NEW] Donne le lien vers le panel !"), .setDescription("Donne le lien vers le panel !"),
async execute(client, interaction) { async execute(client, interaction) {

View File

@ -43,6 +43,16 @@ module.exports.play = async function (client, interaction) {
const songs = await client.manager.search(song_name) const songs = await client.manager.search(song_name)
if(songs.tracks.length == 0) {
const embed = await new EmbedBuilder()
.setColor(0xff0000)
.setTitle('*On connait pas le morceau !*')
.setTimestamp();
interaction.reply({embeds: [embed], ephemeral: true})
} else {
if(!player.playing) { if(!player.playing) {
player.play(songs.tracks[0]) player.play(songs.tracks[0])
@ -51,8 +61,8 @@ module.exports.play = async function (client, interaction) {
.setColor(0x15e6ed) .setColor(0x15e6ed)
.setTitle('**Lecture de : **' + songs.tracks[0].title) .setTitle('**Lecture de : **' + songs.tracks[0].title)
.setDescription('**Demandé par **' + interaction.member.user.username) .setDescription('**Demandé par **' + interaction.member.user.username)
.addFields({name: "Auteur", value: songs.tracks[0].author}, .addFields({name: "Auteur", value: son.tracks[0].author},
{name: "URL", value:songs.tracks[0].uri}) {name: "URL", value:songs.tragscks[0].uri})
.setThumbnail(songs.tracks[0].thumbnail) .setThumbnail(songs.tracks[0].thumbnail)
.setTimestamp(); .setTimestamp();
@ -63,6 +73,9 @@ module.exports.play = async function (client, interaction) {
} }
}
} }

View File

@ -461,24 +461,44 @@ socket.on("ANSWER/GET/PLAYLIST", (data) => {
const addPlaylist_dialog = document.getElementById("createPlaylist_dialog") const addPlaylist_dialog = document.getElementById("createPlaylist_dialog")
const addPlaylist_close = document.getElementById("createPlaylist_close") const addPlaylist_close = document.getElementById("createPlaylist_close")
const apText = document.getElementById("apText") const apText = document.getElementById("apText")
const apInfo = document.getElementById("apInfo")
const apCreate = document.getElementById("apCreate") const apCreate = document.getElementById("apCreate")
addPlaylist_close.addEventListener("click", () => { addPlaylist_close.addEventListener("click", () => {
apInfo.innerHTML = ""
addPlaylist_dialog.close() addPlaylist_dialog.close()
}) })
addPlaylist.addEventListener("click", () => { addPlaylist.addEventListener("click", () => {
apText.value = "" apText.innerHTML = ""
addPlaylist_dialog.showModal() addPlaylist_dialog.showModal()
}) })
apCreate.addEventListener("click", () => { apCreate.addEventListener("click", () => {
apInfo.innerHTML = ""
var wrongName = true
const refusedChar = ['\\','/' ,':' ,'*','?' ,'"','<','>','|']
for(var char of refusedChar) {
if(apText.value.includes(char)) {
wrongName = false
}
}
if(apText.value != "" && apText.value != " " && wrongName) {
addPlaylist_dialog.close() addPlaylist_dialog.close()
send("CREATE_PLAYLIST", apText.value) send("CREATE_PLAYLIST", apText.value)
} else {
apInfo.innerHTML = "<span style='red'>Le nom n'est pas valide !</style>"
}
}) })

View File

@ -401,8 +401,8 @@ p {
.rsend { .rsend {
color: white; color: white;
margin: 2%; margin: 2%;
padding: 1%;
align-self: center; align-self: center;
width: 20%;
background-color: transparent; background-color: transparent;
border: none; border: none;
border-style: solid; border-style: solid;

View File

@ -55,6 +55,7 @@
</div> </div>
<div class="apContent"> <div class="apContent">
<img class="apTile" src="/images/playlist-tile.svg"> <img class="apTile" src="/images/playlist-tile.svg">
<p style='color: red; padding-bottom: 0;' id="apInfo"></p>
<p>Nom de la playlist</p> <p>Nom de la playlist</p>
<input type="text" id="apText"> <input type="text" id="apText">
<button id="apCreate" class="rsend"><i class="fa fa-plus"></i> Créer</button> <button id="apCreate" class="rsend"><i class="fa fa-plus"></i> Créer</button>