Files
MusicPlayerV1/nodeserver/server.js

133 lines
3.0 KiB
JavaScript

const express = require('express');
const http = require('http');
const bodyParser = require('body-parser');
const ip = require('ip')
// GET IP OF SYSTEM AND DISPLAY TO USER
console.log("\n\nThis PC's IP address: " + ip.address());
console.log("Use this IP address when connecting to this server from the player and display!")
// INITIALIZE VARIABLES
var app = express();
var playbackpos = "1"
var upcomingsongs = "Test\nTest2\nTest3"
var currentsong = "This is a song"
var songmaxlength = "100"
var fullscreen = "False"
var status = "n/a"
var doupdateUI = "False"
var isplaying = "False"
// CONFIG FOR EXPRESS
app.use(bodyParser.urlencoded({extended : true}))
/////////////////
////// API //////
/////////////////
app.get('/tryconnect', (request, response) => {
console.log("connecting")
response.send("ok")
})
// Get data (Interface for Screen)
app.get('/playbackpos', (request, response) => {
response.send(playbackpos)
})
app.get('/upcomingsongs', (request, response) => {
console.log("getting upcoming songs")
response.send(upcomingsongs)
})
app.get('/songmaxlength', (request, response) => {
console.log(songmaxlength)
response.send(songmaxlength)
})
app.get('/currentsong', (request, response) => {
response.send(currentsong)
})
app.get('/fullscreen', (request, response) => {
response.send(fullscreen)
})
app.get('/isrunning', (request, response) => {
response.send(status)
})
app.get('/uiupdate', (request, response) => {
response.send(doupdateUI)
doupdateUI = "False"
})
app.get('/isplaying', (request, response) => {
response.send(isplaying)
})
// POST data (Interface for Player)
app.post('/postplayback', (request, response) => {
playbackpos = request.body.pos
doupdateUI = "True"
response.send("ok")
})
app.post('/postupcomingsongs', (request, response) => {
upcomingsongs = request.body.songs
doupdateUI = "True"
response.send("ok")
})
app.post('/postcurrentsong', (request, response) => {
currentsong = request.body.songname
doupdateUI = "True"
response.send("ok")
})
app.get('/changefullscreen', (request, response) => {
console.log("fullscreenmod")
if (fullscreen == "True") {
fullscreen = "False"
} else {
fullscreen = "True"
}
response.send("ok")
})
app.post('/postsonglength', (request, response) => {
songmaxlength = request.body.length
console.log(songmaxlength)
doupdateUI = "True"
response.send("ok")
})
app.post('/poststatus', (request, response) => {
status = request.body.status
doupdateUI = "True"
response.send("ok")
})
app.get('/requestuiupdate', (request, response) => {
doupdateUI = "True"
response.send("ok")
})
// Test functions
app.post('/testrequest', (request, response) => {
console.log("request received")
console.log(request.body)
response.send(request.body)
response.status(200)
})
// Create and run server
http.createServer(app).listen(8000, function () {
console.log("\n\n-------------------\n\n Server started\n\n-------------------\n")
})