README.md 2.19 KB
Newer Older
rakshazi's avatar
rakshazi committed
1
# Warcraft Raid Boss Top [![GoDoc](https://godoc.org/gitlab.com/rakshazi/wrbt?status.svg)](https://godoc.org/gitlab.com/rakshazi/wrbt)
rakshazi's avatar
init  
rakshazi committed
2

rakshazi's avatar
rakshazi committed
3
That tool grabs data from multiple sources to produce list of WoW bosses with count of kills/wipes in each raid difficulty
rakshazi's avatar
init  
rakshazi committed
4 5


rakshazi's avatar
rakshazi committed
6
<!-- vim-markdown-toc GitLab -->
7

rakshazi's avatar
rakshazi committed
8 9 10
* [Algorithm](#algorithm)
* [Usage](#usage)
    - [Usefull tools](#usefull-tools)
rakshazi's avatar
rakshazi committed
11
    - [Build](#build)
rakshazi's avatar
rakshazi committed
12 13 14 15 16
    - [Commands](#commands)
    - [run](#run)
        + [run full flow](#run-full-flow)
        + [run only export](#run-only-export)
    - [Optmimize db (optional)](#optmimize-db-optional)
rakshazi's avatar
rakshazi committed
17

rakshazi's avatar
rakshazi committed
18
<!-- vim-markdown-toc -->
rakshazi's avatar
rakshazi committed
19

rakshazi's avatar
rakshazi committed
20
## Algorithm
rakshazi's avatar
rakshazi committed
21

rakshazi's avatar
rakshazi committed
22 23 24 25 26
1. Grabs guilds from [Raider.IO](https://raider.io) raid progression API _Special thanks to Ludicrous Speed! Guys, you did awesome service!_
2. Grabs reports list for each guild from [Warcraft Logs](https://www.warcraftlogs.com/) API _Special thanks to Kihra! Without you a lot of things in WoW would be much worse!_
3. Parses each report from list (Warcraft Logs API) and gets boss kills/wipes (global counters for each boss/difficulty)
4. Grabs boss info (npc id, name, raid name) from Warcraft Logs API.
5. Export merged data to json
27

rakshazi's avatar
rakshazi committed
28 29 30 31 32 33
## Usage

### Usefull tools

* [BBolt cli](https://github.com/etcd-io/bbolt#installing) - to optimize db file

rakshazi's avatar
rakshazi committed
34 35 36 37 38 39
### Build

```bash
CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -v -a -installsuffix cgo -o wrbt
```

rakshazi's avatar
rakshazi committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
### Commands

### run

```bash
wrbt --apikey APIKEY --db BBOLT_DB_FILE --workers WORKERS_COUNT --export TARGET_JSON --only WHAT_TO_DO
```

* **APIKEY** _required_ - Warcraft Logs API Key, you can get it in your profile settings on Warcraft Logs
* **BBOLT_DB_FILE** - Main database file path, default: `./bolt.db`
* **WORKERS_COUNT** - Amount of parallel workers, default: `5`
* **TARGET_JSON** - Exported data json file path, default: `./export.json`
* **WHAT_TO_DO** - If you want to do only one thing (eg: export data), you can set it to that flag, default: `all`

> help available in cli: `wrbt -h`

#### run full flow

```bash
wrbt --apikey APIKEY
```

#### run only export

```bash
wrbt --apikey APIKEY --only export
```

### Optmimize db (optional)

> **NOTE**: requires bbolt cli
71 72 73 74 75

```bash
bbolt compact -o new.db bolt.db
mv new.db bolt.db
```