aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/getUserIndex.js17
-rw-r--r--routes/index.js37
2 files changed, 28 insertions, 26 deletions
diff --git a/lib/getUserIndex.js b/lib/getUserIndex.js
index d71cb3b..6288dc3 100644
--- a/lib/getUserIndex.js
+++ b/lib/getUserIndex.js
@@ -4,12 +4,8 @@ const Promise = require('bluebird')
const cheerio = require('cheerio')
const request = Promise.promisify(require('request'))
-exports = {}
-module.exports = exports
-
-function getStandardUsers () {
- return new Promise(function (resolve, reject) {
- request(`http://www.meetingpointmco.nl/Roosters-AL/doc/dagroosters/frames/navbar.htm`)
+function getUserIndex () {
+ return request(`http://www.meetingpointmco.nl/Roosters-AL/doc/dagroosters/frames/navbar.htm`)
.then(function (page) {
page = page.body
@@ -17,14 +13,14 @@ function getStandardUsers () {
const $script = $('script').eq(1)
const scriptText = $script.text()
- const regexs = [/var classes = \[(.+)\];/, /var teachers = \[(.+)\];/, /var rooms = \[(.+)\];/, /var students = \[(.+)\];/]
+ const regexs = [/var classes = \[(.+)];/, /var teachers = \[(.+)];/, /var rooms = \[(.+)];/, /var students = \[(.+)];/]
const items = regexs.map(function (regex) {
return scriptText.match(regex)[1].split(',').map(function (item) {
return item.replace(/"/g, '')
})
})
- resolve([]
+ return ([]
.concat(items[0].map(function (item, index) {
return {
type: 'c',
@@ -54,9 +50,6 @@ function getStandardUsers () {
}
})))
})
- })
}
-getStandardUsers().then(users => {
- exports.users = users
-})
+module.exports = getUserIndex
diff --git a/routes/index.js b/routes/index.js
index a65ac69..0fc0d30 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -2,24 +2,33 @@
const express = require('express')
const router = express.Router()
-const users = require('../lib/getUserIndex')
+const getUserIndex = require('../lib/getUserIndex')
-/* GET home page. */
-router.get(['/', '/s/*', '/t/*', '/r/*', '/c/*'], function (req, res, next) {
- const isBeta = process.env.BETA === '1'
+getUserIndex().then(users => {
+ /* GET home page. */
+ router.get(['/', '/s/*', '/t/*', '/r/*', '/c/*'], function (req, res, next) {
+ const isBeta = process.env.BETA === '1'
- let flags = []
- if (isBeta) {
- flags.push('BETA')
- flags.push('NO_FEATURE_DETECT')
- } else if (req.query.nfd != null) {
- flags.push('NO_FEATURE_DETECT')
- }
+ let flags = []
+ if (isBeta) {
+ flags.push('BETA')
+ flags.push('NO_FEATURE_DETECT')
+ } else if (req.query.nfd != null) {
+ flags.push('NO_FEATURE_DETECT')
+ }
- const flagsStr = `var FLAGS = ${JSON.stringify(flags)};`
- const usersStr = `var USERS = ${JSON.stringify(users.users)};`
+ const flagsStr = `var FLAGS = ${JSON.stringify(flags)};`
+ const usersStr = `var USERS = ${JSON.stringify(users)};`
- res.render('index', { flagsStr, usersStr, isBeta })
+ res.render('index', { flagsStr, usersStr, isBeta })
+ })
+}, error => {
+ console.error('Unable to get user info, emergency redirect!')
+ console.error('Error:', error)
+
+ router.get(['/', '/s/*', '/t/*', '/r/*', '/c/*'], function (req, res, next) {
+ res.redirect('http://www.meetingpointmco.nl/Roosters-AL/doc/')
+ })
})
module.exports = router