diff --git a/README.md b/README.md index f93b54d..9f132dd 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 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. ### Replays -* [upload_wotb_replays.py](wotbreplay_uploader.py): An asynchronous replay uploader. +* [upload_wotb_replays.py](upload_wotb_replays.py): An asynchronous replay uploader. * [analyze_wotb_replays.py](analyze_wotb_replays.py): A tool to calculate statistics of a set of replays. Upload the replays first with [upload_wotb_replays.py](upload_wotb_replays.py) and then calculate the statistics. ### Tank data @@ -27,8 +27,11 @@ Python scripts to analyze WoT Blitz replays and stats. All the scripts require [ python3.8 -m pip install motor aiohttp aioconsole aiofiles aiosqlite beautifulsoup4 lxml xmltodict progress ``` -4. Upload your replays. Run _python.exe .\wotbreplay_uploader.py --help_ (Windows) or _./wotbreplay_uploader.py --help_ (Linux) -5. Analyze replays. Run _python.exe .\analyzeReplays.py --help_ (Windows) or _./analyzeReplays.py --help_ (Linux) +4. Upload your replays. Run _python.exe .\upload_wotb_replays.py --help_ (Windows) or _./upload_wotb_replays.py --help_ (Linux) +5. Analyze replays. Run _python.exe .\analyze_wotb_replays.py --help_ (Windows) or _./analyze_wotb_replays.py --help_ (Linux) +### Blitz releases + +[WoT Blitz releases](releases.md): launch dates and key content. You can reach me via email: Jylpah@gmail.com or [Discord](https://discordapp.com/): Jylpah#4662. Happy tanking and stats analysis! diff --git a/extract_tankopedia.py b/extract_tankopedia.py index 372fd0a..8e28769 100644 --- a/extract_tankopedia.py +++ b/extract_tankopedia.py @@ -2,12 +2,14 @@ # Extract tankopedia data in WG API JSON format from Blitz app files (Android APK unzipped) -import sys, argparse, json, os, inspect, aiohttp, asyncio, aiofiles, re, logging, time, xmltodict, collections +import sys, argparse, json, os, inspect, aiohttp, asyncio, aiofiles, re, logging, time, xmltodict, collections, configparser import blitzutils as bu from blitzutils import WG logging.getLogger("asyncio").setLevel(logging.DEBUG) +FILE_CONFIG = 'blitzstats.ini' + BLITZAPP_STRINGS='/assets/Data/Strings/en.yaml' BLITZAPP_VEHICLES_DIR='/assets/Data/XML/item_defs/vehicles/' BLITZAPP_VEHICLE_FILE='/list.xml' @@ -19,9 +21,16 @@ async def main(argv): global wg # set the directory for the script os.chdir(os.path.dirname(sys.argv[0])) - + + ## Read config + config = configparser.ConfigParser() + config.read(FILE_CONFIG) + + configOptions = config['EXTRACT_TANKOPEDIA'] + BLITZAPP_FOLDER = configOptions.get('blitz_app_dir', '.') + parser = argparse.ArgumentParser(description='Extract Tankopedia data from Blitz game files') - parser.add_argument('blitz_app_base', type=str, metavar="BLITZAPP_FOLDER", default=".", help='Base dir of the Blitz App files') + parser.add_argument('blitz_app_base', type=str, nargs='?', metavar="BLITZAPP_FOLDER", default=BLITZAPP_FOLDER, help='Base dir of the Blitz App files') parser.add_argument('tanks', type=str, default='tanks.json', nargs='?', metavar="TANKS_FILE", help='File to write Tankopedia') parser.add_argument('maps', type=str, default='maps.json', nargs='?', metavar='MAPS_FILE', help='File to write map names') arggroup = parser.add_mutually_exclusive_group() diff --git a/maps.json b/maps.json index 66d9fc4..c52db28 100644 --- a/maps.json +++ b/maps.json @@ -20,6 +20,7 @@ "malinovka": "Winter Malinovka", "medvedkovo": "Dead Rail", "milbase": "Yamato Harbor", + "moon": "Sea of Tranquility", "mountain": "Black Goldville", "neptune": "Normandy", "north": "North", diff --git a/releases.md b/releases.md new file mode 100644 index 0000000..dc6ea7b --- /dev/null +++ b/releases.md @@ -0,0 +1,73 @@ +# WoT Blitz releases + +| Release | Date | Notes | Inaccurate? | +|:-------:|:--------:|-------------|-----| +| 6.10 | 2020-04-29 | T92E1 nerf, Tier V-IX heavy HP buff, Battle Pass, map fixes | | +| 6.9 | 2020-03-25 | Japanese TDs, Tier X heavy HP buff | | +| 6.8 | 2020-02-19 | ATGM nerf, Hellas map | | +| 6.7 | 2020-01-15 | ATGM US Lights | | +| 6.6 | 2019-12-18 | T-62A + Leo buffs | | +| 6.5 | 2019-11-21 | New UI | | +| 6.4 | 2019-10-16 | Halloween map, mid-tier HT buff... | | +| 6.3 | 2019-09-18 | European line | | +| 6.2 | 2019-08-14 | New MM | | +| 6.1 | 2019-07-10 | Autoloader buff | | +| 6.0 | 2019-06-05 | UK TD line #2 | | +| 5.10 | 2019-04-24 | new missions | | +| 5.9 | 2019-03-27 | New shell tracers, minor fixes | | +| 5.8 | 2019-02-21 | Chinese TD line | | +| 5.7 | 2019-01-16 | Avatars | | +| 5.6 | 2018-12-05 | Normandy map | | +| 5.5 | 2018-11-13 | Low-tier clean-up | | +| 5.4 | 2018-10-10 | MM "rigging" adjusted | | +| 5.3 | 2018-09-12 | MM "rigging" started, Newbie queue added | | +| 5.2 | 2018-08-22 | Faust map | | +| 5.1 | 2018-07-31 | New MM: vehicle class matching | | +| 5.0 | 2018-06-30 | Vineyeards map update, Spare Parts killed | | +| 4.10 | 2018-05-24 | Alpenstadt map | | +| 4.9 | 2018-04-25 | Chinese heavy tanks | | +| 4.8 | 2018-03-28 | Choice of battle modes, crew skills accelerator | | +| 4.7 | 2018-02-28 | New minimap | | +| 4.6 | 2018-01-31 | Chinese nation | | +| 4.5 | 2017-12-19 | Dynasty's Pearl map | | +| 4.4 | 2017-11-09 | New British tanks | | +| 4.3 | 2017-10-10 | Level 7 screw skills | | +| 4.2 | 2017-09-12 | French LTs, Naval Frontier map | | +| 4.1 | 2017-08-16 | New markers | | +| 4.0 | 2017-07-13 | Rating battles | Y | +| 3.10 | 2017-06-15 | Fixes | Y | +| 3.9 | 2017-05-19 | Military Honor, Mayan Ruins | Y | +| 3.8 | 2017-04-24 | Spare Parts, New 9-slot Equipment system | Y | +| 3.7 | 2017-03-22 | Balance changes, Tournaments | Y | +| 3.6 | 2017-02-16 | Vehicle Enrichment | Y | +| 3.5 | 2017-01-13 | Boosters, Dead rail update | Y | +| 3.4 | 2016-11-28 | Canyon map, USA T57 line | | +| 3.3 | 2016-11-01 | Updated Mines map | | +| 3.2 | 2016-10-04 | Copperfield update | | +| 3.1 | 2016-09-03 | Clan tournaments, Yamato Harbor map | Y | +| 3.0 | 2016-07-20 | Supremacy mode, Falls Creek update | Y | +| 2.11 | 2016-06-28 | Vineyeards map, Oasis Palms update, German paper TDs | | +| 2.10 | 2016-06-07 | Rockfield map update, Tank birthdays, high-pen gun for IS-6 | | +| 2.9 | 2016-05-03 | Training rooms, +/-1 Matchmaker | Y | +| 2.8 | 2016-04-04 | New Russian TD line, new consumables system | Y | +| 2.7 | 2016-03-07 | Mirage map | Y | +| 2.6 | 2016-02-10 | German LTs, shooting through obstacles | Y | +| 2.5 | 2016-01-11 | Camouflages, Clan supply | Y | +| 2.4 | 2015-12-09 | Additional Japanese tanks, windows version | Y | +| 2.3 | 2015-11-12 | Canal map | Y | +| 2.2 | 2015-10-05 | Desert Sands map update | Y | +| 2.1 | 2015-09-07 | UK TDs, Clan Chat | Y | +| 2.0 | 2015-08-05 | Clans, Oasis Palms updated | | +| 1.11 | 2015-07-13 | KV-2, KV-13, Sherman Jumbo | Y | +| 1.10 | 2015-06-11 | Port Bay map | Y | +| 1.9 | 2015-05-13 | New German medium tanks (Leo) | Y | +| 1.8 | 2015-04-14 | Game tutorial, Bot map for new players | Y | +| 1.7 | 2015-02-16 | US Turreted TDs | Y | +| 1.6 | 2015-01-19 | Castilla map, UK HT line | Y | +| 1.5 | 2014-12-01 | UK Nation | Y | +| 1.4 | 2014-10-29 | German HT line (Maus) | Y | +| 1.3 | 2014-10-02 | USSR IS-4 line, Lost Temple, Black Goldville maps | Y | +| 1.2 | 2014-08-20 | Oasis Palms map | Y | +| 1.1.1 | 2014-07-23 | Fixes :-) | | +| 1.0 | 2014-06-26 | Worldwide launch | | +| 0.9 | 2014-05-05 | Nordic soft launch | | diff --git a/tanks.json b/tanks.json index 7d704bb..f2eb298 100644 --- a/tanks.json +++ b/tanks.json @@ -1,7 +1,7 @@ { "status": "ok", "meta": { - "count": 429 + "count": 439 }, "data": { "1": { @@ -872,9 +872,9 @@ "tank_id": 3937, "nation": "japan", "tier": 10, - "is_premium": true, + "is_premium": false, "type": "AT-SPG", - "name": "Ho-Ri Type 3" + "name": "Ho-Ri Type III" }, "3953": { "tank_id": 3953, @@ -3435,6 +3435,86 @@ "is_premium": true, "type": "lightTank", "name": "Vickers Light 105" + }, + "3201": { + "tank_id": 3201, + "nation": "european", + "tier": 9, + "is_premium": true, + "type": "heavyTank", + "name": "50TP prototyp" + }, + "4193": { + "tank_id": 4193, + "nation": "japan", + "tier": 9, + "is_premium": false, + "type": "AT-SPG", + "name": "Ho-Ri Type II" + }, + "4961": { + "tank_id": 4961, + "nation": "japan", + "tier": 8, + "is_premium": false, + "type": "AT-SPG", + "name": "Ho-Ri Type I" + }, + "5217": { + "tank_id": 5217, + "nation": "japan", + "tier": 7, + "is_premium": false, + "type": "AT-SPG", + "name": "Chi-To SPG" + }, + "20513": { + "tank_id": 20513, + "nation": "usa", + "tier": 8, + "is_premium": true, + "type": "heavyTank", + "name": "T54E2" + }, + "20769": { + "tank_id": 20769, + "nation": "usa", + "tier": 8, + "is_premium": true, + "type": "mediumTank", + "name": "T25 Pilot Number 1" + }, + "4449": { + "tank_id": 4449, + "nation": "japan", + "tier": 7, + "is_premium": true, + "type": "heavyTank", + "name": "IS-2 Pravda SP" + }, + "4705": { + "tank_id": 4705, + "nation": "japan", + "tier": 6, + "is_premium": true, + "type": "mediumTank", + "name": "Firefly Saunders SP" + }, + "21025": { + "tank_id": 21025, + "nation": "usa", + "tier": 7, + "is_premium": true, + "type": "mediumTank", + "name": "T26E3 Eagle 7" + }, + "21249": { + "tank_id": 21249, + "nation": "ussr", + "tier": 6, + "is_premium": true, + "type": "heavyTank", + "name": "Thunder" } }, "userStr": { @@ -3831,7 +3911,7 @@ "It12_Prototipo_Standard_B": "Prototipo Standard B", "It13_Progetto_M35_mod_46": "Progetto M35 mod. 46", "It14_P44_Pantera": "P.44 Pantera", - "J20_Ho_Ri_type3": "Ho-Ri Type 3", + "J20_Ho_Ri_type3": "Ho-Ri Type III", "Oth16_KV_TG": "Smasher", "Oth17_BDT-5A": "Y5 T-34", "Oth18_BDT-5B": "Y5 Firefly", @@ -3852,6 +3932,16 @@ "R159_SU_130PM": "SU-130PM", "GB91_Super_Conqueror": "Super Conqueror", "GB93_Caernarvon_AX": "Caernarvon Action X", - "GB_Vickers_Light_105": "Vickers Light 105" + "GB_Vickers_Light_105": "Vickers Light 105", + "A111_T25_Pilot": "T25 Pilot Number 1", + "A124_T54E2": "T54E2", + "J21_Ho_Ri": "Ho-Ri Type II", + "J22_Ho_Ri_type96": "Ho-Ri Type I", + "J23_Chi_To_SPG": "Chi-To SPG", + "Pl08_50TP_prot": "50TP prototyp", + "A121_T26E3": "T26E3 Eagle 7", + "Firefly_GuP": "Firefly Saunders SP", + "IS-2_GuP": "IS-2 Pravda SP", + "KV-1s-BP": "Thunder" } } \ No newline at end of file