TABLEMATCH scrapes a list of shows from CAGEMATCH.net and generates a static site of statistics about those shows.
TABLEMATCH uses Observable Framework to visualise statistics about wrestling shows in the style of something like setlist.fm. It gets its data from a list of shows scraped from CAGEMATCH.net and parsed to a standard JSON format by a Python CLI library (see its README
for more info). These are then loaded into a DuckDB database by a dataloader, which is then used to calculate stats.
First to convert the list of shows to JSON:
cd py/
uv run main.py shows.yaml out
To run a local autoupdating server:
npm run dev
To build a static site as a /dist
folder:
npm run build
- Observable Framework, see also the Framework README at
README-Framework.md
- See Python dependencies in the README in the Python folder
The list of attended shows is sourced from a YAML file. My personal copy for reference is at py/shows.yaml
.
At it's most basic, the file is just a top level YAML list of show URLs:
- https://www.cagematch.net/?id=1&nr=244194
- https://www.cagematch.net/?id=1&nr=241265
- https://www.cagematch.net/?id=1&nr=244175
For more in depth info on the options and Python script, check the README in the Python folder.
The site expects to load JSON files representing shows from py/out/
. While these can be generated by the Python CLI, you can also write your own, for example for shows that CAGEMATCH doesn't have in it's database. Use the example of a show generated by the CLI as comparison, and keep it in py/out/
. The CLI will only overwrite your file if it has the same name as one it generates.