69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
from pymongo import MongoClient
|
|
from core.files import Data
|
|
|
|
client = MongoClient(Data('config').yaml_read()['mongo'])
|
|
|
|
class Servers:
|
|
def __init__(self, server=None):
|
|
self.server = server
|
|
self.col = client["BytesBump"]["servers"]
|
|
self.prefixes = client["BytesBump"]["prefixes"]
|
|
|
|
def get(self):
|
|
return self.col.find_one({"_id":self.server})
|
|
|
|
def get_all(self):
|
|
return self.col.find({})
|
|
|
|
"""
|
|
Add a server to the database.
|
|
Expected params: Desc, Color, Listing, WebhookID
|
|
"""
|
|
|
|
def add(self, **params):
|
|
params['_id'] = self.server
|
|
self.col.insert_one(params)
|
|
|
|
"""
|
|
Update a server in the database.
|
|
"""
|
|
|
|
def update(self, **params):
|
|
self.col.update_one({
|
|
"_id": self.server
|
|
}, {
|
|
"$set": params
|
|
})
|
|
|
|
"""
|
|
Remove a server from the database.
|
|
"""
|
|
|
|
def delete(self, **checks):
|
|
if self.server:
|
|
self.col.delete_one({'_id': self.server})
|
|
else:
|
|
self.col.delete_one(checks)
|
|
|
|
"""
|
|
Prefix management
|
|
"""
|
|
|
|
@property
|
|
def hasPrefix(self):
|
|
r = self.prefixes.find_one({'_id':self.server})
|
|
if r: return True
|
|
return False
|
|
|
|
@property
|
|
def deletePrefix(self):
|
|
self.prefixes.delete_one({'_id':self.server})
|
|
|
|
def setPrefix(self, prefix):
|
|
if self.hasPrefix: self.prefixes.update_one({'_id':self.server}, {'$set':{'prefix':prefix}})
|
|
else: self.prefixes.insert_one({'_id':self.server, 'prefix':prefix})
|
|
|
|
def getPrefix(self):
|
|
prefix = self.prefixes.find_one({'_id':self.server})
|
|
if prefix: return prefix["prefix"]
|
|
else: return Data("config").yaml_read()["prefix"] |