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() await autocredits.update_credits(roles) async def update_roles(): 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() users = users.find({}) users = await users.to_list(length=None) for user in users: if not 'auth' in user: continue 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': 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()