Compare commits

...

25 Commits
6.0 ... main

Author SHA1 Message Date
af4b175aad Fix node
Some checks are pending
Subsonics - Pipeline/pipeline/head This commit looks good
b/pipeline/head Build started...
2023-07-19 19:48:59 +02:00
1d1818af8d Retore config.json
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-06-19 22:59:34 +02:00
a09ac9281d Supprimer 'src/config.json'
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-06-19 20:54:39 +00:00
f07a6d9386 Merge branch 'main' of https://git.raphix.fr/subsonics/bot
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-06-19 22:53:31 +02:00
5d64331479 Remove old discriminator 2023-06-19 22:53:12 +02:00
e4665c34f9 Mise à jour de 'src/config.json'
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-06-06 07:39:45 +00:00
af53e95349 Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 18:01:11 +02:00
c1cca39012 Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 18:00:59 +02:00
0e68a33952 Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 17:59:34 +02:00
897d3f392b Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 17:54:53 +02:00
8d978ff1d3 Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 17:52:27 +02:00
abd33e7cb4 Enable App for other Codes
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-08 17:49:57 +02:00
ff10347224 New Version to add Auto Detection of User
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-05 19:07:52 +02:00
8d0a41db8f New Version to add Presence
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-05 14:14:27 +02:00
8cdfb9c682 New Version to add Presence
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-05 14:13:14 +02:00
cdf5f0cf84 New Version to add Presence
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-05 14:11:28 +02:00
1a44f8d8db Add new HTML Window to close Nav FIX 3
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-04 18:32:19 +02:00
2c79ec369e Add new HTML Window to close Nav FIX 2
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-04 18:31:18 +02:00
ba52480694 Add new HTML Window to close Nav FIX
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-04 18:28:40 +02:00
cadfe8e572 Add new HTML Window to close Nav
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-05-04 18:26:23 +02:00
14d57184bf Add 7.7
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-04-30 19:01:44 +02:00
332e550b08 Add Bugreport
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-04-30 12:36:52 +02:00
71e845bf99 Change node
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-04-29 18:33:52 +02:00
4b145910c8 Change node
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-04-29 18:28:43 +02:00
84cba5fdd4 7.0 Build 1
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good
2023-04-29 14:43:07 +02:00
18 changed files with 779 additions and 89 deletions

3
.gitignore vendored
View File

@ -20,6 +20,9 @@ coverage
# nyc test coverage
.nyc_output
tokens.json
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

2
Jenkinsfile vendored
View File

@ -30,4 +30,4 @@ pipeline {
}
}
}
}
}

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "subsonics-discord",
"version": "5.5",
"version": "7.5",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "subsonics-discord",
"version": "5.5",
"version": "7.5",
"dependencies": {
"cookie-parser": "^1.4.6",
"discord.js": "^14.9.0",

View File

@ -1,7 +1,7 @@
{
"name": "subsonics-discord",
"author": "Raphix",
"version": "6.0",
"version": "7.5",
"nodemonConfig": {
"ext": "js, html",
"ignore": [

View File

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Submanager - </title>
</head>
<body>
</body>
</html>

155
src/close/close.css Normal file
View File

@ -0,0 +1,155 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap');
body {
background-color: #171717 !important;
font-family: 'Open Sans', sans-serif !important;
padding: 3%;
}
.top-title {
display: flex;
width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
color: white;
}
.top-logo {
width: 5vw;
border-radius: 10%;
}
.buttonClose {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 15px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.text {
text-align: center;
font-size: 2vw;
color: white;
}
.boxtext {
margin-top: 5%;
border-radius: 15px;
background-color: #3d3d3d;
width: 50%;
padding: 3%;
margin-right: auto;
margin-left: auto;
}
.buttonClose:hover {
color: red;
}
.buttonClose:active {
color: rgb(255, 255, 255);
}
.buttonReduce {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.buttonReduce:hover {
color: rgb(46, 196, 255);
}
.buttonReduce:active {
color: rgb(255, 255, 255);
}
header {
display: flex;
}
.content {
padding: 5%;
padding-top: 0;
}
.buttonFav {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 0;
outline: none;
}
.buttonFav:hover {
color: rgb(242, 255, 53);
}
.buttonFav:active {
color: rgb(255, 255, 255);
}
.title-t {
width: +30%;
margin-left: 1%;
margin-top: 1%;
}

21
src/close/close.html Normal file
View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./close.css">
<title>Subsonics - Submanager</title>
</head>
<body>
<div class="top-title">
<img class="top-logo" src="./logo.png" alt="Logo">
<img class="title-t" src="./title.png" alt="Logo">
</div>
<div class="boxtext">
<p class="text">Vous pouvez fermer cette fenêtre !</p>
<p class="text">En cas de problème, prévenez Raphix#8434 !</p>
</div>
</body>
</html>

BIN
src/close/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
src/close/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -82,4 +82,5 @@ module.exports = {
}
}
}

View File

@ -31,18 +31,18 @@ module.exports = {
player.destroy()
}
const nodes = [
{
host: "lavalink.devamop.in",
password: "DevamOP",
port: 443,
secure: true
host: "narco.buses.rocks",
password: "glasshost1984",
port: 2269,
secure: false
}
];
client.manager.createNode(nodes)
];
client.manager.createNode(nodes)
} else {

View File

@ -1,5 +1,5 @@
{
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GaWsMy.zp3wY6mSOwVhHfV0k43fXdgspi24qgW7LyCD6U",
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GXRu96.tkaQ8XqbDgk4blhGk4sme6JGwQkgf9hQ92W15s",
"clientID":"1094727789682380922",
"guildID":"137291455336022018"
}

155
src/error/error.css Normal file
View File

@ -0,0 +1,155 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap');
body {
background-color: #171717 !important;
font-family: 'Open Sans', sans-serif !important;
padding: 3%;
}
.top-title {
display: flex;
width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
color: white;
}
.top-logo {
width: 5vw;
border-radius: 10%;
}
.buttonClose {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 15px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.text {
text-align: center;
font-size: 2vw;
color: rgb(255, 2, 2);
}
.boxtext {
margin-top: 5%;
border-radius: 15px;
background-color: #3d3d3d;
width: 50%;
padding: 3%;
margin-right: auto;
margin-left: auto;
}
.buttonClose:hover {
color: red;
}
.buttonClose:active {
color: rgb(255, 255, 255);
}
.buttonReduce {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 5px;
outline: none;
}
.buttonReduce:hover {
color: rgb(46, 196, 255);
}
.buttonReduce:active {
color: rgb(255, 255, 255);
}
header {
display: flex;
}
.content {
padding: 5%;
padding-top: 0;
}
.buttonFav {
background-color: transparent;
border: none;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease 0s;
font-family: 'noto Sans', sans-serif;
font-weight: 500;
font-size: 13px;
color: white;
text-decoration: none;
-webkit-app-region: no-drag;
margin: 0;
outline: none;
}
.buttonFav:hover {
color: rgb(242, 255, 53);
}
.buttonFav:active {
color: rgb(255, 255, 255);
}
.title-t {
width: +30%;
margin-left: 1%;
margin-top: 1%;
}

21
src/error/error.html Normal file
View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./error.css">
<title>Subsonics - Submanager</title>
</head>
<body>
<div class="top-title">
<img class="top-logo" src="./logo.png" alt="Logo">
<img class="title-t" src="./title.png" alt="Logo">
</div>
<div class="boxtext">
<p class="text">Echec de connexion par Discord !</p>
<p class="text">Vous pouvez fermer cette fenêtre et réessayer !</p>
</div>
</body>
</html>

BIN
src/error/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
src/error/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -7,6 +7,7 @@ if ("ENV" in process.env) {
}
const log = require("./sublog.js")
var membersVoices = new Map()
const nodes = [
{
@ -21,17 +22,21 @@ function startDiscordBot() {
const { Client, GatewayIntentBits, Collection } = require("discord.js")
const { Client, GatewayIntentBits, Collection, ActivityType } = require("discord.js")
const { REST, Routes } = require("discord.js")
const fs = require("node:fs")
const config = require("./config.json")
const path = require("path")
const { Manager } = require("erela.js")
const client = new Client({
intents:[GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers]
intents:[GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers],
})
client.commands = new Collection()
client.dictator = false;
@ -80,7 +85,6 @@ function startDiscordBot() {
client.once("ready", () => {
log.bot("Le meilleur groupe de musique est prêt !")
client.user.setActivity(`beaucoup de choses !`, { type: "LISTENING" })
client.manager.init(client.user.id);
const commandManager = client.application.commands;
@ -96,6 +100,8 @@ function startDiscordBot() {
client.on("voiceStateUpdate", (oldMember, newMember) => {
membersVoices.set(newMember.id, newMember.channelId)
let player = client.manager.players.get(oldMember.guild.id)
if(player) {
@ -183,6 +189,14 @@ function startServer(client) {
const fs = require("fs")
const path = require("path")
app.use(express.static(__dirname + path.sep + 'error'))
app.use(express.static(__dirname + path.sep + 'close'))
if(!fs.existsSync(__dirname + path.sep + "tokens.json")) {
fs.writeFileSync(__dirname + path.sep + "tokens.json", JSON.stringify({}, null, 2))
}
var link = null
var discordlink = null
@ -191,9 +205,9 @@ function startServer(client) {
log.server("DEV MOD ENABLED")
link = "http://localhost:4000" //DEV
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fredirect&response_type=code&scope=guilds%20identify" //DEV
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=http%3A%2F%2Flocalhost%3A4000%2Fredirect&response_type=code&scope=identify%20guilds%20guilds.members.read" //DEV
} else {
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=https%3A%2F%2Fsubsonics.raphix.fr%2Fredirect&response_type=code&scope=identify%20guilds" //OFFICIEL
discordlink = "https://discord.com/api/oauth2/authorize?client_id=1094727789682380922&redirect_uri=https%3A%2F%2Fsubsonics.raphix.fr%2Fredirect&response_type=code&scope=identify%20guilds%20guilds.members.read" //OFFICIEL
link = "https://subsonics.raphix.fr"
}
@ -208,6 +222,7 @@ function startServer(client) {
function reimportUser() {
const tokens = require(__dirname + path.sep + "tokens.json")
users = new Map()
@ -247,7 +262,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Recherche avec les mots clés : " + value + " de musique de " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Recherche avec les mots clés : " + value + " de musique de " + users.get(token).username)
find()
@ -262,13 +277,22 @@ function startServer(client) {
if(users.has(token)) {
let player = client.manager.players.get("137291455336022018")
var voiceChannel = "664355808250953739"
if(membersVoices.has(users.get(token).id) && membersVoices.get(users.get(token).id) != null) {
voiceChannel = membersVoices.get(users.get(token).id)
}
if(!player) {
player = client.manager.create({
guild: "137291455336022018",
voiceChannel: "664355808250953739",
textChannel: "664355808250953739",
voiceChannel: voiceChannel,
textChannel: voiceChannel,
});
player.connect();
@ -279,7 +303,7 @@ function startServer(client) {
player.queue.add(songtrack.tracks[0])
log.server("Lecture / Ajout du titre : " + songtrack.tracks[0].title + " de musique de " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Lecture / Ajout du titre : " + songtrack.tracks[0].title + " de musique de " + users.get(token).username)
if(!player.playing) {
@ -324,7 +348,7 @@ function startServer(client) {
if(users.has(token)) {
answer = true
log.server("Connexion au serveur par Token - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Connexion au serveur par Token - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + users.get(token).username)
actualize()
}
@ -332,21 +356,27 @@ function startServer(client) {
})
socket.on("getState", (token) => {
reimportUser()
actualize()
const data = {
"username":users.get(token).username + "#" + users.get(token).discriminator,
"avatar": users.get(token).avatar,
"id": users.get(token).id,
}
socket.emit("updateState", data)
const data = {
"username":users.get(token).username,
"avatar": users.get(token).avatar,
"id": users.get(token).id,
}
actualize()
socket.emit("updateState", data)
})
socket.on("play", (token) => {
if(users.has(token)) {
log.server("Mise en Play / Pause demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Mise en Play / Pause demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -376,7 +406,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Avancement demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Avancement demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -397,7 +427,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Changement de volume demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Changement de volume demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -418,7 +448,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Clear liste demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Clear liste demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -435,6 +465,55 @@ function startServer(client) {
})
socket.on("report", (token, report) => {
if(users.has(token)) {
const { EmbedBuilder } = require("discord.js")
log.server("Bug report demandé par " + users.get(token).username)
var embed = null
if(report.type == "Bug") {
embed = new EmbedBuilder()
.setColor(0xff0000)
.setTitle('Bug report de ' + users.get(token).username)
.setDescription('**Version **' + report.version)
.addFields({name: "Description", value: report.text})
.setTimestamp();
} else {
embed = new EmbedBuilder()
.setColor(0x0000ff)
.setTitle('Suggestion de ' + users.get(token).username)
.setDescription('**Version **' + report.version)
.addFields({name: "Description", value: report.text})
.setTimestamp();
}
sendReport()
async function sendReport() {
const channel = await client.channels.fetch('1102177962817749033')
channel.send({embeds: [embed]})
channel.send({content: "<@486943594893017119>"})
}
socket.emit("reportAns", true)
actualize()
} else {
socket.emit("authFailed")
}
})
socket.on("deleteQueue", (token, identifier) => {
@ -444,7 +523,7 @@ function startServer(client) {
if(player) {
log.server("Supression (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Supression (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username )
player.queue.remove(identifier)
@ -459,11 +538,38 @@ function startServer(client) {
})
socket.on("moveQueue", (token, identifier) => {
if(users.has(token)) {
let player = client.manager.players.get("137291455336022018")
if(player) {
log.server("Déplacement (n°" + identifier + ") d'un morceau demandé par " + users.get(token).username )
let elementToMove = player.queue[identifier];
player.queue.remove(identifier)
player.queue.unshift(elementToMove);
}
actualize()
} else {
socket.emit("authFailed")
}
})
socket.on("backward", (token) => {
if(users.has(token)) {
log.server("Retour arrière demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Retour arrière demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -491,7 +597,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Skip demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Skip demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -522,7 +628,7 @@ function startServer(client) {
let player = client.manager.players.get("137291455336022018")
log.server("Looping demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Looping demandé par " + users.get(token).username)
if(player) {
@ -549,7 +655,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Skip demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Skip demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -571,7 +677,7 @@ function startServer(client) {
if(users.has(token)) {
log.server("Restart demandé par " + users.get(token).username + "#" + users.get(token).discriminator)
log.server("Restart demandé par " + users.get(token).username)
let player = client.manager.players.get("137291455336022018")
@ -657,6 +763,13 @@ function startServer(client) {
if(player) {
const { ActivityType } = require("discord.js")
client.user.setPresence({
activities: [{ name: `rien pour le moment`, type: ActivityType.Listening }],
status: 'dnd',
});
data["current"] = player.queue.current
if(player.queueRepeat == true) {
@ -670,7 +783,13 @@ function startServer(client) {
if(player.queue.current) {
data["durationNow"] = player.position
data["durationAll"] = player.queue.current.duration
}
client.user.setPresence({
activities: [{ name: player.queue.current.title, type: ActivityType.Listening }],
status: 'dnd',
});
}
@ -730,7 +849,7 @@ function startServer(client) {
if(req.query.error) {
socket.emit("authFailed")
res.send("SubSonics Manager : ERREUR : DISCORD AUTH FAILED !")
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
log.server("Discord Auth : Erreur - Refus de connexion chez le service Discord : Token de Connexion : " + token + " associé à Client ID : " + socket.id)
} else {
@ -752,7 +871,7 @@ function startServer(client) {
params.append('grant_type', 'authorization_code');
params.append('code', code);
params.append('redirect_uri', link + "/redirect");
params.append('scope', 'identify guild');
params.append('scope', 'identify guilds');
fetch('https://discord.com/api/oauth2/token', {
method: "POST",
@ -764,7 +883,7 @@ function startServer(client) {
res.clearCookie("authLoginFollow")
res.send("SubSonics Manager : Vous pouvez fermer cette fenêtre ! Si rien ne ce passe sur l'application, prévenez Raphix !")
res.sendFile(__dirname + path.sep + "close" + path.sep + "close.html")
} catch(error) {
@ -773,7 +892,7 @@ function startServer(client) {
}
} else {
res.send("SubSonics Manager : ERREUR : DISCORD AUTH FAILED !")
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
}
@ -781,12 +900,13 @@ function startServer(client) {
}
} else {
res.send("SubSonics Manager : ERREUR : AUCUN TOKEN ENREGISTRÉ !")
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
}
} else {
res.send("SubSonics Manager : ERREUR : AUCUN TOKEN ENREGISTRÉ !")
res.sendFile(__dirname + path.sep + "error" + path.sep + "error.html")
}
@ -798,40 +918,96 @@ function startServer(client) {
log.server("Discord Auth : REQUESTING DATA - TOKEN : " + token + " - DISCORD_ACCESS_TOKEN : " + response.access_token)
fetch('https://discord.com/api/users/@me', {
fetch('https://discord.com/api/users/@me/guilds/137291455336022018/member', {
headers: {
authorization: `${response.token_type} ${response.access_token}`,
},
}).then(resp => resp.json()).then(resp => addIdentity(resp, token, socket)).catch(error => log.server.error(error))
}).then(resp => resp.json()).then(resp => checkIdentity(resp, token, socket, response)).catch(error => log.server.error(error))
}
async function checkIdentity(servers, token, socket, creditentials) {
var checked = true
if(servers.message) {
checked = false
console.log("Discord Auth - DENIED - NOT IN SERVER - Token : " + token)
} else {
for(var role of servers.roles) {
if(role == "397725552968204288") {
checked = true
}
if(role == "172437570905571328") {
checked = true
}
if(role == "226744358567804928") {
checked = true
}
if(role == "220649460059996163") {
checked = true
}
}
}
if(checked == true) {
console.log("Discord Auth - ACCESS GRANTED - Token : " + token)
fetch('https://discord.com/api/users/@me', {
headers: {
authorization: `${creditentials.token_type} ${creditentials.access_token}`,
},
}).then(resp => resp.json()).then(resp => addIdentity(resp, token, socket)).catch(error => log.server.error(error))
} else {
console.log("Discord Auth - DENIED - DONT HAVE RANK - Token : " + token)
socket.emit("checkFailed")
}
}
async function addIdentity(response, token, socket) {
log.server("Discord Auth : [IDENTITE] : Nouvelle identité - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + response.username + "#" + response.discriminator)
log.server("Discord Auth : [IDENTITE] : Nouvelle identité - SOCKET_ID : " + socket.id + " - DISCORD_USER : " + response.username)
const tokens = require(__dirname + path.sep + "tokens.json")
tokens[token] = response
users.set(token, response)
await fs.writeFileSync(__dirname + path.sep + "tokens.json", JSON.stringify(tokens, null, 2))
await fs.writeFile(__dirname + path.sep + "tokens.json", JSON.stringify(tokens, null, 2), () => {
reimportUser()
socket.emit("successLogin", token)
actualize()
authTokenWait.delete(token)
await users.set(token, response)
})
socket.emit("successLogin", token)
actualize()
authTokenWait.delete(token)
}

View File

@ -1,5 +1,5 @@
{
"68e45a4a-0f46-4a0c-b4aa-efac9439b0cc": {
"6bde63c8-6b74-4fb5-98d8-87c8c203c16b": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -16,7 +16,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"d13687de-adcd-454b-8f82-d5a67f1aefda": {
"3bdca403-b9d2-47b8-b9c4-3818b324a76f": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -33,7 +33,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"3410460a-ff5c-4075-901c-13660ffd496d": {
"aac35fb6-5c16-4d29-a1e6-6abc43ce5008": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -50,7 +50,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"af09802f-fa3a-4ebe-8b34-51a6375408d1": {
"750f0802-7d9c-4263-b2dd-f27d47029e8b": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -67,7 +67,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"5be82e44-2ecf-4f1c-8850-37886e15937b": {
"c416c176-157e-40a9-ae32-23cfcf812dd4": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -84,7 +84,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"1c62461d-7cc9-44e2-a42a-6fae79baabb6": {
"5ef772f4-e729-4ccc-9c23-25d7cc4b2c64": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -101,7 +101,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"cdba02f4-3473-4c76-8567-ef8965e0c211": {
"b5b7d954-49b6-43b4-a237-08e41f3e6f58": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -118,7 +118,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"73f031a3-6280-4836-89d1-09080d1a74c2": {
"27e00135-65fa-43d5-820c-e35bb906d47c": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -135,7 +135,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"c3b40227-5112-421d-8f2b-46a30a87cbca": {
"04cb0b39-a29e-4dc2-a6e8-31651a4382a5": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -152,7 +152,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"599c640c-b8bd-44b1-9b27-d87a5ab68cf7": {
"e79cbf92-0e97-4522-9430-54e87a1998d3": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -169,7 +169,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"a078d4ab-28c5-4b01-b3f8-c6b29f4c4141": {
"da77741c-e550-43f0-b4e8-86060fd7e784": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -186,7 +186,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"5283c6a7-11b2-4454-b6a5-afecb7169d7f": {
"c89a8d5c-a5f7-409a-9ca5-3d27f40bc073": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -203,7 +203,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"8e4dec3f-82c0-4bd2-a9fb-9ecf64f8aac3": {
"6726b668-25f4-4d3f-8440-b6a4cc002c7d": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -220,7 +220,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"629133a4-f205-4401-a026-639aee65695d": {
"41769f38-1cab-44b9-b96f-09261fe5c3d0": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -237,7 +237,7 @@
"premium_type": 0,
"avatar_decoration": null
},
"002e5b9d-4b23-4444-97f0-4bd46ac6f36e": {
"cc20f4c2-9b35-4846-9b00-e3d09be6e273": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
@ -254,7 +254,177 @@
"premium_type": 0,
"avatar_decoration": null
},
"4a94dd0d-d022-499e-acdf-396d9a1c3291": {
"39faa9aa-e569-498b-8a7f-0dc59a871499": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"3c1e29d2-5678-4799-a658-6a4b2c928a4e": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"a4e19e96-9810-410b-a8c4-9952c334d2f0": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"af666d26-811e-4bb6-832f-aef39dec9578": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"fe83ad11-88c5-4642-96ec-d115ce3346bf": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"e9dc3b80-44d2-4caf-a688-b37af348518a": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"bcd84469-7d83-4343-ae87-5f2d28e4d2ce": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"bf7dcd93-9efe-40f4-9037-aef9dfea6a5c": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"867f8379-3927-42b2-85e8-4df3ced2eddb": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"75a3e38c-eed5-462c-bde8-067dd16ca391": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,
"display_name": null,
"avatar": "883ec1a7136b0aa3c22e4bdc33e278e5",
"discriminator": "8434",
"public_flags": 4194368,
"flags": 4194368,
"banner": null,
"banner_color": "#ff4d4d",
"accent_color": 16731469,
"locale": "fr",
"mfa_enabled": true,
"premium_type": 0,
"avatar_decoration": null
},
"d35acbb8-4a3b-4286-8df6-2ab61cb2c74e": {
"id": "486943594893017119",
"username": "Raphix",
"global_name": null,