1
This commit is contained in:
parent
435ed2d331
commit
d38ce0b86c
@ -24,6 +24,8 @@ stat = {
|
|||||||
'merchant_hold': 0
|
'merchant_hold': 0
|
||||||
},
|
},
|
||||||
'nft_rank': [
|
'nft_rank': [
|
||||||
|
],
|
||||||
|
'nft_hero_box_rank': [
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,17 +102,39 @@ def statData():
|
|||||||
del boxUser[key]
|
del boxUser[key]
|
||||||
assert(len(boxUser) == stat['blindBox']['user_hold'])
|
assert(len(boxUser) == stat['blindBox']['user_hold'])
|
||||||
userHoldNums = {}
|
userHoldNums = {}
|
||||||
|
userHoldHeroBoxNums = {}
|
||||||
for key, value in boxUser.items():
|
for key, value in boxUser.items():
|
||||||
userHoldNums[value] = 1
|
userHoldNums[value] = 1
|
||||||
for row in nftTable:
|
for row in nftTable:
|
||||||
ownerAddress = row['owner_address'].lower()
|
ownerAddress = row['owner_address'].lower()
|
||||||
if ownerAddress != EMPTY_ADDRESS and ownerAddress != '' and row['token_type'] != '4':
|
if ownerAddress != EMPTY_ADDRESS and ownerAddress != '':
|
||||||
|
if row['token_type'] != '4':
|
||||||
stat['nft_total'] += 1
|
stat['nft_total'] += 1
|
||||||
stat['nft_mint'] += 1
|
stat['nft_mint'] += 1
|
||||||
if ownerAddress not in userHoldNums:
|
if ownerAddress not in userHoldNums:
|
||||||
userHoldNums[ownerAddress] = 1
|
userHoldNums[ownerAddress] = 1
|
||||||
else:
|
else:
|
||||||
userHoldNums[ownerAddress] += 1
|
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
|
#end for
|
||||||
userHoldList = []
|
userHoldList = []
|
||||||
for key, value in userHoldNums.items():
|
for key, value in userHoldNums.items():
|
||||||
@ -151,6 +175,52 @@ def statData():
|
|||||||
with open('nft_rank.csv', 'w', newline='') as f:
|
with open('nft_rank.csv', 'w', newline='') as f:
|
||||||
writer = csv.writer(f)
|
writer = csv.writer(f)
|
||||||
writer.writerows(rankList)
|
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))
|
print(json.dumps(stat, indent=4))
|
||||||
|
|
||||||
def loadData():
|
def loadData():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user