runabot/Christmas/Database/__init__.py
2023-11-26 13:27:34 +09:00

41 lines
1.7 KiB
Python

from motor.motor_asyncio import AsyncIOMotorClient
from Christmas.config import ChristmasConfig
class MongoDBClient:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.config = ChristmasConfig()
self.client = AsyncIOMotorClient(self.config.DATABASE["HOST"], int(self.config.DATABASE["PORT"]), username=self.config.DATABASE["USERNAME"], password=self.config.DATABASE["PASSWORD"])[self.config.DATABASE["DATABASE"]]
async def connect(self):
return self.client
class database:
async def get_guild(guild_id: int) -> dict:
conn = await MongoDBClient().connect()
return await conn.guild.find_one({"_id": guild_id})
async def register_guild(guild_id: int) -> None:
conn = await MongoDBClient().connect()
await conn.guild.insert_one({"_id": guild_id})
async def insert_mail(send_user_id: int, user_id: int, mail_title: str, mail_content: str):
try:
conn = await MongoDBClient().connect()
mail_title = f"""{mail_title}"""
mail_content = f"""{mail_content}"""
if await conn.mail.find_one({"_id": user_id}) == None:
await conn.mail.insert_one({"_id": user_id, "mails": [{"userid": send_user_id, "title": mail_title, "content": mail_content}]})
else:
await conn.db.mail.update_one({"_id": user_id}, {"$push": {"mails": {"userid": send_user_id, "title": mail_title, "content": mail_content}}})
except Exception as e:
print(e)
async def get_mail(user_id: int) -> dict:
conn = await MongoDBClient().connect()
return await conn.mail.find_one({"_id": user_id})