-
Notifications
You must be signed in to change notification settings - Fork 8
/
server.js
53 lines (39 loc) · 1.1 KB
/
server.js
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
const koa = require('koa')
const serve = require('koa-static')
const bodyParser = require('koa-bodyparser')
const Store = require('./lib/store')
const router = require('./lib/router')
const Archiver = require('./lib/archiver')
const app = new koa()
var port = 80
var root = '/home/pi/seeder'
if (process.argv.length > 2 && process.argv[2] === 'dev') {
port = 8080
root = '.'
}
const store = new Store(root + '/data.json')
const archiver = new Archiver(root, store)
const r = router(store, archiver)
store.read()
archiver.all()
app.use(serve(root + '/bundles'))
app.use(bodyParser())
app.use(r.routes())
.use(r.allowedMethods())
console.log('The frontend is served on port ' + port + '.\n')
app.listen(port)
// Timeout for seeded sites
check_timeouts()
setInterval(check_timeouts, 2 * 3600000)
function check_timeouts() {
var now = new Date().getTime()
var feeds = store.get('feeds')
for (var i = 0; i < feeds.length; i++) {
if (feeds[i].timeout && feeds[i].timeout < now) {
archiver.remove(feeds[i].url)
feeds.splice(store.indexOf(feeds[i].url), 1)
}
}
store.set('feeds', feeds)
store.write()
}