A website to find dance events in Vienna.
A couple of my friends and I love to go (ballroom) dancing in Vienna. However, looking up a couple websites every week can be quite tedious. So this tool crawls all of them normalizes them into a uniform format and outputs them as html, csv, json and as iCalendar to embed in your calendar.
At the moment it downloads from:
You need python3 (only tested with python 3.13) with pip and venv, and node with npm.
npm install
npx tailwindcss -i template.css -o index.css
python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
python main.py
Note: While working on the frontend it might be quite handy to add the
--watch
flag to the tailwind command so that it will automatically rebuild the
css.
usage: DanceTime [-h] [--output OUTPUT]
Aggregate dance envents and compile them into multiple formats.
options:
-h, --help show this help message and exit
--output OUTPUT folder into which the outputs should be written.
We directly deploy the main branch to dancetime.flofriday.dev with our CI/CD GitHub Action.
On the linux server we have a systemd timer setup that runs the script hourly and the generated files are statically hosted with nginx.
You can see the systemd configuration in dancetime.service
and
dancetime.timer
.
Contributions are very welcome. At the moment I only ask you to use ruff to format your code. You are awesome 😊🎉
ruff format
ruff check --fix