增加避雷功能
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
# pyright: reportArgumentType=false
|
||||
# pyright: reportAttributeAccessIssue=false
|
||||
# pyright: reportIndexIssue=false
|
||||
# pyright: reportOptionalMemberAccess=false
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Dict, Any, Optional, List, Union
|
||||
|
||||
from astrbot.api import logger
|
||||
from astrbot.api import AstrBotConfig
|
||||
|
||||
from .sqlite import AsyncSQLiteDB
|
||||
from .fun_basic import load_template
|
||||
class BiLeidata:
|
||||
def __init__(self,sqlite:AsyncSQLiteDB):
|
||||
# 引用sqlite
|
||||
self._sql_db = sqlite
|
||||
|
||||
def _init_return_data(self) -> Dict[str, Any]:
|
||||
"""初始化标准的返回数据结构"""
|
||||
return {
|
||||
"code": 0,
|
||||
"msg": "功能函数未执行",
|
||||
"data": {}
|
||||
}
|
||||
|
||||
|
||||
# --- 业务功能函数 ---
|
||||
async def add(self,name: str, text: str ,user: str) -> Dict[str, Any]:
|
||||
"""避雷添加"""
|
||||
return_data = self._init_return_data()
|
||||
|
||||
# 获取系统时间
|
||||
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
# 添加数据
|
||||
try:
|
||||
await self._sql_db.insert(
|
||||
"bilei",
|
||||
{
|
||||
"name": name,
|
||||
"text": text,
|
||||
"time": now,
|
||||
"user": user,
|
||||
}
|
||||
)
|
||||
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"添加避雷失败: {e}")
|
||||
return_data["msg"] = "添加避雷失败"
|
||||
return return_data
|
||||
|
||||
return_data["data"] = (
|
||||
"避雷添加成功\n"
|
||||
f"避雷名称:{name}\n"
|
||||
f"避雷备注:{text}\n"
|
||||
f"添加时间:{now}\n"
|
||||
f"记录人:{user}\n"
|
||||
)
|
||||
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
async def all(self) -> Dict[str, Any]:
|
||||
"""避雷查看"""
|
||||
return_data = self._init_return_data()
|
||||
|
||||
|
||||
# 查询数据
|
||||
try:
|
||||
data = await self._sql_db.select_all("bilei")
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"查看避雷失败: {e}")
|
||||
return_data["msg"] = "查看避雷失败"
|
||||
return return_data
|
||||
|
||||
if not data:
|
||||
return_data["msg"] = "未找到避雷数据"
|
||||
return return_data
|
||||
|
||||
|
||||
# 加载模板
|
||||
try:
|
||||
return_data["temp"] = await load_template("bilei.html")
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"加载模板失败: {e}")
|
||||
return_data["msg"] = "系统错误:模板文件不存在"
|
||||
return return_data
|
||||
|
||||
# 数据处理
|
||||
return_data["data"]["lists"] = data
|
||||
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
async def select(self, name:str) -> Dict[str, Any]:
|
||||
"""避雷查询 名称"""
|
||||
return_data = self._init_return_data()
|
||||
|
||||
# 模糊拼接
|
||||
like_name = f"%{name}%"
|
||||
# 查询数据
|
||||
try:
|
||||
data = await self._sql_db.select_all(
|
||||
"bilei",
|
||||
"name LIKE ?",
|
||||
(like_name,)
|
||||
)
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"查询避雷失败: {e}")
|
||||
return_data["msg"] = "查询避雷失败"
|
||||
return return_data
|
||||
|
||||
if not data:
|
||||
return_data["msg"] = "未查询到避雷数据"
|
||||
return return_data
|
||||
|
||||
|
||||
# 加载模板
|
||||
try:
|
||||
return_data["temp"] = await load_template("bilei.html")
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"加载模板失败: {e}")
|
||||
return_data["msg"] = "系统错误:模板文件不存在"
|
||||
return return_data
|
||||
|
||||
# 数据处理
|
||||
return_data["data"]["lists"] = data
|
||||
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
async def update(self, id:int, name: str, text: str ,user: str) -> Dict[str, Any]:
|
||||
"""避雷修改 ID 名称 备注"""
|
||||
return_data = self._init_return_data()
|
||||
|
||||
data = await self._sql_db.select_one(
|
||||
"bilei",
|
||||
"id=?",
|
||||
(id,)
|
||||
)
|
||||
|
||||
if not data:
|
||||
return_data["msg"] = "没有当前ID"
|
||||
return return_data
|
||||
|
||||
# 获取系统时间
|
||||
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
# 修改数据
|
||||
try:
|
||||
await self._sql_db.update(
|
||||
"bilei",
|
||||
{
|
||||
"name": name,
|
||||
"text": text,
|
||||
"time": now,
|
||||
"user": user,
|
||||
},
|
||||
"id=?",
|
||||
(id,)
|
||||
)
|
||||
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"避雷修改失败: {e}")
|
||||
return_data["msg"] = "避雷修改失败"
|
||||
return return_data
|
||||
|
||||
return_data["data"] = (
|
||||
"避雷修改成功\n"
|
||||
f"ID:{id}\n"
|
||||
f"避雷名称:{name}\n"
|
||||
f"避雷备注:{text}\n"
|
||||
f"修改时间:{now}\n"
|
||||
f"修改人:{user}\n"
|
||||
)
|
||||
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
async def delete(self, id:int) -> Dict[str, Any]:
|
||||
"""避雷删除 ID"""
|
||||
return_data = self._init_return_data()
|
||||
|
||||
data = await self._sql_db.select_one(
|
||||
"bilei",
|
||||
"id=?",
|
||||
(id,)
|
||||
)
|
||||
|
||||
if not data:
|
||||
return_data["msg"] = "没有当前ID"
|
||||
return return_data
|
||||
|
||||
# 删除
|
||||
try:
|
||||
await self._sql_db.delete(
|
||||
"bilei",
|
||||
"id=?",
|
||||
(id,)
|
||||
)
|
||||
|
||||
except FileNotFoundError as e:
|
||||
logger.error(f"避雷删除失败: {e}")
|
||||
return_data["msg"] = "避雷删除失败"
|
||||
return return_data
|
||||
|
||||
return_data["data"] = f"避雷删除成功。ID:{id}"
|
||||
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
Reference in New Issue
Block a user