No description
| .cursor/rules | ||
| f | ||
| requirements | ||
| .gitignore | ||
| .python-version | ||
| CLAUDE.md | ||
| cp-tickets.py | ||
| main.py | ||
| pyproject.toml | ||
| README.md | ||
| util.py | ||
| uv.lock | ||
| wmill-lock.yaml | ||
| wmill.yaml | ||
Playwright Scripts
coms
playwright install chromium
python activobank.py
wmill
# installs globaly for the user (without -g then it's for this repo onmly)
mise use -g npm:windmill-cli
# update (finds the most strict, either local or user)
mise upgrade npm:windmill-cli
# udpate wmill script, lock, args and any other metadata
wmill script generate-metadata
# sync local to/from workspace (DESTRUCTIVE!!!)
wmill sync push
wmill sync pull
CLI examples
$uv run python cp-tickets.py list lx porto 2025-09-21 --ap
Searching trips from Lisboa Santa Apolonia to Porto Campanha on 2025-09-21
Found 14 trips:
TrainTrip(servico='AP 131', start_at='07:00', stop_at='09:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 121', start_at='08:00', stop_at='10:55', duration='02h55', price='€ 34,60', promo='')
TrainTrip(servico='IC 721', start_at='09:30', stop_at='12:43', duration='03h13', price='€ 27,40', promo='')
TrainTrip(servico='IC 621', start_at='11:30', stop_at='14:43', duration='03h13', price='€ 27,40', promo='')
TrainTrip(servico='AP 133', start_at='14:00', stop_at='16:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='IC 523', start_at='15:30', stop_at='18:43', duration='03h13', price='€ 27,40', promo='')
TrainTrip(servico='AP 135', start_at='16:00', stop_at='18:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 127', start_at='17:00', stop_at='19:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='IC 731', start_at='17:30', stop_at='20:43', duration='03h13', price='€ 27,40', promo='')
TrainTrip(servico='AP 137', start_at='18:00', stop_at='20:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='IC 515 | AP 186', start_at='18:30', stop_at='21:48', duration='03h18', price='€ 36,85', promo='')
TrainTrip(servico='IC 723', start_at='19:30', stop_at='22:43', duration='03h13', price='€ 27,40', promo='')
TrainTrip(servico='AP 129', start_at='20:00', stop_at='22:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='IC 529', start_at='22:00', stop_at='01:13', duration='03h13', price='€ 27,40', promo='')
Por omissão, os IC são sempre mostrados.
$uv run python cp-tickets.py list lx porto 2025-09-21 --ap --no-ic
Searching trips from Lisboa Santa Apolonia to Porto Campanha on 2025-09-21
Found 7 trips:
TrainTrip(servico='AP 131', start_at='07:00', stop_at='09:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 121', start_at='08:00', stop_at='10:55', duration='02h55', price='€ 34,60', promo='')
TrainTrip(servico='AP 133', start_at='14:00', stop_at='16:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 135', start_at='16:00', stop_at='18:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 127', start_at='17:00', stop_at='19:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 137', start_at='18:00', stop_at='20:48', duration='02h48', price='€ 34,60', promo='')
TrainTrip(servico='AP 129', start_at='20:00', stop_at='22:48', duration='02h48', price='€ 34,60', promo='')
$ uv run python cp-tickets.py buy lx porto 2025-09-21 'IC 721'