Version 0.9.0 - Ajout du Home Menu V2
This commit is contained in:
		@@ -18,6 +18,7 @@ const __glob = {
 | 
			
		||||
    NODES:  root + path.sep + "data" + path.sep + "nodes.json",
 | 
			
		||||
    README: root + path.sep + "README.md",
 | 
			
		||||
    PLAYLIST:  root + path.sep + "data" + path.sep + "playlist.json",
 | 
			
		||||
    RADIO:  root + path.sep + "data" + path.sep + "radios.json",
 | 
			
		||||
    LOGS: root + path.sep + "src" + path.sep + "modules" + path.sep + "logs"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -168,6 +168,13 @@ module.exports.getUsersList = function () {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.getSimpleUser = function (token) {
 | 
			
		||||
 | 
			
		||||
    var user = users.get(token)
 | 
			
		||||
 | 
			
		||||
    return ({"username": user.user.username, "global_name":user.user.global_name, "avatar": user.user.avatar, "id": user.user.id})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.getUser = function (token) {
 | 
			
		||||
    return users.get(token)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								src/modules/sub-radio.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/modules/sub-radio.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
const { __glob } = require("../modules/global-variables");
 | 
			
		||||
const { LogType } = require("./sub-log");
 | 
			
		||||
var { List } = require("./sub-list")
 | 
			
		||||
const discord = require("./discord-bot")
 | 
			
		||||
const subplayer = require("./sub-player")
 | 
			
		||||
const fs = require("fs");
 | 
			
		||||
const { type } = require("os");
 | 
			
		||||
var radios = []
 | 
			
		||||
const plog = new LogType("Radio-Manager")
 | 
			
		||||
 | 
			
		||||
check()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.get = function () {
 | 
			
		||||
 | 
			
		||||
    check()
 | 
			
		||||
    return radios
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.add = function (data) {
 | 
			
		||||
    
 | 
			
		||||
    var radios_data = JSON.parse(fs.readFileSync(__glob.RADIO))
 | 
			
		||||
            
 | 
			
		||||
    radios_data.push(data)
 | 
			
		||||
    fs.writeFileSync(__glob.RADIO, JSON.stringify(radios_data, null, 2))
 | 
			
		||||
    
 | 
			
		||||
    return radios
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.remove = function(data) {
 | 
			
		||||
 | 
			
		||||
            var radios_data = JSON.parse(fs.readFileSync(__glob.RADIO))
 | 
			
		||||
 | 
			
		||||
            var radIndex = -1
 | 
			
		||||
 | 
			
		||||
            for(var radio of radios_data) {
 | 
			
		||||
 | 
			
		||||
                if(data.uri == radio.uri) {
 | 
			
		||||
 | 
			
		||||
                    radIndex = radios_data.indexOf(radio)
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            radios_data.splice(radIndex, 1)
 | 
			
		||||
            
 | 
			
		||||
            fs.writeFileSync(__glob.RADIO, JSON.stringify(radios_data, null, 2))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function check() {
 | 
			
		||||
 | 
			
		||||
    if(fs.existsSync(__glob.RADIO)) {
 | 
			
		||||
 | 
			
		||||
        radios = JSON.parse(fs.readFileSync(__glob.RADIO))
 | 
			
		||||
    } else {
 | 
			
		||||
 | 
			
		||||
        fs.writeFileSync(__glob.RADIO, JSON.stringify(radios, null, 2))
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -6,6 +6,7 @@ const auth = require("./sub-auth");
 | 
			
		||||
const cook = require("cookie")
 | 
			
		||||
const wlog = new LogType("Web")
 | 
			
		||||
const subplayer = require('./sub-player');
 | 
			
		||||
const subradio = require("./sub-radio.js")
 | 
			
		||||
const { List } = require("./sub-list")
 | 
			
		||||
const subplaylist = require("./sub-playlist")
 | 
			
		||||
const nodesfinder = require("./nodes-finder")
 | 
			
		||||
@@ -141,6 +142,9 @@ function IOConnection(io) {
 | 
			
		||||
 | 
			
		||||
    const alog = log.getInstance("Authentification")
 | 
			
		||||
 | 
			
		||||
    const usersOnline = new Array()
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    process.on("UPDATE_NODES", () => {
 | 
			
		||||
 | 
			
		||||
        if(io) {
 | 
			
		||||
@@ -152,6 +156,16 @@ function IOConnection(io) {
 | 
			
		||||
    
 | 
			
		||||
   
 | 
			
		||||
    
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    process.on("UPDATE_RADIO", () => {
 | 
			
		||||
 | 
			
		||||
        if(io) {
 | 
			
		||||
 | 
			
		||||
            const radioList = subradio.get()
 | 
			
		||||
            io.sockets.emit("ALWAYS/ALL_RADIO", radioList)
 | 
			
		||||
        }    
 | 
			
		||||
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    process.on("MUSIC_UPDATE_STATE", () => {
 | 
			
		||||
@@ -163,15 +177,38 @@ function IOConnection(io) {
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    io.on("connection", (socket) => {
 | 
			
		||||
        
 | 
			
		||||
            var ucookies = socket.handshake.headers.cookie
 | 
			
		||||
            ucookies = cook.parse(ucookies)
 | 
			
		||||
 | 
			
		||||
            if(ucookies.token) {
 | 
			
		||||
 | 
			
		||||
                var utoken = ucookies.token
 | 
			
		||||
                const online_users_data = auth.getSimpleUser(utoken)
 | 
			
		||||
                usersOnline.push(online_users_data)
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            io.sockets.emit("ALWAYS/ALL_CONNECTED_USER", usersOnline)
 | 
			
		||||
 | 
			
		||||
        wlog.log("[SOCKET] - Nouvelle session : " + socket.id)
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        socket.on("disconnect", () => {
 | 
			
		||||
           
 | 
			
		||||
            wlog.log("[SOCKET] - Fin de session : " + socket.id)
 | 
			
		||||
            if(ucookies.token) {
 | 
			
		||||
 | 
			
		||||
                var utoken = ucookies.token
 | 
			
		||||
                const online_users_data = auth.getSimpleUser(utoken)
 | 
			
		||||
                usersOnline.splice(usersOnline.indexOf(online_users_data), 1)
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            io.sockets.emit("ALWAYS/ALL_CONNECTED_USER", usersOnline)
 | 
			
		||||
            
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // SPECIAL
 | 
			
		||||
 | 
			
		||||
        socket.on("GET/DISCORD_LOGIN_LINK", () => {
 | 
			
		||||
@@ -394,6 +431,20 @@ function IOConnection(io) {
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        GetRequest(io, socket, "ALL_CONNECTED_USER", () => {
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
            io.sockets.emit("ALWAYS/ALL_CONNECTED_USER", usersOnline)
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        GetRequest(io, socket, "ALL_RADIO", () => {
 | 
			
		||||
 | 
			
		||||
            const radioList = subradio.get()
 | 
			
		||||
            io.sockets.emit("ALWAYS/ALL_RADIO", radioList)
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -421,7 +472,61 @@ function IOConnection(io) {
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            } else {
 | 
			
		||||
                io.emit("ANSWER/SEND/USERS/ADD", {"error":"TOKEN_NOT_FINDED"})
 | 
			
		||||
                io.emit("ANSWER/SEND/NODES/ADD", {"error":"TOKEN_NOT_FINDED"})
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
         
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        socket.on("SEND/RADIO/ADD", async (data) => {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var cookies = socket.handshake.headers.cookie
 | 
			
		||||
 | 
			
		||||
            if(cookies) {
 | 
			
		||||
 | 
			
		||||
                cookies = cook.parse(cookies)
 | 
			
		||||
                var token = cookies.token
 | 
			
		||||
 | 
			
		||||
                const user = auth.getUser(token)
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
                if(user.admin == true) {
 | 
			
		||||
                    
 | 
			
		||||
                    const music_data = await (await subplayer.search(data)).results.tracks[0]
 | 
			
		||||
 | 
			
		||||
                    var radioContains = null
 | 
			
		||||
                    
 | 
			
		||||
                    for(var title of subradio.get()) {
 | 
			
		||||
 | 
			
		||||
                        if(title.uri == music_data.uri) {
 | 
			
		||||
 | 
			
		||||
                            radioContains = true
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
 | 
			
		||||
                    if(!radioContains) {
 | 
			
		||||
 | 
			
		||||
                        subradio.add(music_data)
 | 
			
		||||
                        console.log("[Radio] - ADD : " + data)
 | 
			
		||||
 | 
			
		||||
                    } else {
 | 
			
		||||
 | 
			
		||||
                        subradio.remove(music_data)
 | 
			
		||||
                        console.log("[Radio] - REMOVE : " + data)
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    
 | 
			
		||||
                    socket.emit("ANSWER/SEND/RADIO/ADD", "OK")
 | 
			
		||||
                    process.emit("UPDATE_RADIO")
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            } else {
 | 
			
		||||
                io.emit("ANSWER/SEND/RADIO/ADD", {"error":"TOKEN_NOT_FINDED"})
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
         
 | 
			
		||||
@@ -716,7 +821,7 @@ function IOConnection(io) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    const results = await subplayer.search(data)
 | 
			
		||||
                    
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                    io.emit("ANSWER/SEND/SEARCH", results)
 | 
			
		||||
                
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user