-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
62 lines (48 loc) · 1.37 KB
/
app.js
File metadata and controls
62 lines (48 loc) · 1.37 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
var express = require('express'),
log4js = require('log4js'),
cronJob = require('cron').CronJob,
fs = require('fs'),
path = require('path'),
conf = require('./conf/config'),
logger = require('./conf/logger.js'),
loader = require('./lib/epg_loader');
vlc = require('bindings')('vlc.node');
var app = express();
// Create player
var player = new vlc.Player();
// Configure logger
var log=logger.LOG;
app.use(log4js.connectLogger(log, { level: 'auto' }));
// Set static folder
app.use(express.static(loader.dataPublicPath));
var channels = {};
app.get('/setchannel/:number', function(req, res) {
var number = req.params.number;
var channel = channels[number];
if (!channel) {
res.sendStatus(404);
return;
}
res.sendStatus(200);
player.playStream(channel.url);
loader.setLastChannel(number);
});
function initPlayer() {
var channel = loader.getLastChannel();
if (channels[channel]) {
player.playStream(channels[channel].url);
}
}
// Start server
app.listen(conf.port, function() {
log.info('Server running on http://localhost:' + conf.port);
// Check config, channels subscription and update epg
loader.start();
loader.addListener('channels-ready', function(channelList) {
channels = channelList;
initPlayer();
});
// Init cron
new cronJob(conf.refresh_pattern, loader.updateEPG, null, true);
});
module.exports = app;