-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.js
More file actions
executable file
·102 lines (88 loc) · 2.93 KB
/
app.js
File metadata and controls
executable file
·102 lines (88 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
const express = require('express'),
path = require('path'),
favicon = require('serve-favicon'),
logger = require('morgan'),
cookieParser = require('cookie-parser'),
bodyParser = require('body-parser'),
http = require('http'),
socket_io = require('socket.io');
const ps2ws = require('./ps2ws.js'),
teams = require('./outfit.js'),
items = require('./items.js'),
routes = require('./routes/index.js'),
adminControls = require('./routes/admin.js'),
rules = require('./routes/rules.js'),
playerAlias = require('./routes/alias.js'),
api_key = require('./api_key.js'),
password = require('./password.js'),
team = require('./team.js'),
overlay = require('./overlay.js');
const app = express();
const io = socket_io();
app.io = io;
let sock = require('./socket.js');
sock.init(io);
// send through the io data and then push the name and object to connected clients
function send(name, obj) {
sock.sendData(name, obj, io);
}
overlay.initialise();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', '.hbs');
app.use(express.static(__dirname + '/public'));
// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/admin', adminControls);
app.use('/rules', rules);
app.use('/alias', playerAlias);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
async function start(one, two) {
let oneObj = await teams.fetchTeamData(one).catch(function (err) {
console.log("Error fetching data for team one: " + one);
console.error(err);
// Failure means match should not go ahead so return (exit function)
return 0;
});
let twoObj = await teams.fetchTeamData(two).catch(function (err) {
console.log("Error fetching data for team two: " + two);
console.error(err);
// Failure means match should not go ahead so return (exit function)
return 0;
});
ps2ws.startUp(oneObj, twoObj);
}
module.exports = app;
exports.start = start;
exports.send = send;