add sens arg

This commit is contained in:
Autumn.home 2024-07-19 22:48:49 +08:00
parent cb9cb2b047
commit 8ee844817b
9 changed files with 47 additions and 5 deletions

View File

@ -98,6 +98,17 @@ WX:
![](docs/images/project-cn.png)
## 项目资产聚合
### 面板-概况
![](docs/images/project-dsh.png)
### 子域名
![](docs/images/project-subdomain.png)
### 端口
![](docs/images/project-port.png)
### 服务
![](docs/images/project-server.png)
## 任务
![](docs/images/task-cn.png)

View File

@ -147,7 +147,8 @@ async def get_page_monitoring_time():
async for db in get_mongo_db():
result = await db.ScheduledTasks.find_one({"id": "page_monitoring"})
time = result['hour']
return time
flag = result['state']
return time, flag
async def create_page_monitoring_task():

View File

@ -4,7 +4,7 @@
# @version:
from datetime import datetime
from bson import ObjectId
from bson import ObjectId, SON
from fastapi import APIRouter, Depends
from pymongo import DESCENDING
@ -305,6 +305,35 @@ async def get_sensitive_result_data2(request_data: dict, db=Depends(get_mongo_db
return {"message": "error","code":500}
@router.post("/sensitive/result/names")
async def get_sensitive_result_names(request_data: dict, db=Depends(get_mongo_db), _: dict = Depends(verify_token)):
query = await get_search_query("sens", request_data)
if query == "":
return {"message": "Search condition parsing error", "code": 500}
pipeline = [
{
"$match": query
},
{"$group": {"_id": "$sid", "count": {"$sum": 1}, "color": {"$first": "$color"}}},
{"$sort": SON([("count", -1)])},
{
"$project": {
"name": "$_id",
"count": 1,
"_id": 0,
"color": 1
}
}
]
result = await db['SensitiveResult'].aggregate(pipeline).to_list(None)
return {
"code": 200,
"data": {
'list': result
}
}
@router.post("/sensitive/result/body")
async def get_sensitive_result_body_rules(request_data: dict, db=Depends(get_mongo_db), _: dict = Depends(verify_token)):

View File

@ -404,7 +404,7 @@ async def get_search_query(name, request_data):
if query == "" or query is None:
return ""
query = query[0]
filter_key = {'app':'app','color': 'color', 'status': 'status', 'level': 'level', 'type': 'type', 'project': 'project', 'port': 'port', 'protocol': ['protocol', 'type'], 'icon': 'faviconmmh3', "statuscode":"statuscode"}
filter_key = {'app':'app','color': 'color', 'status': 'status', 'level': 'level', 'type': 'type', 'project': 'project', 'port': 'port', 'protocol': ['protocol', 'type'], 'icon': 'faviconmmh3', "statuscode": "statuscode", "sname": "sid"}
filter = request_data.get("filter", {})
if filter:
query["$and"] = []

BIN
docs/images/project-dsh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -114,7 +114,8 @@ async def startup_db_client():
find_page_m = True
if not find_page_m:
from api.scheduled_tasks import get_page_monitoring_time, create_page_monitoring_task
pat = await get_page_monitoring_time()
pat, flag = await get_page_monitoring_time()
if flag:
scheduler.add_job(create_page_monitoring_task, 'interval', hours=pat, id='page_monitoring', jobstore='mongo')
asyncio.create_task(subscribe_log_channel())