diff options
Diffstat (limited to 'ATRI/database/db.py')
-rw-r--r-- | ATRI/database/db.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/ATRI/database/db.py b/ATRI/database/db.py deleted file mode 100644 index 68db8cf..0000000 --- a/ATRI/database/db.py +++ /dev/null @@ -1,82 +0,0 @@ -from pathlib import Path -from tortoise import Tortoise -from nonebot import get_driver - -from ATRI.database import models - - -DB_DIR = Path(".") / "data" / "database" / "sql" -DB_DIR.mkdir(exist_ok=True) - - -# 关于数据库的操作类,只实现与数据库有关的CRUD -# 请不要把业务逻辑写进去 -class DB: - async def __aenter__(self): - return self - - async def __aexit__(self, exc_type, exc_val, exc_tb): - pass - - async def init(self): - from ATRI.database import models - - await Tortoise.init( - db_url=f"sqlite://{DB_DIR}/db.sqlite3", - modules={"models": [locals()["models"]]}, - ) - # Generate the schema - await Tortoise.generate_schemas() - - async def add_subscription(self, uid: int, groupid: int) -> bool: - try: - _ = await models.Subscription.create(uid=uid, groupid=groupid) - return True - except: - return False - - async def get_all_subscriptions_by_gid(self, groupid: int) -> list: - try: - subs = await self.get_subscriptions(query_map={"groupid": groupid}) - return subs - except: - return [] - - async def remove_subscription(self, query_map: dict) -> bool: - try: - ret = await models.Subscription.filter(**query_map).delete() - return True - except: - return False - - async def get_subscriptions(self, query_map: dict) -> list: - try: - ret = await models.Subscription.filter(**query_map) - return ret - except: - return [] - - async def get_all_subscriptions(self) -> list: - try: - ret = await models.Subscription.all() - return ret - except: - return [] - - async def update_subscriptions_by_uid(self, uid: int, update_map: dict) -> bool: - try: - # why use ** ? - # Reference: https://stackoverflow.com/questions/5710391/converting-python-dict-to-kwargs - _ = await models.Subscription.filter(uid=uid).update(**update_map) - return True - except: - return False - - -async def init(): - async with DB() as db: - await db.init() - - -driver = get_driver() -driver.on_startup(init) |