Files
wotbreplay-parser/README.md
T

61 lines
2.1 KiB
Markdown
Raw Normal View History

2022-12-02 22:56:01 +01:00
# `wotbreplay-parser`
2022-12-02 22:55:22 +01:00
World of Tanks Blitz replay parser in Rust.
2022-12-02 23:57:34 +01:00
[![Crates.io](https://img.shields.io/crates/v/wotbreplay-parser)](https://crates.io/crates/wotbreplay-parser)
2022-12-02 22:55:22 +01:00
[![Last commit](https://img.shields.io/github/last-commit/eigenein/wotbreplay-parser)](https://github.com/eigenein/wotbreplay-parser/commits/main)
2023-04-17 00:11:52 +02:00
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/eigenein/wotbreplay-parser/check.yaml)](https://github.com/eigenein/wotbreplay-parser/actions)
2022-12-02 23:57:34 +01:00
![License: MIT](https://img.shields.io/crates/l/wotbreplay-parser)
2022-12-03 00:01:45 +01:00
[![docs.rs](https://img.shields.io/docsrs/wotbreplay-parser)](https://docs.rs/wotbreplay-parser)
2022-12-02 22:55:22 +01:00
2022-12-03 20:52:51 +01:00
## Quickstart
```rust
use std::fs::File;
use anyhow::Result;
2023-04-29 22:20:46 +02:00
use wotbreplay_parser::models::battle_results::TeamNumber;
use wotbreplay_parser::replay::Replay;
2022-12-03 20:52:51 +01:00
fn main() -> Result<()> {
2023-04-29 22:52:24 +02:00
let battle_results = Replay::open(File::open("tests/replays/player_results.wotbreplay")?)?
2022-12-03 20:52:51 +01:00
.read_battle_results()?;
2023-04-29 22:52:24 +02:00
assert_eq!(battle_results.timestamp, 1670083956);
2022-12-03 20:52:51 +01:00
assert_eq!(battle_results.players.len(), 14);
2023-04-29 22:52:24 +02:00
assert_eq!(battle_results.players[0].account_id, 595693744);
assert_eq!(battle_results.players[0].info.nickname, "yuranhik_hustriy26");
assert_eq!(battle_results.players[0].info.team(), TeamNumber::One);
assert_eq!(battle_results.players[0].info.platoon_id, Some(545104609));
2022-12-03 20:52:51 +01:00
assert_eq!(battle_results.players[1].info.nickname, "SNAK_THE_RIPPER");
2023-04-29 22:52:24 +02:00
assert_eq!(battle_results.players[1].info.team(), TeamNumber::Two);
assert_eq!(battle_results.players[1].info.platoon_id, Some(273692628));
2022-12-03 20:52:51 +01:00
Ok(())
}
```
2022-12-02 22:53:39 +01:00
## Replay structure
`*.wotbreplay` is a ZIP-archive containing:
- `battle_results.dat`
- `meta.json`
- `data.wotreplay`
### `battle_results.dat`
This is a [pickled](https://docs.python.org/3/library/pickle.html) 2-tuple:
- Some big number
- Battle results serialized with [Protocol Buffers](https://developers.google.com/protocol-buffers)
2022-12-02 22:58:01 +01:00
#### Useful tools
- [Protobuf Decoder](https://protobuf-decoder.netlify.app/)
- [`protobuf-inspector`](https://github.com/mildsunrise/protobuf-inspector)
- [Hex Fiend](https://hexfiend.com/)
2022-12-02 22:53:39 +01:00
### `meta.json`
### `data.wotreplay`