Author SHA1 Message Date
Jylpah 33b0efb48d Update 8.6 2022-01-22 22:27:34 +02:00
Jylpah 574fb95f00 Update 8.6 2021-12-20 10:15:47 +02:00
Jylpah fdc5db966e Update installation and usage instructions 2021-11-24 10:28:32 +02:00
Jylpah 65e4fd83d8 Update installation instructions 2021-11-24 09:48:39 +02:00
Jylpah e9451c7f5d Merge pull request #34 from Jylpah/stable-filters-update2
Fix --filters and improve performance when filtering
2021-11-23 21:42:45 +02:00
3 changed files with 168 additions and 31 deletions

No files matched your search

+25 -23
View File
@@ -1,5 +1,5 @@
# blitz-tools
Python scripts to analyze WoT Blitz replays and stats. All the scripts require [Python 3.7](https://www.python.org/downloads/) or higher. I am using 3.8 myself so you may have to change the Python interpreter version in the scripts' first line.
Python scripts to analyze WoT Blitz replays and stats. All the scripts require [Python 3.7](https://www.python.org/downloads/) or later.
### Replays
* [upload_wotb_replays.py](upload_wotb_replays.py): An asynchronous replay uploader.
@@ -13,46 +13,48 @@ Python scripts to analyze WoT Blitz replays and stats. All the scripts require [
* [blitzutils.py](blitzutils.py): A utils class for various Blitz related to functions. *Other scripts use this*, so you need to place it to the same folder with the other scripts
### Data
* [tanks.json](tanks.json): Tankopedia in WG JSON format extracted from the Blitz app files with [extract_tankopedia.py]](extractTankopedia.py]). Contains only limited information required by the scripts.
* [maps.json](maps.json): Blitz map names extracted from the Blitz app files with [extract_tankopedia.py]](extract_tankopedia.py]).
* [tanks.json](tanks.json): Tankopedia in WG JSON format extracted from the Blitz app files with [extract_tankopedia.py](extractTankopedia.py). Contains only limited information required by the scripts.
* [maps.json](maps.json): Blitz map names extracted from the Blitz app files with [extract_tankopedia.py](extract_tankopedia.py).
### Quick instructions
1. Install [Python 3.8](https://www.python.org/downloads/) on to your computer/laptop
2. Install the required Python modules: motor, aiohttp, aioconsole, aiofiles, aiosqlite, beautifulsoup4, lxml, xmltodict, progress
1. Install [Python 3.8](https://www.python.org/downloads/) or later to your computer/laptop
2. Install the required Python modules (see [requirements.txt](requirements.txt): motor, aiohttp, aioconsole, aiofiles, aiosqlite, beautifulsoup4, lxml, xmltodict, progress
```
# Remember to run the command with a Python interpreter >= 3.7
python -m pip install motor aiohttp aioconsole aiofiles aiosqlite beautifulsoup4 lxml xmltodict progress
python -m pip install -r requirements.txt
```
3. Download all the files including the [maps.json](maps.json) and [tanks.json](tanks.json) files. **The recommened way** is to install the scipts via `git clone`: [GitHub Desktop](https://desktop.github.com/) is an excellent GUI for git. This makes it easy to receive the updates via `git pull`.
4. Upload your replays.
3. Clone the repository. [GitHub Desktop](https://desktop.github.com/) is an excellent GUI for `git`. This makes it easy to receive the updates via `git pull`.
```
# Windows, run directly from Command Prompt or Powershell
# Check the options
git clone https://github.com/Jylpah/blitz-tools.git
```
4. Upload your replays with `upload_wotb_replays.py`
```
## Check the options
# Windows Command Prompt or Powershell
python.exe .\upload_wotb_replays.py --help
# Syntax
python.exe .\upload_wotb_replays.py REPLAY_FILE.wotbreplay
# Linux or Windows Subsystem for Linux (WSL)
./upload_wotb_replays.py --help
# Upload replays (Windows)
python.exe .\upload_wotb_replays.py REPLAY_FILE.wotbreplay DIR_WITH_REPLAYS
# example
python.exe .\upload_wotb_replays.py 20200223_0122__jylpah_T-54_grossberg.wotbreplay
# Linux
./upload_wotb_replays.py --help
```
5. Analyze replays.
5. Analyze replays with `analyze_wotb_replays.py`
```
# Windows, run directly from Command Prompt or Powershell
## Check options
# Windows Command Prompt or Powershell
python.exe .\analyze_wotb_replays.py --help
# Syntax
python.exe .\analyze_wotb_replays.py REPLAY_FILE.wotbreplay.json
# Syntax (Windows)
python.exe .\analyze_wotb_replays.py REPLAY_FILE.wotbreplay.json [DIR_WITH_REPLAYS ...]
# Example
# Example (Windows)
python.exe .\analyze_wotb_replays.py 20200223_0122__jylpah_T-54_grossberg.wotbreplay.json
# Linux
# Linux or Windows Subsystem for Linux (WSL)
./analyze_wotb_replays.py --help
```
+1 -1
View File
@@ -56,4 +56,4 @@
"skit": "Naval Frontier",
"test": "World of Ducks",
"tutorial": "Proving Grounds"
}
}
+142 -7
View File
@@ -1,7 +1,7 @@
{
"status": "ok",
"meta": {
"count": 520
"count": 530
},
"data": {
"1": {
@@ -1996,6 +1996,14 @@
"tier": 4,
"type": "AT-SPG"
},
"9089": {
"is_premium": true,
"name": "Škoda T 56",
"nation": "european",
"tank_id": 9089,
"tier": 8,
"type": "heavyTank"
},
"9217": {
"is_premium": true,
"name": "IS-6",
@@ -2028,6 +2036,22 @@
"tier": 10,
"type": "AT-SPG"
},
"9329": {
"is_premium": true,
"name": "Titan-150",
"nation": "other",
"tank_id": 9329,
"tier": 6,
"type": "heavyTank"
},
"9345": {
"is_premium": true,
"name": "Svear",
"nation": "european",
"tank_id": 9345,
"tier": 7,
"type": "mediumTank"
},
"9489": {
"is_premium": false,
"name": "E 100",
@@ -2044,6 +2068,14 @@
"tier": 9,
"type": "heavyTank"
},
"9521": {
"is_premium": true,
"name": "122 TM",
"nation": "china",
"tank_id": 9521,
"tier": 8,
"type": "mediumTank"
},
"9553": {
"is_premium": false,
"name": "AT 8",
@@ -3396,6 +3428,14 @@
"tier": 7,
"type": "heavyTank"
},
"23809": {
"is_premium": false,
"name": "Object 84",
"nation": "ussr",
"tank_id": 23809,
"tier": 9,
"type": "lightTank"
},
"23825": {
"is_premium": true,
"name": "Krupp-Steyr Waffenträger",
@@ -3412,6 +3452,14 @@
"tier": 7,
"type": "AT-SPG"
},
"24065": {
"is_premium": false,
"name": "LTG",
"nation": "ussr",
"tank_id": 24065,
"tier": 7,
"type": "lightTank"
},
"24081": {
"is_premium": true,
"name": "U-Panzer",
@@ -3429,7 +3477,7 @@
"type": "mediumTank"
},
"24321": {
"is_premium": true,
"is_premium": false,
"name": "T-100 LT",
"nation": "ussr",
"tank_id": 24321,
@@ -3452,14 +3500,46 @@
"tier": 10,
"type": "AT-SPG"
},
"24593": {
"is_premium": true,
"name": "E 75 RT",
"nation": "germany",
"tank_id": 24593,
"tier": 8,
"type": "heavyTank"
},
"24609": {
"is_premium": false,
"is_premium": true,
"name": "Concept 1B",
"nation": "usa",
"tank_id": 24609,
"tier": 10,
"type": "heavyTank"
},
"24849": {
"is_premium": true,
"name": "Kryos",
"nation": "germany",
"tank_id": 24849,
"tier": 6,
"type": "AT-SPG"
},
"25089": {
"is_premium": true,
"name": "Object 752",
"nation": "ussr",
"tank_id": 25089,
"tier": 9,
"type": "heavyTank"
},
"25345": {
"is_premium": true,
"name": "Object 274a",
"nation": "ussr",
"tank_id": 25345,
"tier": 8,
"type": "mediumTank"
},
"51201": {
"is_premium": true,
"name": "KV-220 Beta-Test",
@@ -4217,6 +4297,8 @@
"A125_AEP_1": "AE Phase I",
"A125_AEP_1_short": "AE Phase I",
"A128_Concept_1b": "Concept 1B",
"A128_Concept_1b_Custom": "Concept 1B Thunderbird",
"A128_Concept_1b_Custom_short": "Concept 1B Thunderbird",
"A128_Concept_1b_short": "Concept 1B",
"A130_Super_Hellcat": "Super Hellcat",
"A130_Super_Hellcat_Custom": "Super Hellcat Delta",
@@ -4353,6 +4435,7 @@
"CH38_WZ113G-FT_short": "WZ-113G FT",
"CH38_WZ113G_FT_Custom": "WZ-113G FT Lucky",
"CH38_WZ113G_FT_Custom_short": "WZ-113G FT Lucky",
"CKD_AXK": "ČKD AXK",
"Cadillac_V8": "3xCadillacV8",
"Cannone_da_105_51_M68": "Cannone da 105/51 M68",
"Cannone_da_105_51_M68_short": "Cannone da 105/51 M68",
@@ -4374,6 +4457,8 @@
"Canon_de_105_mle_1930_Schneider_AC_short": "105 mm AC\\nmle. 1930 S",
"Canon_de_90mm_Vo_930_m_s": "Canon de 90 mm Vo 930 m/s",
"Ch01_Type59": "Type 59",
"Ch01_Type59_Custom": "Type 59 Qinglong",
"Ch01_Type59_Custom_short": "Type 59 Qinglong",
"Ch02_Type62": "Type 62",
"Ch02_Type62_Dragon": "Type 62 Dragon",
"Ch03_WZ-111": "WZ-111",
@@ -4431,6 +4516,8 @@
"Ch42_M41D_Custom": "M41D Jade",
"Ch42_M41D_Custom_short": "M41D Jade",
"Ch42_M41D_short": "M41D",
"Ch43_WZ-122_2": "122 TM",
"Ch43_WZ-122_2_short": "122 TM",
"Ch_LT_vz38": "LT vz. 38",
"Ch_LT_vz38_short": "LT vz. 38",
"Ch_WZ-112v2": "WZ-112-2",
@@ -4545,6 +4632,8 @@
"Cz13_T-27_Custom": "Škoda T 27 Rampant",
"Cz13_T-27_Custom_short": "Škoda T 27 Rampant",
"Cz13_T-27_short": "Škoda T 27",
"Cz14_Skoda_T-56": "Škoda T 56",
"Cz14_Skoda_T-56_short": "Škoda T 56",
"D-744": "D-744",
"D1": "D1",
"D1_short": "D1",
@@ -4557,6 +4646,8 @@
"D51072": "D51072",
"D51080": "D51080",
"DB_605": "DB 605",
"DB_605NY": "DB 605 A",
"DG": "DG",
"DMA-RD-620C2": "DMA RD-620C2",
"DW_II": "Durchbruchswagen 2",
"DW_II_short": "D.W. 2",
@@ -4636,6 +4727,8 @@
"F84_Somua_SM_Custom_short": "Somua Grenadier",
"F84_Somua_SM_short": "Somua SM",
"F89_Canon_dassaut_105": "AMX Canon d'assaut 105",
"F89_Canon_dassaut_105_Custom": "CDA 105 Égalité",
"F89_Canon_dassaut_105_Custom_short": "CDA 105 Égalité",
"F89_Canon_dassaut_105_short": "AMX CDA 105",
"FCM50t_fwhite": "FCM 50 t Titi",
"FCM50t_fwhite_short": "FCM 50 t Titi",
@@ -4686,6 +4779,8 @@
"G106_PzKpfwPanther_AusfF": "Panther mit 8,8 cm L/71",
"G106_PzKpfwPanther_AusfF_short": "Panther 8,8",
"G109_Steyr_WT": "Krupp-Steyr Waffenträger",
"G109_Steyr_WT_Custom": "Steyr WT Snakebite",
"G109_Steyr_WT_Custom_short": "Steyr WT Snakebite",
"G109_Steyr_WT_short": "Steyr WT",
"G110_Mauschen": "Mäuschen",
"G110_Mauschen_short": "Mäuschen",
@@ -4717,6 +4812,8 @@
"G138_VK16801P": "VK 168.01 (P)",
"G138_VK16801P_short": "VK 168.01 (P)",
"G142_M48RPz": "M48A2 Räumpanzer",
"G142_M48RPz_Custom": "Räumpanzer Rhino",
"G142_M48RPz_Custom_short": "Räumpanzer Rhino",
"G142_M48RPz_short": "M48A2 Räumpanzer",
"G144_Kpz_50t": "Kampfpanzer 50 t",
"G144_Kpz_50t_Custom": "Kampfpanzer 50 t König",
@@ -4736,6 +4833,8 @@
"GAZ-74b": "SU-85B",
"GAZ-M1": "GAZ-M1",
"GAZ_M1": "GAZ-M1",
"GAZ_O": "GAZ-O",
"GAZ_OU": "GAZ-OU",
"GB01_Medium_Mark_I": "Vickers Medium Mk. I",
"GB01_Medium_Mark_I_short": "Medium I",
"GB03_Cruiser_Mk_I": "Cruiser Mk. I",
@@ -4899,7 +4998,10 @@
"GM_6-71_M": "GM 6062 6-71M",
"GM_X-11": "GM X-11",
"GM_X-12": "GM X-12",
"GT_101": "GT 101",
"G_E": "G.W. E 100",
"G_E-75RT": "E 75 RT",
"G_E-75RT_short": "E 75 RT",
"G_E-75TS": "E 75 TS",
"G_E-75TS_short": "E 75 TS",
"G_E_75TS_Custom": "E 75 TS Eagle",
@@ -5040,6 +5142,10 @@
"JagdPanther_short": "JPanther",
"JagdPzIV": "Jagdpanzer IV",
"JagdPzIV_0": "Jagdpanzer IV",
"JagdPzIV_AusfBP": "Kryos",
"JagdPzIV_AusfBP_Custom": "Kryos Survivor",
"JagdPzIV_AusfBP_Custom_short": "Kryos Survivor",
"JagdPzIV_AusfBP_short": "Kryos",
"JagdPzIV_Ausf_1940": "Jagdpanzer IV 0-Serie",
"JagdPzIV_Ausf_1943": "Jagdpanzer IV",
"JagdPzIV_short": "Jg.Pz. IV",
@@ -5285,6 +5391,7 @@
"Maybach_HL_116": "Maybach HL 116",
"Maybach_HL_116_S": "Maybach HL 116 S",
"Maybach_HL_120": "Maybach HL 120",
"Maybach_HL_120BP": "Maybach HL 120",
"Maybach_HL_120_TR": "Maybach HL 120 TR",
"Maybach_HL_120_TRM": "Maybach HL 120 TRM",
"Maybach_HL_120_TRMB": "Maybach HL 120 TRM Ausf. A",
@@ -5369,8 +5476,8 @@
"NC27": "Renault Otsu",
"NC27_short": "R. Otsu",
"NORINCO_12150L7": "NORINCO 12150L",
"NVSS_T66": "NVSS T66",
"NVSS_T80": "NVSS T80",
"NVSS_T66": "HVSS T66",
"NVSS_T80": "HVSS T80",
"Nashorn": "Nashorn",
"Nashorn_short": "Nashorn",
"Nuffield_liberty_MKII": "Nuffield Liberty Mk. II",
@@ -5475,6 +5582,10 @@
"Oth28_Sturmfeur_HW_short": "Titan H-N",
"Oth29_A15HW": "Titan Mk. I",
"Oth29_A15HW_short": "Titan Mk. I",
"Oth31_T150BP": "Titan-150",
"Oth31_T150BP_Custom": "Titan-150 Trailblazer",
"Oth31_T150BP_Custom_short": "Titan-150 Trailblazer",
"Oth31_T150BP_short": "Titan-150",
"PLInz_RWA": "PLInz R.W.A.",
"PLT_27": "PLT-27",
"Paccar_120_325HT": "Gas Boiler",
@@ -5508,6 +5619,8 @@
"Pl13_53TP_Markowskiego": "53TP Markowskiego",
"Pl13_53TP_Markowskiego_short": "53TP Markowskiego",
"Pl15_60TP": "60TP Lewandowskiego",
"Pl15_60TP_Custom": "60TP Krzemień",
"Pl15_60TP_Custom_short": "60TP Krzemień",
"Pl15_60TP_short": "60TP Lewandowskiego",
"Porsche_16_Cyl_Y1": "Porsche 16 Cyl. Y",
"Porsche_16_Cyl_Y2": "Porsche Typ 212 NL",
@@ -5722,9 +5835,15 @@
"R120_T22SR_short": "T-22 medium",
"R127_T44_100_P": "T-44-100",
"R127_T44_100_P_short": "T-44-100",
"R131_LTG": "LTG",
"R131_LTG_short": "LTG",
"R132_T100LT": "T-100 LT",
"R132_T100LT_Custom": "T-100 LT Interceptor",
"R132_T100LT_Custom_short": "T-100 LT Interceptor",
"R132_T100LT_short": "T-100 LT",
"R134_Object_252U": "Object 252U",
"R134_Object_252U_Custom": "Object 252U Vigilant",
"R134_Object_252U_Custom_short": "Object 252U Vigilant",
"R134_Object_252U_short": "Obj. 252U",
"R140_M4A2_Loza": "Loza's M4-A2 Sherman",
"R140_M4A2_Loza_short": "Loza's Sherman",
@@ -5744,6 +5863,10 @@
"R159_SU_130PM_short": "SU-130PM",
"R160_object_244": "Object 244",
"R160_object_244_short": "Object 244",
"R172_Object_752": "Object 752",
"R172_Object_752_short": "Object 752",
"R180_Object_274A": "Object 274a",
"R180_Object_274A_short": "Object 274a",
"R43_T-70_57": "T-70/57",
"R43_T-70_57_short": "T-70/57",
"R63_ST_IBD": "T-2020",
@@ -5754,11 +5877,13 @@
"R98_T44_85": "T-44-85",
"R98_T44_85_Custom": "T-44-85 Bravery",
"R98_T44_85_Custom_short": "T-44-85 Bravery",
"R98_T44_85_Custom_short_v2": "T-44-85 Space",
"R98_T44_85_Custom_v2": "T-44-85 Space",
"R98_T44_85_Custom_short_v2": "T-44-85 Cosmic",
"R98_T44_85_Custom_v2": "T-44-85 Cosmic",
"R98_T44_85_short": "T-44-85",
"RX_20_1_chassis": "RX-20-1",
"RX_20_1_turret": "RX-20-1",
"R_Object_84": "Object 84",
"R_Object_84_short": "Object 84",
"Ram-II": "Ram II",
"Ram_II_D1": "Ram II D1",
"Redcell_Mk1": "Redcell Mk. 1",
@@ -5821,6 +5946,8 @@
"S07_Strv_74": "Strv 74",
"S07_Strv_74_short": "Strv 74",
"S13_Leo": "Leo",
"S13_Leo_NY": "Svear",
"S13_Leo_NY_short": "Svear",
"S13_Leo_short": "Leo",
"S16_Kranvagn": "Kranvagn",
"S16_Kranvagn_Custom": "Kranvagn Nidhögg",
@@ -5837,6 +5964,8 @@
"S25_EMIL_51_Custom_short": "EMIL 1951 Viking",
"S25_EMIL_51_short": "EMIL 1951",
"S26_Lancen_C": "Lansen C",
"S26_Lancen_C_Custom": "Lansen Moose",
"S26_Lancen_C_Custom_short": "Lansen Moose",
"S26_Lancen_C_short": "Lansen C",
"S35_captured": "Pz.Kpfw. S35 739 (f)",
"S35_captured_short": "Pz. S35",
@@ -6118,6 +6247,7 @@
"T95E2_short": "T95E2",
"T99E2": "T99E2",
"TD-12": "TD-12",
"TD-12S": "TD-12S",
"TD-30": "M-50D",
"T_44_100_Custom": "T-44-100 Hellfire",
"T_44_100_Custom_short": "T-44-100 Hellfire",
@@ -6167,6 +6297,7 @@
"V-12-5U": "V-12-5U",
"V-12-5_shortened": "V-12-5 shortened",
"V-12-6": "V-12-6",
"V-12-6B": "V-12-6B",
"V-12A": "V-12 A",
"V-12P": "V-12P",
"V-12PA": "V-12PA",
@@ -6178,6 +6309,7 @@
"V-2-34E": "V-2-34E",
"V-2-34M": "V-2-34M",
"V-2-34M_BP": "V-2-34M B",
"V-2-34S": "V-2-34S",
"V-2-44": "V-2-44",
"V-2-54": "V-2-54",
"V-2-54IS": "V-2-54IS",
@@ -6195,6 +6327,7 @@
"V-2SNx2": "2x V-2K-F",
"V-4": "V-4",
"V-44": "V-44",
"V-44-2": "V-44-2",
"V-44A": "V-44A",
"V-5": "V-5",
"V-54": "V-54",
@@ -6204,6 +6337,7 @@
"V-54K_TU": "V-54K",
"V-55": "V-55",
"V-55U": "V-14",
"V-5BP": "V-5B",
"V-5F": "V-5F",
"V-5U": "V-5U",
"V-64": "V-64",
@@ -6294,6 +6428,7 @@
"V_2_34M": "V-2-34M",
"V_2_34_modificato": "V-2-34 modificato",
"V_2_54SCG": "V-2-54SCG",
"V_46_5": "V-46-5",
"V_54": "V-54",
"V_54_105": "V-54-105",
"ValentineMK_I": "Valentine",