This commit is contained in:
aozhiwei 2023-03-22 13:04:30 +08:00
parent 435ed2d331
commit d38ce0b86c

View File

@ -24,6 +24,8 @@ stat = {
'merchant_hold': 0
},
'nft_rank': [
],
'nft_hero_box_rank': [
]
}
@ -100,17 +102,39 @@ def statData():
del boxUser[key]
assert(len(boxUser) == stat['blindBox']['user_hold'])
userHoldNums = {}
userHoldHeroBoxNums = {}
for key, value in boxUser.items():
userHoldNums[value] = 1
for row in nftTable:
ownerAddress = row['owner_address'].lower()
if ownerAddress != EMPTY_ADDRESS and ownerAddress != '' and row['token_type'] != '4':
stat['nft_total'] += 1
stat['nft_mint'] += 1
if ownerAddress not in userHoldNums:
userHoldNums[ownerAddress] = 1
else:
userHoldNums[ownerAddress] += 1
if ownerAddress != EMPTY_ADDRESS and ownerAddress != '':
if row['token_type'] != '4':
stat['nft_total'] += 1
stat['nft_mint'] += 1
if ownerAddress not in userHoldNums:
userHoldNums[ownerAddress] = 1
else:
userHoldNums[ownerAddress] += 1
if row['token_type'] == '1':
if ownerAddress not in userHoldHeroBoxNums:
userHoldHeroBoxNums[ownerAddress] = {
'hero': 1,
'box': 0,
'nftNum': 1
}
else:
userHoldHeroBoxNums[ownerAddress]['hero'] += 1
userHoldHeroBoxNums[ownerAddress]['nftNum'] += 1
if row['token_type'] == '4':
if ownerAddress not in userHoldHeroBoxNums:
userHoldHeroBoxNums[ownerAddress] = {
'hero': 0,
'box': 1,
'nftNum': 1
}
else:
userHoldHeroBoxNums[ownerAddress]['box'] += 1
userHoldHeroBoxNums[ownerAddress]['nftNum'] += 1
#end for
userHoldList = []
for key, value in userHoldNums.items():
@ -151,6 +175,52 @@ def statData():
with open('nft_rank.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(rankList)
#
userHoldHeroBoxList = []
for key, value in userHoldHeroBoxNums.items():
if value['nftNum'] > 1:
userHoldHeroBoxList.append(
{
'address': key,
'hero': value['hero'],
'box': value['box'],
'nftNum': value['nftNum']
}
)
#end for
def cmpFunc(a, b):
if a['nftNum'] > b['nftNum']:
return -1
elif a['nftNum'] < b['nftNum']:
return 1
else:
return 0
stat['nft_hero_box_rank'] = sorted(userHoldHeroBoxList, key=functools.cmp_to_key(cmpFunc))
for i in range(len(stat['nft_hero_box_rank'])):
stat['nft_hero_box_rank'][i]['rank'] = i + 1
rankList = [
(
'address',
'hero',
'box',
'nftNum',
'rank'
)
]
for item in stat['nft_hero_box_rank']:
rankList.append(
(
item['address'],
item['hero'],
item['box'],
item['nftNum'],
item['rank']
)
)
with open('nft_hero_box_rank.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(rankList)
print(json.dumps(stat, indent=4))
def loadData():