zhenxun_bot/plugins/web_ui/api/request.py
2023-12-30 05:27:45 +08:00

88 lines
3.4 KiB
Python

from typing import Optional
from fastapi import APIRouter
from configs.config import NICKNAME
from models.group_info import GroupInfo
from services.log import logger
from utils.manager import requests_manager
from utils.utils import get_bot
from ..base_model import RequestResult, Result
from ..models.params import HandleRequest
from ..utils import authentication
router = APIRouter()
@router.get("/get_request", dependencies=[authentication()])
def _(request_type: Optional[str]) -> Result:
try:
req_data = requests_manager.get_data()
req_list = []
if request_type in ["group", "private"]:
req_data = req_data[request_type]
for x in req_data:
req_data[x]["oid"] = x
req_list.append(RequestResult(**req_data[x]))
req_list.reverse()
except Exception as e:
logger.error("调用API错误", "/get_request", e=e)
return Result.fail(f"{type(e)}: {e}")
return Result.ok(req_list, f"{NICKNAME}带来了最新的数据!")
@router.delete("/clear_request", dependencies=[authentication()])
def _(request_type: Optional[str]) -> Result:
"""
清空请求
:param type_: 类型
"""
requests_manager.clear(request_type)
return Result.ok(info="成功清除了数据")
# @router.post("/handle_request", dependencies=[authentication()])
# async def _(parma: HandleRequest) -> Result:
# """
# 操作请求
# :param parma: 参数
# """
# try:
# result = "操作成功!"
# flag = 3
# if bot := get_bot():
# if parma.handle == "approve":
# if parma.type == "group":
# if rid := requests_manager.get_group_id(parma.id):
# # await GroupInfo.update_or_create(defaults={"group_flag": 1}, )
# if group := await GroupInfo.get_or_none(group_id=str(rid)):
# await group.update_or_create(group_flag=1)
# else:
# group_info = await bot.get_group_info(group_id=rid)
# await GroupInfo.update_or_create(
# group_id=str(group_info["group_id"]),
# defaults={
# "group_name": group_info["group_name"],
# "max_member_count": group_info["max_member_count"],
# "member_count": group_info["member_count"],
# "group_flag": 1,
# },
# )
# flag = await requests_manager.approve(bot, parma.id, parma.type)
# elif parma.handle == "refuse":
# flag = await requests_manager.refused(bot, parma.id, parma.type)
# elif parma.handle == "delete":
# requests_manager.delete_request(parma.id, parma.type)
# if parma.handle != "delete":
# if flag == 1:
# result = "该请求已失效"
# requests_manager.delete_request(parma.id, parma.type)
# elif flag == 2:
# result = "未找到此Id"
# return Result.ok(result, "成功处理了请求!")
# return Result.fail("Bot未连接")
# except Exception as e:
# logger.error("调用API错误", "/get_group", e=e)
# return Result.fail(f"{type(e)}: {e}")