From 59c923bbc3e91ad5a3482ec81c9192297ebbebe8 Mon Sep 17 00:00:00 2001
From: Kyomotoi <kyomotoiowo@gmail.com>
Date: Mon, 13 Jun 2022 19:37:34 +0800
Subject: =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E9=87=8D=E6=9E=84=E6=8F=92?=
 =?UTF-8?q?=E4=BB=B6:=20b=E7=AB=99=E5=8A=A8=E6=80=81=E8=AE=A2=E9=98=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ATRI/plugins/bilibili_dynamic/database/db.py | 49 ++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 ATRI/plugins/bilibili_dynamic/database/db.py

(limited to 'ATRI/plugins/bilibili_dynamic/database/db.py')

diff --git a/ATRI/plugins/bilibili_dynamic/database/db.py b/ATRI/plugins/bilibili_dynamic/database/db.py
new file mode 100644
index 0000000..37ed223
--- /dev/null
+++ b/ATRI/plugins/bilibili_dynamic/database/db.py
@@ -0,0 +1,49 @@
+from pathlib import Path
+from tortoise import Tortoise
+
+from ATRI import driver
+from .models import Subscription
+
+
+DB_DIR = Path(".") / "data" / "database" / "bilibili_dynamic"
+DB_DIR.mkdir(parents=True, exist_ok=True)
+
+
+class DB:
+    async def __aenter__(self):
+        return self
+
+    async def __aexit__(self, exc_type, exc_val, exc_tb):
+        pass
+
+    async def init(self):
+        from . import models
+
+        await Tortoise.init(
+            db_url=f"sqlite://{DB_DIR}/db.sqlite3",
+            modules={"models": [locals()["models"]]},
+        )
+        await Tortoise.generate_schemas()
+
+    async def add_sub(self, uid: int, group_id: int):
+        await Subscription.create(uid=uid, group_id=group_id)
+
+    async def update_sub(self, uid: int, update_map: dict):
+        await Subscription.filter(uid=uid).update(**update_map)
+
+    async def del_sub(self, query_map: dict):
+        await Subscription.filter(**query_map).delete()
+
+    async def get_sub_list(self, query_map: dict) -> list:
+        return await Subscription.filter(**query_map)
+
+    async def get_all_subs(self) -> list:
+        return await Subscription.all()
+
+
+async def init():
+    async with DB() as db:
+        await db.init()
+
+
+driver().on_startup(init)
-- 
cgit v1.2.3