Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 31 additions & 12 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -1,27 +1,46 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"version": "2.0.0",
"command": "npm",
"isShellCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"tasks": [
{
"taskName": "install",
"args": ["install"]
"label": "install",
"type": "shell",
"args": [
"install"
],
"problemMatcher": []
},
{
"taskName": "build",
"args": ["run", "build"]
"label": "build",
"type": "shell",
"args": [
"run",
"build"
],
"problemMatcher": [],
"group": {
"_id": "build",
"isDefault": false
}
},
{
"taskName": "update",
"args": ["update"]
"label": "update",
"type": "shell",
"args": [
"update"
],
"problemMatcher": []
},
{
"taskName": "test",
"args": ["run", "test"]
"label": "test",
"type": "shell",
"args": [
"run",
"test"
],
"problemMatcher": []
}
]
}
27 changes: 27 additions & 0 deletions .vscode/tasks.json.old
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "npm",
"isShellCommand": true,
"showOutput": "always",
"suppressTaskName": true,
"tasks": [
{
"taskName": "install",
"args": ["install"]
},
{
"taskName": "build",
"args": ["run", "build"]
},
{
"taskName": "update",
"args": ["update"]
},
{
"taskName": "test",
"args": ["run", "test"]
}
]
}
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ If you wish to use themeparks with a proxy, you can pass a proxy agent when you
* Busch Gardens Williamsburg (ThemeParks.Parks.BuschGardensWilliamsburg)
* Liseberg (ThemeParks.Parks.Liseberg)
* Toverland (ThemeParks.Parks.Toverland)
* Walibi Holland (ThemeParks.Parks.WalibiHolland)

<!-- END_SUPPORTED_PARKS_LIST -->

Expand Down Expand Up @@ -228,6 +229,7 @@ If you wish to use themeparks with a proxy, you can pass a proxy agent when you
|Busch Gardens Williamsburg|&#10003;|&#10003;|&#10007;|
|Liseberg|&#10003;|&#10003;|&#10007;|
|Toverland|&#10003;|&#10003;|&#10007;|
|Walibi Holland|&#10003;|&#10007;|&#10003;|

<!-- END_PARK_FEATURES_SUPPORTED -->

Expand Down Expand Up @@ -380,7 +382,7 @@ Prints:
* Busch Gardens Williamsburg [(37°18′10.15″N, 76°59′16.96″W)]: (America/New_York)
* Liseberg [(57°41′46.49″N, 11°59′8.33″E)]: (Europe/Stockholm)
* Toverland [(51°23′48.78″N, 5°59′5.16″E)]: (Europe/Amsterdam)

* Walibi Holland [(52°44′8.68″N, 5°76′4.77″E)]: (Europe/Amsterdam)
<!-- END_PARK_TIMEZONE_LIST -->

## Development
Expand Down
18 changes: 16 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ const HeidePark = require('./heidepark/heidepark');
const Liseberg = require('./liseberg/liseberg');
// Toverland
const Toverland = require('./toverland/toverland');
// Walibi Holland
const WalibiHolland = require('./walibi/walibiholland');
// Walibi Belgium
const WalibiBelgium = require('./walibi/walibibelgium');
// Walibi Rhône-Alpes
const WalibiRhoneAlpes = require('./walibi/walibirhonealpes');

// === Expose Parks ===

Expand Down Expand Up @@ -183,8 +189,12 @@ exports.AllParks = [
BuschGardensWilliamsburg,
// Liseberg Park
Liseberg,
// Liseberg Park
// Toverland
Toverland,
// Walibi Parks
WalibiHolland,
WalibiBelgium,
WalibiRhoneAlpes,
];

// export all parks by name in a JavaScript object too
Expand Down Expand Up @@ -275,6 +285,10 @@ exports.Parks = {
BuschGardensWilliamsburg,
// Liseberg
Liseberg,
// Liseberg
// Toverland
Toverland,
// Walibi Parks
WalibiHolland,
WalibiBelgium,
WalibiRhoneAlpes,
};
2 changes: 1 addition & 1 deletion lib/location.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const Moment = require('moment-timezone');

// a basic debug log wrapper
const DebugLog = require('./debugPrint.js');
const DebugLog = require('./debugPrint');

// symbols
const sTimezone = Symbol('Timezone');
Expand Down
1,162 changes: 1,162 additions & 0 deletions lib/mocks/walibiHollandRides.mock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions lib/mocks/walibiOpeningHours.mock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions lib/mocks/walibiRides.mock
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"name":"MonORail (migrated)","code":null,"id":"5820ac94-c966-41a0-834c-7c309a0a5534","status":"closed","waitingTime":0,"attractionID":""},{"name":"Generator (migrated)","code":null,"id":"3d49e5a4-24e8-4ba3-b6f7-796da1f54494","status":"closed","waitingTime":0,"attractionID":""},{"name":"Timber (migrated)","code":null,"id":"4a2b7e3f-cb8d-4d7a-9904-123192f88fdb","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Totem (migrated)","code":null,"id":"36f2e6c2-c89d-4dec-8b62-bef6411ed575","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Galion (migrated)","code":null,"id":"32dc274e-fc56-4add-a860-6f4a228a6587","status":"closed","waitingTime":0,"attractionID":""},{"name":"Stock Cars (migrated)","code":"Stock Cars","id":"01fe690e-5ab9-4e93-b1f3-1944dbfa07d6","status":"closed","waitingTime":0,"attractionID":""},{"name":"WoodStock Express (migrated)","code":null,"id":"c7926699-b758-41cc-9ba0-d0208cad79f7","status":"closed","waitingTime":0,"attractionID":""},{"name":"Bambooz River (migrated)","code":null,"id":"e82ac8cc-00a7-41ff-93c7-fe21d749d350","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Coccinelle (migrated)","code":null,"id":"16df5fde-e290-49a3-8d18-7cf9751238f1","status":"closed","waitingTime":0,"attractionID":""},{"name":"Gold River (migrated)","code":null,"id":"ddf89c90-c8c0-469c-a257-04b4d125d135","status":"closed","waitingTime":0,"attractionID":""},{"name":"On Air (migrated)","code":null,"id":"a7d5fd65-1642-42bd-bb12-b3e00824c60e","status":"closed","waitingTime":0,"attractionID":""},{"name":"Bamba (migrated)","code":null,"id":"b6f25871-b91f-4770-a263-4a1ee2edfe91","status":"closed","waitingTime":5,"attractionID":""},{"name":"Carrousel (migrated)","code":null,"id":"a672f581-71c8-45f8-a3b0-9f634dcecd79","status":"closed","waitingTime":0,"attractionID":""},{"name":"Melody Road (migrated)","code":null,"id":"76144175-658e-43ce-b872-b60b7315b8b2","status":"closed","waitingTime":0,"attractionID":""},{"name":"Mini Ferme (migrated)","code":null,"id":"9d5d1c5d-4de8-4e6f-b235-503793ba6ccc","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Tam Tam Aventure (migrated)","code":null,"id":"e6f79048-1971-4a56-be28-6f0e76d08b0d","status":"closed","waitingTime":0,"attractionID":""},{"name":"WAB Tour (migrated)","code":null,"id":"654537c6-24b2-4989-87a7-b2ac752d5e65","status":"closed","waitingTime":0,"attractionID":""},{"name":"Surf Music (migrated)","code":null,"id":"7170b540-4ce5-40a8-a43f-59da4d61ba84","status":"closed","waitingTime":0,"attractionID":""},{"name":"Aire de Jeux Explorer Adventure (migrated)","code":null,"id":"18098c94-2343-4ad2-8bb4-9cafbc04b186","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Volt-O-Vent (migrated)","code":null,"id":"8498475f-339c-4150-8896-fb7db3c94c57","status":"closed","waitingTime":0,"attractionID":""},{"name":"WAB Band Tour (migrated)","code":null,"id":"71702167-2e78-4344-8863-2fe1ec9fa345","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Chevauch\u00e9e (migrated)","code":null,"id":"77be31b8-c366-4cac-93b3-87339418ec7d","status":"closed","waitingTime":0,"attractionID":""},{"name":"Concert\u0027O (migrated)","code":null,"id":"4c6f49cc-645b-4ec3-9de9-4beea4fdec39","status":"closed","waitingTime":0,"attractionID":""},{"name":"Be Bop (migrated)","code":null,"id":"b72991bc-7b3f-4f54-a26d-815484ae3e37","status":"open","waitingTime":5,"attractionID":""},{"name":"Les Vagues du Cap Horn (migrated)","code":null,"id":"98b5fc0a-a461-4027-aab0-cbdbc10a68ae","status":"closed","waitingTime":0,"attractionID":""},{"name":"Hurricane (migrated)","code":null,"id":"50f1dc18-1f28-4630-a33a-102ba8526262","status":"closed","waitingTime":0,"attractionID":""},{"name":"Balloon Race (migrated)","code":null,"id":"5010d26a-671a-48ea-9af6-fba3d1baffe2","status":"closed","waitingTime":0,"attractionID":""},{"name":"Dock\u0027N Roll (migrated)","code":null,"id":"5a1ccef0-4a22-4c74-9168-ba369cf49918","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Baie des Pirates (migrated)","code":null,"id":"d9eb60ac-7a76-488a-81f1-23ffce42e00c","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Lagon Tropical (migrated)","code":null,"id":"4b4de465-7d3c-4850-aa9e-a697134ccb1c","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Serpent de Mer (migrated)","code":null,"id":"fbd60ab0-0094-49ae-a3fb-c10de4aa0968","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Squale (migrated)","code":null,"id":"539a298e-62ea-41d7-b72d-043e8ca31f33","status":"closed","waitingTime":0,"attractionID":""},{"name":"Coursaire (migrated)","code":null,"id":"2982277f-c646-46a4-a48f-faf8c1a964be","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Tornado (migrated)","code":null,"id":"10963a72-bb8c-4eec-9c8a-119ac8f04187","status":"closed","waitingTime":0,"attractionID":""},{"name":"Aire de jeux Festival City (migrated)","code":null,"id":"7eea86b3-4074-477d-b635-153b7c16d7d5","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Les P\u0027tits Chaudrons (migrated)","code":null,"id":"2be28e43-3ceb-4ce0-a15d-8bc818889406","status":"closed","waitingTime":0,"attractionID":""},{"name":"MonORail","code":"MONORAIL","id":"570fc4e8-6841-40f8-bf5d-1fb30136cfeb","status":"closed","waitingTime":0,"attractionID":""},{"name":"Generator","code":"GENERATOR","id":"2d18fe84-54b0-4cf8-9068-a0648d6dba8c","status":"closed","waitingTime":0,"attractionID":""},{"name":"Timber","code":"TIMBER","id":"4acf5d16-c168-4202-98fb-cefd7461c821","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Totem","code":"LE_TOTEM","id":"8fafe63c-88db-400e-998e-4d3bae1c08d9","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Galion","code":"LE_GALION","id":"1c3ba56b-36c0-4da1-a899-4a5b34a6d2ab","status":"closed","waitingTime":0,"attractionID":""},{"name":"WoodStock Express","code":"WOODSTOCK_EXPRESS","id":"9d008ab2-8d14-4b76-a054-fedd289501ed","status":"closed","waitingTime":0,"attractionID":""},{"name":"Bambooz River","code":"BAMBOOZ_RIVER","id":"278082fe-321c-4448-ac39-47b15cd48603","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Coccinelle","code":"LA_COCCINELLE","id":"1eae4849-c21d-4b34-9f36-6b92068e705d","status":"closed","waitingTime":0,"attractionID":""},{"name":"Gold River","code":"GOLD_RIVER","id":"6be1e693-088e-45bf-85e0-e9ee9a9ac573","status":"closed","waitingTime":0,"attractionID":""},{"name":"On Air","code":"ON_AIR","id":"2ba6a6e8-97d2-411c-aa98-2165412bdb04","status":"closed","waitingTime":0,"attractionID":""},{"name":"Bamba!","code":"BAMBA","id":"0553bcd4-de38-4c73-a99a-621bdbcc4de7","status":"closed","waitingTime":0,"attractionID":""},{"name":"Carrousel","code":"CARROUSEL","id":"7165c2c6-49be-4c36-98a9-cecf1283cd3d","status":"closed","waitingTime":0,"attractionID":""},{"name":"Melody Road","code":"MELODY_ROAD","id":"d52c20e3-3bfb-4659-a3db-78d3baacc438","status":"closed","waitingTime":0,"attractionID":""},{"name":"Mini Farm","code":null,"id":"b064be2f-a78e-461d-9620-7f5a9a2a32a7","status":"closed","waitingTime":0,"attractionID":""},{"name":"Tam Tam Aventure","code":"TAM_TAM_AVENTURE","id":"49cce00b-6431-4dc9-b8ab-f91de7b71c08","status":"closed","waitingTime":0,"attractionID":""},{"name":"Festival Station","code":"FESTIVAL_STATION","id":"505c84b6-fe0c-4773-9b8c-55b6bb2645d4","status":"closed","waitingTime":0,"attractionID":""},{"name":"Surf Music","code":"SURF_MUSIC","id":"03a61f83-e62e-4ea1-9a49-54b7d29a26d0","status":"closed","waitingTime":0,"attractionID":""},{"name":"Explorer Adventure Play Area","code":"aire_de_jeux_explorer_aventure","id":"36883ac8-90ce-49a2-a602-0a68f38216e7","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Volt-O-Vent","code":"VOLT_O_VENT","id":"6b59d74c-0391-49fb-a656-9cafb52f1408","status":"closed","waitingTime":0,"attractionID":""},{"name":"WAB Band Tour","code":"WAB_BAND_TOUR","id":"259db3d7-ea44-4352-beea-7b9791ab1efe","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Chevauch\u00e9e","code":"LA_CHEVAUCHEE","id":"dda0de92-3663-4788-87be-8e085bec4da4","status":"closed","waitingTime":0,"attractionID":""},{"name":"Concert\u0027O","code":"CONCERT_O","id":"f4f6e5e3-f240-4bb7-b439-34588fa96cc6","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Petit Vapeur","code":"LE_PETIT_VAPEUR","id":"26eede1a-4b40-48df-901a-1d7a726b1669","status":"closed","waitingTime":0,"attractionID":""},{"name":"Les Vagues du Cap Horn","code":null,"id":"44200b52-fa1e-4d52-bc70-bdcc3a80ac49","status":"closed","waitingTime":0,"attractionID":""},{"name":"Hurricane","code":"HURRICANE","id":"afec2298-9daf-43f6-b550-e780eea651f3","status":"closed","waitingTime":0,"attractionID":""},{"name":"Balloon Race","code":"BALLOON_RACE","id":"37f6c9ab-56f6-4755-a524-6b36eaf36932","status":"closed","waitingTime":0,"attractionID":""},{"name":"Dock\u0027N Roll","code":"DOCK_N_ROLL","id":"eea1d2b0-b136-4dad-a64c-d70e70cf006f","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Crique des Moussaillons","code":null,"id":"8763b4ea-3e7b-4464-a6ee-2f0fdf0fbb14","status":"closed","waitingTime":0,"attractionID":""},{"name":"La Baie des Pirates","code":null,"id":"95cb545f-009b-4f5f-ab24-dddaa9926a16","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Lagon Tropical","code":null,"id":"3813f44f-9964-4a6a-87b9-61392072d81c","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Serpent de Mer","code":null,"id":"494858ac-77ad-46fd-b556-c9efda56bccf","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Squale","code":null,"id":"d02ae432-f151-4fd4-9468-f9c64b2a55b5","status":"closed","waitingTime":0,"attractionID":""},{"name":"Coursaire","code":null,"id":"f56236ca-e1a5-427e-955d-9932a0ebd115","status":"closed","waitingTime":0,"attractionID":""},{"name":"Le Tornado","code":null,"id":"d773f5e5-f32b-4e09-b193-bcd3da1ab91e","status":"closed","waitingTime":0,"attractionID":""},{"name":"Festival City play area","code":null,"id":"2672d3cf-dea9-405d-9f5d-a46dc96c9cd6","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Les P\u0027tits Chaudrons","code":"LES_PTITS_CHAUDRONS","id":"03b6f933-e825-41cf-8aea-04fa44801bd4","status":"closed","waitingTime":0,"attractionID":""},{"name":"Mystic","code":"MYSTIC","id":"101be7ab-dcb8-4aaa-ab20-12a9b75a50c6","status":"closed","waitingTime":0,"attractionID":""},{"name":"AirBoat","code":"AIRBOAT","id":"58efce2f-0892-454c-9895-71d9a5169f64","status":"closed","waitingTime":0,"attractionID":""},{"name":"Tiki Academy","code":"TIKI_ACADEMY","id":"a77a6c77-0525-4b29-806b-7a2871e82979","status":"closed","waitingTime":0,"attractionID":""},{"name":"Exotic Island play area 3-6 years old","code":null,"id":"a22f947f-9b87-4f9e-94af-5a8890d54434","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":" Exotic Island Play Area 7-12 years old","code":null,"id":"658cf873-9bc5-4875-87d9-ad0d887271c1","status":"open","waitingTime":0,"attractionID":"","waitingTimeDescription":"Acc\u00e8s libre"},{"name":"Le pouvoir de Ga\u00efa","code":null,"id":"dccc33cf-bed6-47bf-87c2-98ea89909306","status":"closed","waitingTime":0,"attractionID":""}]
140 changes: 140 additions & 0 deletions lib/walibi/walibi.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
const Moment = require('moment');

// include core Park class
const Park = require('../park');

class Walibi extends Park {
sWaitTimesURL = Symbol('Walibi API Waittimes URL');
sCalendarURL = Symbol('Walibi API Calendar URL');
sLangPref = Symbol('Language Preferences');

constructor(options = {}) {
const year = new Date().getFullYear();

options.name = options.name || 'Walibi Holland';

// Walibi Holland from Google maps
options.latitude = options.latitude || 52.44086770980989;
options.longitude = options.longitude || 5.764768927236082;

// Use the Android app's user-agent
options.useragent = options.useragent || 'okhttp/3.9.1';

// park's timezone
options.timezone = options.timezone || 'Europe/Amsterdam';

// inherit from base class
super(options);

// accept overriding the wait times URL
this[this.sWaitTimesURL] = options.waitTimesURL || 'https://www.walibi.be/en/api/waiting_time?_format=json';

// accept overriding the calendar URL
this[this.sCalendarURL] = options.calendarURL || `https://www.walibi.nl/en/api/calendar/${year}?_format=json`;

// accept overriding the language preference
this[this.sLangPref] = options.langPref || 'en-US';
}

get FastPass() {
return true;
}

/**
* parses the Walibi Holland rideInfo and updates the rides
* @param {Object[]} rideInfo An rideInfo Object from the API
*/
updateWalibiRides(rideInfo) {
rideInfo.forEach((ride) => {
const rideUpdate = {
waitTime: -1,
active: false,
status: 'Closed',
name: ride.name,
fastPass: false,
lastUpdate: new Date(),
meta: {
},
schedule: {
},
};

// TODO: Add more statuses as they get discovered
switch (ride.state) {
case 'closed':
// Do nothing, has already been set as default value.
break;
case 'open':
// TODO: Check what the exact value of this is in the JSON once the park is back open again!
rideUpdate.status = 'Operating';
rideUpdate.active = true;
rideUpdate.waitTime = Number(ride.waitingTime);
break;
case 'outOfOrder':
rideUpdate.status = 'Down';
rideUpdate.active = false;
break;
default:
// Do nothing, this is just for the sake of having a switch case default statement
}

this.UpdateRide(rideUpdate.name, rideUpdate);
});
}

FetchWaitTimes() {
return this.HTTP({
url: this[sWaitTimesURL],
returnFullResponse: true,
mock: 'walibiRides',
}).then((data) => {
this.updateWalibiRides(data.body);
return Promise.resolve();
});
}

updateWalibiOpeningHours(data) {
if (!data || !data.week || !Array.isArray(data.week)) {
return;
}

Object.keys(data.opening_hours).forEach((date) => {
let schedule = {};
if (data.opening_hours.date.status === 'closed') {
schedule.type = 'Closed';
} else {
schedule = {
startDate: Moment.tz(date, 'DD/MM/YYYY', this.Timezone),
endDate: Moment.tz(date, 'YYYY-MM-DD', this.Timezone),
openingTime: Moment.tz(data.opening_hours.date.mo_time, 'HH:mm', this.Timezone),
closingTime: Moment.tz(data.opening_hours.date.mc_time, 'HH:mm', this.Timezone),
};
}

this.Schedule.SetRange(schedule);
});
}

FetchOpeningTimes() {
return this.HTTP({
url: this[sCalendarURL],
returnFullResponse: true,
json: true,
user_agent: 'curl/7.73',
mock: 'walibiOpeningHours',
}).then((data) => {
this.updateWalibiOpeningHours(data.body);
return Promise.resolve();
});
}

/* eslint-disable class-methods-use-this */
// this park supports ride schedules
get SupportsRideSchedules() {
return true;
}
/* eslint-enable class-methods-use-this */
}

// export the class
module.exports = Walibi;
32 changes: 32 additions & 0 deletions lib/walibi/walibibelgium.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const Walibi = require('./walibi');

/**
* Walibi Belgium
* @class
* @extends Walibi
*/
class WalibiBelgium extends Walibi {
/**
* Create a new WalibiBelgium object
*/
constructor(options = {}) {
const year = new Date().getFullYear();

options.name = options.name || 'Walibi Belgium';
options.timezone = options.timezone || 'Europe/Brussels';
options.useragent = 'okhttp/3.9.1';

// set park's location as it's entrance
options.latitude = options.latitude || 50.701862579254744;
options.longitude = options.longitude || 4.593853329221812;

// Park API options
options.waitTimesURL = 'https://www.walibi.be/en/api/waiting_time?_format=json';
options.calendarURL = `https://www.walibi.be/en/api/calendar/${year}?_format=json`;

// inherit from base class
super(options);
}
}

module.exports = WalibiBelgium;
Loading