big reshuffle and commit

This commit is contained in:
karl0ss 2019-07-15 21:29:13 +01:00
parent 1d7112eb9c
commit a350dd49f4
12 changed files with 3488 additions and 3 deletions

View File

@ -1,4 +1,4 @@
const Orvibo = require('./Orvibo'); const Orvibo = require('./utils/Orvibo');
const http = require('http'); const http = require('http');
const url = require('url'); const url = require('url');

3288
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,11 @@
}, },
"homepage": "https://github.com/sandysound/orvibo-b25-server#readme", "homepage": "https://github.com/sandysound/orvibo-b25-server#readme",
"dependencies": { "dependencies": {
"buffer-crc32": "^0.2.13" "buffer-crc32": "^0.2.13",
"express": "^4.17.1",
"pug": "^2.0.4"
},
"devDependencies": {
"nodemon": "^1.19.1"
} }
} }

89
public/css/style.css Normal file
View File

@ -0,0 +1,89 @@
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit; /* [1] */
margin: 0;
padding: 0;
}
body {
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; /* [2] */
}
.header {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 80px;
background-color: #525286;
color: #FFFFFF;
margin-bottom: 50px;
}
.container {
width: 960px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
}
.person {
text-align: center;
}
.person > * {
margin-bottom: 5px;
}
.person-image {
width: 100%;
height: 300px;
}
.profile {
display: flex;
height: 100vh;
width: 100%;
}
.profile-image {
height: 100%;
flex-grow: 1;
flex-basis: 50%;
}
.profile-details {
flex-basis: 30%;
flex-grow: 1;
padding: 50px;
display: flex;
justify-content: center;
flex-direction: column;
}
.profile-details > * {
margin-bottom: 20px;
}
.button {
height: 50px;
line-height: 50px;
width: 100%;
text-decoration: none;
text-align: center;
font-size: 20px
}
.button-twitter {
color: #FFFFFF;
background-color: #659AF1;
border-radius: 5px;
}

81
server.js Normal file
View File

@ -0,0 +1,81 @@
const Orvibo = require('./server/utils/Orvibo');
const http = require('http');
const url = require('url');
const express = require('express');
const app = express();
app.set('view engine', 'pug');
app.use(express.static(__dirname + '/public'));
const createArray = str => {
// split on each comma
const arr = str.split(',');
// put back elements by pairs
const pairs = [];
for (let i=0; i<arr.length; i+=2) {
let o = {};
o.uid = arr[i].split(':')[1];
o.name = arr[i+1].split(':')[1];
pairs.push(o);
}
return pairs;
}
// Create a settings object to pass PK key and map sockets to names
const settings = {
LOG_PACKET: true, //Show incoming packet data from the socket
ORVIBO_KEY: process.env.orviboPK,
plugInfo :
createArray(process.env.plugArray)
,
};
let orvibo = new Orvibo(settings);
// When a socket first connects and initiates the handshake it will emit the connected event with the uid of the socket;
orvibo.on('plugConnected', ({uid, name}) => {
console.log(`Connected ${uid} name = ${name}`);
});
// If the socket state is updated this event will fire
orvibo.on('plugStateUpdated', ({uid, state , name}) => {
console.log(`Plug ${name} ${uid} updated state ${state}`);
});
// The plug sends a hearbeat to let the server know it's still alive
orvibo.on('gotHeartbeat', ({uid, name}) => {
console.log(`Plug ${name} ${uid} sent heartbeat`);
});
// Called when the plug disconnects
orvibo.on('plugDisconnected', ({uid, name }) => {
console.log(`Plug ${uid} - ${name} disconnected`);
});
// Called when the plug disconnects with an error ie it's been unplugged
orvibo.on('plugDisconnectedWithError', ({uid, name }) => {
console.log(`Plug ${uid} - ${name} disconnected with error`);
});
// Start the Orvibo socket server
orvibo.startServer();
app.get('/', (req, res) => {
let sockets = orvibo.getConnectedSocket();
res.render('index', {
title: 'Orvibo b25 Server',
sockets
})
});
const server = app.listen(3000, () => {
console.log(`Express running → PORT ${server.address().port}`);
});
// const requestHandler = (request, response) => {
// response.writeHead(200, {'Content-Type': 'application/json'});
// let q = url.parse(request.url, true).query;
// if (q.uid != null) {
// orvibo.toggleSocket(q.uid);
// }

12
views/default.pug Normal file
View File

@ -0,0 +1,12 @@
doctype html
html
head
title #{title}
link(rel='stylesheet', href='css/style.css')
meta(name="viewport" content="width=device-width, initial-scale=1")
body
main
block header
header.header
h1 #{title}
block content

12
views/index.pug Normal file
View File

@ -0,0 +1,12 @@
extends default
block content
div.container
each modelId in sockets
div.person
h2.person-name
| #{modelId.name}
h2.person-name2
| #{modelId.uid}
a(href=`/?uid=${modelId.uid}`)
| Toggle