diff --git a/generated/profiles.js b/generated/profiles.js deleted file mode 100644 index 1158eba..0000000 --- a/generated/profiles.js +++ /dev/null @@ -1,93 +0,0 @@ -module.exports = [ { profile: - { id: 2, - name: 'TALI SIS�TENNIS 1', - startTime: '06:30', - endTime: '22:30' }, - roomParts: - [ { id: 5741, name: 'K13', code: 'TK 13' }, - { id: 5742, name: 'K10', code: 'TK 10' }, - { id: 5743, name: 'K9', code: 'TK 9' }, - { id: 5744, name: 'K8', code: 'TK 8' }, - { id: 5745, name: 'K1', code: 'TK 1' }, - { id: 5746, name: 'K2', code: 'TK 2' }, - { id: 5799, name: 'K14', code: 'TK 14' }, - { id: 5800, name: 'K15', code: 'TK 15' }, - { id: 5846, name: 'K20', code: 'TK 20' }, - { id: 5847, name: 'K21', code: 'TK 21' }, - { id: 5848, name: 'K22', code: 'TK 22' }, - { id: 5823, name: 'H', code: 'HUOM' } ] }, - { profile: - { id: 5, - name: 'TALI SIS�TENNIS 2', - startTime: '06:00', - endTime: '23:00' }, - roomParts: - [ { id: 5747, name: 'K3', code: 'TK 3' }, - { id: 5748, name: 'K4', code: 'TK 4' }, - { id: 5749, name: 'K5', code: 'TK 5' }, - { id: 5750, name: 'K6', code: 'TK 6' }, - { id: 5751, name: 'K7', code: 'TK 7' }, - { id: 5752, name: 'K11', code: 'TK 11' }, - { id: 5753, name: 'K12', code: 'TK 12' }, - { id: 5801, name: 'K16', code: 'TK 16' }, - { id: 5802, name: 'K17', code: 'TK 17' }, - { id: 5803, name: 'K18', code: 'TK 18' }, - { id: 5804, name: 'K19', code: 'TK 19' }, - { id: 5833, name: 'H2', code: 'HUOM2' } ] }, - { profile: - { id: 6, - name: 'TALI SULKAPALLO', - startTime: '06:30', - endTime: '22:30' }, - roomParts: - [ { id: 5759, name: 'KENTT� 1', code: 'SK 1' }, - { id: 5760, name: 'KENTT� 2', code: 'SK 2' }, - { id: 5761, name: 'KENTT� 3', code: 'SK 3' }, - { id: 5762, name: 'KENTT� 4', code: 'SK 4' } ] }, - { profile: - { id: 14, - name: 'HIEKKATEKONURMI', - startTime: '06:30', - endTime: '21:30' }, - roomParts: - [ { id: 5763, name: 'ULKO 1', code: 'UK 1' }, - { id: 5764, name: 'ULKO 2', code: 'UK 2' }, - { id: 5765, name: 'ULKO 3', code: 'UK 3' }, - { id: 5766, name: 'ULKO 4', code: 'UK 4' }, - { id: 5767, name: 'ULKO 5', code: 'UK 5' } ] }, - { profile: - { id: 13, - name: 'MASSAKENT�T', - startTime: '07:00', - endTime: '22:00' }, - roomParts: - [ { id: 5768, name: 'MASSA 6', code: 'MA6' }, - { id: 5827, name: 'MASSA 7', code: 'MA7' }, - { id: 5828, name: 'MASSA 8', code: 'MA8' }, - { id: 5829, name: 'MASSA 9', code: 'MA9' }, - { id: 5830, name: 'MASSA 10', code: 'MA10' }, - { id: 5831, name: 'MASSA 11', code: 'MA11' } ] }, - { profile: - { id: 3, - name: 'TAIVALLAHTI 1', - startTime: '06:30', - endTime: '23:30' }, - roomParts: - [ { id: 5811, name: 'K 1', code: 'K1' }, - { id: 5812, name: 'K 2', code: 'K2' }, - { id: 5813, name: 'K 3', code: 'K3' } ] }, - { profile: - { id: 4, - name: 'TAIVALLAHTI 2', - startTime: '06:00', - endTime: '23:00' }, - roomParts: - [ { id: 5814, name: 'K 4', code: 'K4' }, - { id: 5815, name: 'K 5', code: 'K5' }, - { id: 5816, name: 'K 6', code: 'K6' } ] }, - { profile: - { id: 18, - name: 'TAIVALLAHTI MASSA', - startTime: '06:00', - endTime: '22:00' }, - roomParts: [ { id: 5817, name: 'MASSAKENTT�', code: 'MASSA' } ] } ] \ No newline at end of file diff --git a/scripts/fetchPricesOnline.js b/scripts/fetchPricesOnline.js index d22a4d3..d7be027 100755 --- a/scripts/fetchPricesOnline.js +++ b/scripts/fetchPricesOnline.js @@ -1,3 +1,65 @@ #!/usr/bin/env node -// wget -q -O - "https://meilahti.slsystems.fi/booking/create-booking?alkuaika=2019-12-31+14:00:00&kesto=60&resid=7" | grep € -console.log('Not implemented yet!') +const request = require('request') +const util = require('util') +var DateTime = require('dateutils').DateTime +var DateLocale = require('dateutils').DateLocale + +const urls = { + taivallahti: date => `https://varaukset.talintenniskeskus.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=46`, + tali: { + indoor: date => `https://varaukset.talintenniskeskus.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=1` + }, + kulosaari: { + indoor: date => `https://puhoscenter.slsystems.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=1`, + bubble: date => `https://puhoscenter.slsystems.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=3`, + + }, + meilahti: { + indoor: date => `https://meilahti.slsystems.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=6`, + bubble: date => `https://meilahti.slsystems.fi/booking/create-booking?alkuaika=${date}&kesto=60&resid=2` + }, + herttoniemi: { // vanha + indoor: date => `https://www.slsystems.fi/fite/ftpages/ft-varaus-input-01.php?laji=1&res=4&pvm=2020-01-05&klo=21:00:00&kesto=01:00:00`, + bubble: date => `https://www.slsystems.fi/fite/ftpages/ft-varaus-input-01.php?laji=1&res=12&pvm=2020-01-05&klo=21:00:00&kesto=01:00:00` + }, // vanha + merihaka: date => `https://www.slsystems.fi/meripeli/ftpages/ft-varaus-input-01.php?laji=3&res=26&pvm=2020-01-23&klo=08:30:00&kesto=01:00:00`, + // vanha + tapiola: date => `https://www.slsystems.fi/tennispuisto/ftpages/ft-varaus-input-01.php?laji=1&res=3&pvm=2020-01-16&klo=08:30:00&kesto=01:00:00`, + // vanha + laajasalo: date => `https://www.slsystems.fi/laajasalonpalloiluhallit/ftpages/ft-varaus-input-01.php?laji=1&res=1&pvm=2020-01-05&klo=22:00:00&kesto=01:00:00`, + hiekkaharju: {indoor: 1018267466, bubble: 692647002} +} + +const parsePrice = markup => { + return parseInt(markup.match(/.*(\d+)\s*€/)[1], 10) +} + +const getFor = async (dateTime) => { + const resid = 7 + const url = `https://meilahti.slsystems.fi/booking/create-booking?alkuaika=${dateTime.toString().replace('T', '+')}&kesto=60&resid=${resid}` + console.log('Getting price for ', url) + const res = await util.promisify(request.get)({ + jar: true, + url + }) + return parsePrice(res.body) +} +//su=0 + +const range = size => [...Array(size).keys()] +const main = async () => { + const start = DateTime.today().plusDays(7).getFirstDateOfWeek(DateLocale.FI) + const times = {} + for (let x in range(34)) { + const time = (60 + (x * 5)) + const dates = [] + for (let x2 in range(6)) { + const date = await getFor(start.plusMinutes((6 * 60) + (x * 30)).plusDays(x2)) + dates.push(date.toString()) + } + times[time] = dates + } + console.log(times) +} + +main() diff --git a/scripts/updateProfiles.js b/scripts/updateProfiles.js deleted file mode 100755 index 8ccce65..0000000 --- a/scripts/updateProfiles.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node -const fs = require('fs') -const format = require('../src/format') -const webTimmi = require('../src/dao/webTimmi') - -const fileName = 'profiles.js' - -webTimmi.getLatestProfiles.onValue(data => fs.writeFileSync(__dirname + '/../generated/' + fileName, format.formatModule(data)))