46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
# Holy Heck I Really Like Stats
|
|
|
|
Pokemon Showdown data processing, mostly for HHIRLLL's Pokemon league. Ugly as
|
|
fuck.
|
|
|
|
Also includes a bot to automate replay ingestion and provide misc utilities.
|
|
|
|
## Requirements
|
|
|
|
- Python with sqlite
|
|
- requests
|
|
|
|
## Usage
|
|
|
|
```sh
|
|
$ ./index.py -h
|
|
usage: hhirlstats [-h] [-v] [-C] [-t FILE] [-o FILE] replay [replay ...]
|
|
|
|
extracts stats from a Showdown replay
|
|
|
|
positional arguments:
|
|
replay replay ID or URL
|
|
|
|
options:
|
|
-h, --help show this help message and exit
|
|
-v, --verbose add debugging info (default: None)
|
|
-C, --no-cache fetch replays instead of using cache (default: False)
|
|
-t FILE, --teams FILE
|
|
JSON file defining players to teams (default: teams.json)
|
|
-o FILE, --output FILE
|
|
output data file (default: data.db)
|
|
```
|
|
|
|
Replay files are cached after they're downloaded for the first time save issuing
|
|
requests to Showdown on every new run.
|
|
|
|
Run the program once with all your replays (or once for each replay), then run
|
|
whatever SQL queries against the data file (default `data.db`) you want.
|
|
|
|
## Future work
|
|
|
|
- include timestamps in logs to correlate KOs with the mon that KOed
|
|
- calculate gametime based on active turns rather than moves used
|
|
- also solves the issue where paralyzed/confused turns are not counted
|
|
- use asyncio in bot
|