mirror of
https://github.com/NovaOSS/nova-api.git
synced 2024-11-25 20:43:56 +01:00
54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
|
import os
|
||
|
import time
|
||
|
import aiohttp
|
||
|
import pymongo
|
||
|
import asyncio
|
||
|
import autocredits
|
||
|
|
||
|
from settings import roles
|
||
|
from dotenv import load_dotenv
|
||
|
|
||
|
load_dotenv()
|
||
|
async def main():
|
||
|
mongo = pymongo.MongoClient(os.getenv('MONGO_URI'))
|
||
|
|
||
|
await update_roles(mongo)
|
||
|
await autocredits.update_credits(mongo, roles)
|
||
|
|
||
|
async def update_roles(mongo):
|
||
|
async with aiohttp.ClientSession() as session:
|
||
|
try:
|
||
|
async with session.get('http://0.0.0.0:3224/get_roles') as response:
|
||
|
discord_users = await response.json()
|
||
|
except aiohttp.ClientError as e:
|
||
|
print(f'Error: {e}')
|
||
|
return
|
||
|
|
||
|
level_role_names = [f'lvl{lvl}' for lvl in range(10, 110, 10)]
|
||
|
users = await autocredits.get_all_users(mongo)
|
||
|
|
||
|
for user in users.find():
|
||
|
discord = str(user['auth']['discord'])
|
||
|
|
||
|
for user_id, role_names in discord_users.items():
|
||
|
if user_id == discord:
|
||
|
for role in level_role_names:
|
||
|
if role in role_names:
|
||
|
users.update_one(
|
||
|
{'auth.discord': int(discord)},
|
||
|
{'$set': {'level': role}}
|
||
|
)
|
||
|
print(f'Updated {discord} to {role}')
|
||
|
|
||
|
return users
|
||
|
|
||
|
def launch():
|
||
|
asyncio.run(main())
|
||
|
|
||
|
with open('rewards/last_update.txt', 'w') as f:
|
||
|
f.write(str(time.time()))
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
launch()
|