feat:初版

This commit is contained in:
2025-12-03 15:48:44 +08:00
commit b4df26f61d
199 changed files with 23434 additions and 0 deletions

54
database/keyvalDB.py Normal file
View File

@@ -0,0 +1,54 @@
"""
KeyvalDB - 键值数据库(简化版,仅使用 aiosqlite
"""
import aiosqlite
from loguru import logger
from utils.singleton import Singleton
class KeyvalDB(metaclass=Singleton):
"""键值存储数据库"""
def __init__(self):
self.db_path = "database/keyval.db"
self.conn = None
async def initialize(self):
"""初始化数据库"""
self.conn = await aiosqlite.connect(self.db_path)
await self.conn.execute("""
CREATE TABLE IF NOT EXISTS keyval (
key TEXT PRIMARY KEY,
value TEXT
)
""")
await self.conn.commit()
logger.debug("KeyvalDB 初始化完成")
async def set(self, key: str, value: str):
"""设置键值"""
await self.conn.execute(
"INSERT OR REPLACE INTO keyval (key, value) VALUES (?, ?)",
(key, value)
)
await self.conn.commit()
async def get(self, key: str):
"""获取值"""
cursor = await self.conn.execute(
"SELECT value FROM keyval WHERE key = ?",
(key,)
)
row = await cursor.fetchone()
return row[0] if row else None
async def delete(self, key: str):
"""删除键"""
await self.conn.execute("DELETE FROM keyval WHERE key = ?", (key,))
await self.conn.commit()
async def close(self):
"""关闭连接"""
if self.conn:
await self.conn.close()