mirror of
https://github.com/Jylpah/blitz-tools.git
synced 2026-10-21 18:27:05 +02:00
67 lines
2.4 KiB
Python
67 lines
2.4 KiB
Python
#!/usr/local/bin/python3.7
|
|||
|
|
|
||
|
|
# Get Tankpedia from WoTinspector.com
|
||
|
|
|
||
|
|
import sys, argparse, json, os, inspect, aiohttp, asyncio, re, logging
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
logging.getLogger("asyncio").setLevel(logging.DEBUG)
|
||
|
|
|
||
|
|
VERBOSE = False
|
||
|
|
DEBUG = False
|
||
|
|
|
||
|
|
tank_type = [ 'lightTank', 'mediumTank', 'heavyTank', 'AT-SPG' ]
|
||
|
|
|
||
|
|
#@asyncio.coroutine
|
||
|
|
async def get_tankopedia(filename: str):
|
||
|
|
url="https://wotinspector.com/static/armorinspector/tank_db_blitz.js"
|
||
|
|
async with aiohttp.ClientSession() as client:
|
||
|
|
async with client.get(url) as r:
|
||
|
|
if r.status == 200:
|
||
|
|
WI_tank_db=await r.text()
|
||
|
|
WI_tank_db = WI_tank_db.split("\n")
|
||
|
|
else:
|
||
|
|
print('Error: Could not get valid HTTPS response. HTTP: ' + str(r.status) )
|
||
|
|
sys.exit(1)
|
||
|
|
tanks = {}
|
||
|
|
n = 0
|
||
|
|
p = re.compile('\\s*(\\d+):\\s{"en":"([^"]+)",.*?"tier":(\\d+), "type":(\\d), "premium":(\\d).*')
|
||
|
|
for line in WI_tank_db[1:-1]:
|
||
|
|
m = p.match(line)
|
||
|
|
tank = {}
|
||
|
|
tank['tank_id'] = int(m.group(1))
|
||
|
|
tank['name'] = m.group(2)
|
||
|
|
tank['tier'] = int(m.group(3))
|
||
|
|
tank['type'] = tank_type[int(m.group(4))]
|
||
|
|
tank['is_premium'] = (int(m.group(5)) == 1)
|
||
|
|
tanks[str(m.group(1))] = tank
|
||
|
|
n += 1
|
||
|
|
|
||
|
|
tankopedia = {}
|
||
|
|
tankopedia['status'] = "ok"
|
||
|
|
tankopedia['meta'] = {"count" : n}
|
||
|
|
tankopedia['data'] = tanks
|
||
|
|
print("Tankopedia has " + str(n) + " tanks in: " + filename)
|
||
|
|
with open(filename,'w') as outfile:
|
||
|
|
outfile.write(json.dumps(tankopedia, ensure_ascii=False, indent=4, sort_keys=True))
|
||
|
|
return None
|
||
|
|
|
||
|
|
|
||
|
|
def main(argv):
|
||
|
|
global VERBOSE, DEBUG
|
||
|
|
|
||
|
|
parser = argparse.ArgumentParser(description='Retrieve Tankopedia from WoTinspector.com')
|
||
|
|
parser.add_argument('--file', dest="outfile", help='Write Tankopedia to file')
|
||
|
|
parser.add_argument('--debug', '-d', action='store_true', default=False, help='Debug mode')
|
||
|
|
parser.add_argument('--verbose', '-v', action='store_true', default=False, help='Verbose mode')
|
||
|
|
|
||
|
|
args = parser.parse_args()
|
||
|
|
VERBOSE = args.verbose
|
||
|
|
DEBUG = args.debug
|
||
|
|
if DEBUG: VERBOSE = True
|
||
|
|
|
||
|
|
asyncio.run(get_tankopedia(args.outfile))
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main(sys.argv[1:])
|