-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.py
More file actions
60 lines (49 loc) · 1.85 KB
/
db.py
File metadata and controls
60 lines (49 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from pymongo import MongoClient
from dotenv import load_dotenv
from os import getenv
from discord import Member
from squarecloud.data import UploadData
load_dotenv(override=True)
DATABASE_URL = getenv("DATABASE_URL")
mongo_client = MongoClient(DATABASE_URL, tlsCAFile="certificate.pem", tlsCertificateKeyFile="certificate.pem")
banco_bot_manager = mongo_client['bot_manager']
colecao_usuarios = banco_bot_manager['usuarios']
def obter_usuario(discord_user:Member):
usuario = colecao_usuarios.find_one({'discord_id':discord_user.id})
if not usuario:
usuario_dados = {
'discord_id':discord_user.id,
'name':discord_user.name
}
colecao_usuarios.insert_one(usuario_dados)
return usuario_dados
return usuario
def enviar_app(upload_data:UploadData, discord_user:Member):
usuario = obter_usuario(discord_user)
if not usuario.get('apps'):
usuario['apps'] = []
apps = usuario['apps']
app_data = {
'id':upload_data.id,
'name':upload_data.name
}
apps.append(app_data)
colecao_usuarios.update_one({'discord_id':discord_user.id},
{'$set':{
'apps':apps
}})
def obter_apps(discord_user:Member):
usuario = obter_usuario(discord_user)
if not usuario.get('apps'):
return []
return usuario['apps']
def deletar_app(id:str):
colecao_usuarios.update_one({'apps.id':id},
{'$pull':{
'apps':{'id':id}
}})
def verificar_ativacao(discord_user:Member):
usuario = obter_usuario(discord_user)
return usuario.get('ativo', False)
def ativar_bot(discord_user:Member):
colecao_usuarios.update_one({'discord_id':discord_user.id}, {'$set':{'ativo':True}})