from fastapi import APIRouter from starlette.responses import JSONResponse from pagermaid.common.ignore import ignore_groups_manager, get_group_list from pagermaid.web.api import authentication route = APIRouter() @route.get( "/get_ignore_group_list", response_class=JSONResponse, dependencies=[authentication()], ) async def get_ignore_group_list(): try: groups = [] for data in await get_group_list(): data["status"] = ignore_groups_manager.check_id(data["id"]) groups.append(data) return {"status": 0, "msg": "ok", "data": {"groups": groups}} except BaseException: return {"status": -100, "msg": "获取群组列表失败"} @route.post( "/set_ignore_group_status", response_class=JSONResponse, dependencies=[authentication()], ) async def set_ignore_group_status(data: dict): cid: int = data.get("id") status: bool = data.get("status") if status: ignore_groups_manager.add_id(cid) else: ignore_groups_manager.del_id(cid) return {"status": 0, "msg": f'成功{"忽略" if status else "取消忽略"} {cid}'} @route.post( "/clear_ignore_group", response_class=JSONResponse, dependencies=[authentication()] ) async def clear_ignore_group(): ignore_groups_manager.clear_subs() return {"status": 0, "msg": "成功清空忽略列表"}