mirror of
https://github.com/Jylpah/blitz-tools.git
synced 2026-10-21 10:17:05 +02:00
Database update
Useless update for other users. Hopefully I did not break anything.
This commit is contained in:
1 parent
6a664cee76
commit
6e592f793d
3 files changed
+64
-11
No files matched your search
+52
-6
@@ -210,6 +210,9 @@ def bldDictHierarcy(d : dict, key : str, value) -> dict:
|
||||
error(str(err))
|
||||
return None
|
||||
|
||||
## -----------------------------------------------------------
|
||||
#### Class WG
|
||||
## -----------------------------------------------------------
|
||||
|
||||
class WG:
|
||||
|
||||
@@ -275,6 +278,7 @@ class WG:
|
||||
}
|
||||
|
||||
tanks = None
|
||||
tanks_by_tier = None
|
||||
|
||||
nations = [ 'ussr', 'germany', 'usa', 'china', 'france', 'uk', 'japan', 'other', 'european']
|
||||
nation_id = {
|
||||
@@ -305,10 +309,10 @@ class WG:
|
||||
}
|
||||
|
||||
accountID_server= {
|
||||
'ru' : range(0, int(5e8)),
|
||||
'eu' : range(int(5e8), int(10e8)),
|
||||
'na' : range(int(1e9),int(2e9)),
|
||||
'asia': range(int(2e9),int(4e9))
|
||||
'ru' : range(0, int(5e8)),
|
||||
'eu' : range(int(5e8), int(10e8)),
|
||||
'na' : range(int(1e9),int(2e9)),
|
||||
'asia' : range(int(2e9),int(4e9))
|
||||
}
|
||||
|
||||
def __init__(self, WG_appID = None, tankopedia_fn = None, maps_fn = None):
|
||||
@@ -518,11 +522,21 @@ class WG:
|
||||
try:
|
||||
async with aiofiles.open(tankopedia_fn, 'rt', encoding='utf8') as f:
|
||||
self.tanks = json.loads(await f.read())
|
||||
self.tanks_by_tier = dict()
|
||||
for tier in range(1,11):
|
||||
self.tanks_by_tier[str(tier)]= list()
|
||||
for tank in self.tanks['data']:
|
||||
self.tanks_by_tier[str(tank['tier'])].append(tank['tank_id'])
|
||||
return True
|
||||
except Exception as err:
|
||||
error('Could not read tankopedia: ' + tankopedia_fn + '\n' + str(err))
|
||||
return False
|
||||
|
||||
|
||||
async def getTanksByTier(self, tier: int) -> list():
|
||||
"""Returns tank_ids by tier"""
|
||||
return self.tanks_by_tier[str(tier)]
|
||||
|
||||
def getUrlClanInfo(self, server: str, clanID: int) -> str:
|
||||
return self.URL_WG_server[server] + self.URL_WG_clanInfo + self.WG_appID + '&clan_id=' + str(clanID)
|
||||
|
||||
@@ -530,7 +544,7 @@ class WG:
|
||||
server = self.getServer(accountID)
|
||||
return self.URL_WG_server[server] + self.URL_WG_playerTankList + self.WG_appID + '&account_id=' + str(accountID)
|
||||
|
||||
def getUrlPlayerTankStats(self, accountID, tankID, fields) -> str:
|
||||
def getUrlPlayerTankStats(self, accountID: int, tankID: int, fields: list) -> str:
|
||||
server = self.getServer(accountID)
|
||||
url = self.URL_WG_server[server] + self.URL_WG_playerTankStats + self.WG_appID + '&account_id=' + str(accountID) + '&tank_id=' + str(tankID)
|
||||
if (fields != None) and (len(fields) > 0):
|
||||
@@ -539,6 +553,17 @@ class WG:
|
||||
field_str = ''
|
||||
return url + '&fields=tank_id' + field_str
|
||||
|
||||
def getUrlPlayerTanksStats(self, accountID: int, tankIDs: list, fields: list) -> str:
|
||||
server = self.getServer(accountID)
|
||||
tank_ids = '%2C'.join(str(x) for x in tankIDs)
|
||||
url = self.URL_WG_server[server] + self.URL_WG_playerTankStats + self.WG_appID + '&account_id=' + str(accountID) + '&tank_id=' + tank_ids
|
||||
if (fields != None) and (len(fields) > 0):
|
||||
field_str = '%2C' + '%2C'.join(fields)
|
||||
else:
|
||||
field_str = ''
|
||||
return url + '&fields=tank_id' + field_str
|
||||
|
||||
|
||||
def getUrlPlayerStats(self, accountID, fields) -> str:
|
||||
server = self.getServer(accountID)
|
||||
return self.URL_WG_server[server] + self.URL_WG_playerStats + self.WG_appID + '&account_id=' + str(accountID) + '&fields=' + '%2C'.join(fields)
|
||||
@@ -568,7 +593,24 @@ class WG:
|
||||
except Exception as err:
|
||||
error(str(err))
|
||||
return None
|
||||
|
||||
|
||||
async def getPlayerTanksStats(self, accountID: int, tankIDs : list, fields: list) -> dict:
|
||||
"""Get player's stats (WR, # of battles) in a tank"""
|
||||
# debug('Started')
|
||||
if self.session == None:
|
||||
error('Session must be initialized first')
|
||||
sys.exit(1)
|
||||
try:
|
||||
debug('AccountID: ' + str(accountID) + ' TankID: ' + ','.join(tankIDs))
|
||||
url = self.getUrlPlayerTanksStats(accountID, tankIDs, fields)
|
||||
json_data = await getUrlJSON(self.session, url, self.chkJSONtankList)
|
||||
if json_data != None:
|
||||
debug('JSON Response received: ' + str(json_data))
|
||||
return json_data['data'][str(accountID)]
|
||||
except Exception as err:
|
||||
error(err)
|
||||
return None
|
||||
|
||||
async def getPlayerTankStats(self, accountID: int, tankID : int, fields: list) -> dict:
|
||||
"""Get player's stats (WR, # of battles) in a tank"""
|
||||
# debug('Started')
|
||||
@@ -681,6 +723,10 @@ class WG:
|
||||
error(str(err))
|
||||
return None
|
||||
|
||||
## -----------------------------------------------------------
|
||||
#### Class WoTinspector
|
||||
## -----------------------------------------------------------
|
||||
|
||||
class WoTinspector:
|
||||
URL_WI = 'https://replays.wotinspector.com'
|
||||
URL_REPLAYS = URL_WI + '/en/sort/ut/page/'
|
||||
|
||||
Reference in new issue
Block a user