update frontend

This commit is contained in:
felinae98
2021-11-19 14:22:04 +08:00
parent f8a7eda467
commit ff8803e89b
7 changed files with 293 additions and 49 deletions
@@ -1,7 +1,5 @@
from dataclasses import dataclass
import importlib
from pathlib import Path
from typing import Callable
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
@@ -18,7 +16,7 @@ import functools
from starlette.requests import Request
from .api import test, get_global_conf, auth, get_subs_info, get_target_name, add_group_sub
from .api import del_group_sub, test, get_global_conf, auth, get_subs_info, get_target_name, add_group_sub
from .token_manager import token_manager as tm
from .jwt import load_jwt
from ..plugin_config import plugin_config
@@ -49,8 +47,10 @@ def register_router_fastapi(driver: Driver, socketio):
async def check_group_permission(groupNumber: str, token_obj: dict = Depends(get_jwt_obj)):
groups = token_obj['groups']
if groupNumber not in groups:
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
for group in groups:
if int(groupNumber) == group['id']:
return
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN)
@dataclass
class AddSubscribeReq:
@@ -76,6 +76,9 @@ def register_router_fastapi(driver: Driver, socketio):
async def _add_group_subs(groupNumber: str, req: AddSubscribeReq):
return await add_group_sub(group_number=groupNumber, platform_name=req.platformName,
target=req.target, target_name=req.targetName, cats=req.categories, tags=req.tags)
@app.delete(SUBSCRIBE_URL, dependencies=[Depends(check_group_permission)])
async def _del_group_subs(groupNumber: str, target: str, platformName: str):
return await del_group_sub(groupNumber, platformName, target)
app.mount(URL_BASE, StaticFiles(directory=static_path, html=True), name="bison")
templates = Jinja2Templates(directory=static_path)
+10 -3
View File
@@ -1,7 +1,7 @@
from ..platform import platform_manager, check_sub_target
from .token_manager import token_manager
from .jwt import pack_jwt
from ..config import Config
from ..config import Config, NoSuchSubscribeException, NoSuchUserException
import nonebot
from nonebot.adapters.cqhttp.bot import Bot
@@ -53,7 +53,7 @@ async def get_subs_info(jwt_obj: dict):
group_id = group['id']
config = Config()
subs = list(map(lambda sub: {
'targetType': sub['target_type'], 'target': sub['target'], 'targetName': sub['target_name'], 'cats': sub['cats'], 'tags': sub['tags']
'platformName': sub['target_type'], 'target': sub['target'], 'targetName': sub['target_name'], 'cats': sub['cats'], 'tags': sub['tags']
}, config.list_subscribe(group_id, 'group')))
res[group_id] = {
'name': group['name'],
@@ -67,6 +67,13 @@ async def get_target_name(platform_name: str, target: str, jwt_obj: dict):
async def add_group_sub(group_number: str, platform_name: str, target: str,
target_name: str, cats: list[str], tags: list[str]):
config = Config()
config.add_subscribe(group_number, 'group', target, target_name, platform_name, cats, tags)
config.add_subscribe(int(group_number), 'group', target, target_name, platform_name, cats, tags)
return { 'status': 200, 'msg': '' }
async def del_group_sub(group_number: str, platform_name: str, target: str):
config = Config()
try:
config.del_subscribe(int(group_number), 'group', target, platform_name)
except (NoSuchUserException, NoSuchSubscribeException):
return { 'status': 400, 'msg': '删除错误' }
return { 'status': 200, 'msg': '' }