mirror of
https://github.com/NovaOSS/nova-api.git
synced 2024-11-25 21:43:57 +01:00
Compare commits
3 commits
9a1a9d9e3e
...
dbaec0332b
Author | SHA1 | Date | |
---|---|---|---|
dbaec0332b | |||
9b8ab4eced | |||
3f1db2dd3e |
|
@ -2,11 +2,14 @@ async def get_all_users(client):
|
||||||
users = client['nova-core']['users']
|
users = client['nova-core']['users']
|
||||||
return users
|
return users
|
||||||
|
|
||||||
async def update_credits(users, settings=None):
|
|
||||||
|
async def update_credits(pymongo_client, settings=None):
|
||||||
|
users = await get_all_users(pymongo_client)
|
||||||
|
|
||||||
if not settings:
|
if not settings:
|
||||||
users.update_many({}, {"$inc": {"credits": 250}})
|
users.update_many({}, {"$inc": {"credits": 2500}})
|
||||||
|
|
||||||
else:
|
else:
|
||||||
for key, value in settings.items():
|
for key, value in settings.items():
|
||||||
users.update_many({'role': key}, {"$inc": {"credits": int(value)}})
|
users.update_many(
|
||||||
print(f'Updated {key} to {value}')
|
{'level': key}, {"$inc": {"credits": int(value)}})
|
||||||
|
|
|
@ -1,59 +1,48 @@
|
||||||
import os
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import aiohttp
|
|
||||||
import pymongo
|
|
||||||
|
|
||||||
import autocredits
|
|
||||||
|
|
||||||
from dotenv import load_dotenv
|
|
||||||
|
|
||||||
from settings import roles
|
from settings import roles
|
||||||
|
import autocredits
|
||||||
|
import aiohttp
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import os
|
||||||
|
import pymongo
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
pymongo_client = pymongo.MongoClient(os.getenv('MONGO_URI'))
|
CONNECTION_STRING = os.getenv("MONGO_URI")
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
users = await autocredits.get_all_users(pymongo_client)
|
pymongo_client = pymongo.MongoClient(CONNECTION_STRING)
|
||||||
|
|
||||||
await update_roles(users)
|
await update_roles(pymongo_client)
|
||||||
await autocredits.update_credits(users, roles)
|
await autocredits.update_credits(pymongo_client, roles)
|
||||||
|
|
||||||
async def update_roles(users):
|
|
||||||
|
async def update_roles(pymongo_client):
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
try:
|
try:
|
||||||
async with session.get('http://localhost:3224/get_roles') as response:
|
async with session.get('http://0.0.0.0:3224/get_roles') as response:
|
||||||
discord_users = await response.json()
|
data = await response.json()
|
||||||
except aiohttp.ClientError as e:
|
except aiohttp.ClientError as e:
|
||||||
raise ValueError('Could not get roles.') from exc
|
print(f"Error: {e}")
|
||||||
|
return
|
||||||
lvlroles = [f'lvl{lvl}' for lvl in range(10, 110, 10)] + ['']
|
|
||||||
|
|
||||||
|
lvlroles = [f"lvl{lvl}" for lvl in range(10, 110, 10)]
|
||||||
|
discord_users = data
|
||||||
users = await autocredits.get_all_users(pymongo_client)
|
users = await autocredits.get_all_users(pymongo_client)
|
||||||
|
|
||||||
filtered_users = users.find({'role': {'$in': lvlroles}})
|
for user in users.find():
|
||||||
|
|
||||||
bulk_updates = []
|
|
||||||
for user in filtered_users:
|
|
||||||
discord = str(user['auth']['discord'])
|
discord = str(user['auth']['discord'])
|
||||||
|
|
||||||
for id_, roles in discord_users.items():
|
for id_, roles in discord_users.items():
|
||||||
if id_ == discord:
|
if id_ == discord:
|
||||||
for role in lvlroles:
|
for role in lvlroles:
|
||||||
print(2, id_)
|
|
||||||
if role in roles:
|
if role in roles:
|
||||||
print(0, id_)
|
users.update_one({'auth.discord': int(discord)}, {
|
||||||
bulk_updates.append(pymongo.UpdateOne(
|
'$set': {'level': role}})
|
||||||
{'auth.discord': int(discord)},
|
print(f"Updated {discord} to {role}")
|
||||||
{'$set': {'role': role}})
|
|
||||||
)
|
|
||||||
print(1, id_)
|
|
||||||
print(f'Updated {id_} to {role}')
|
|
||||||
break
|
|
||||||
|
|
||||||
if bulk_updates:
|
return users
|
||||||
with pymongo_client:
|
|
||||||
users.bulk_write(bulk_updates)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
|
@ -1,13 +1,13 @@
|
||||||
roles = {
|
roles = {
|
||||||
'': '250',
|
'': '2500',
|
||||||
'lvl10': '280',
|
'lvl10': '2800',
|
||||||
'lvl20': '310',
|
'lvl20': '3100',
|
||||||
'lvl30': '340',
|
'lvl30': '3400',
|
||||||
'lvl40': '370',
|
'lvl40': '3700',
|
||||||
'lvl50': '400',
|
'lvl50': '4000',
|
||||||
'lvl60': '430',
|
'lvl60': '4300',
|
||||||
'lvl70': '460',
|
'lvl70': '4600',
|
||||||
'lvl80': '490',
|
'lvl80': '4900',
|
||||||
'lvl90': '520',
|
'lvl90': '5200',
|
||||||
'lvl100': '550',
|
'lvl100': '5500',
|
||||||
}
|
}
|
Loading…
Reference in a new issue