Version 1.0.0 - Final Version (without Logo)
This commit is contained in:
parent
35ea19b743
commit
ae163756f7
27
README.md
27
README.md
@ -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>
|
||||||
|
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -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": [
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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"},
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
|
||||||
|
@ -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) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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>"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user