mirror of
https://github.com/Ed1s0nZ/PrivHunterAI.git
synced 2025-05-05 10:17:01 +00:00
Update index.go
This commit is contained in:
parent
a0d22436f6
commit
d66d7a1294
95
index.go
95
index.go
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@ -11,20 +12,85 @@ var Resp []Result // 数据存储在全局切片中
|
||||
func Index() {
|
||||
r := gin.Default()
|
||||
|
||||
// 初始化数据
|
||||
// initData()
|
||||
|
||||
// 提供前端静态文件服务
|
||||
r.LoadHTMLFiles("index.html") // 加载前端页面
|
||||
r.LoadHTMLFiles("index.html") // 加载前端页面
|
||||
r.Static("/static", "./static") // 为前端静态资源提供服务
|
||||
|
||||
r.GET("/", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "index.html", nil)
|
||||
})
|
||||
|
||||
// 提供 API 接口
|
||||
// 分页数据接口
|
||||
r.GET("/data", func(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, Resp)
|
||||
// 获取分页参数
|
||||
page, err1 := strconv.Atoi(c.Query("page"))
|
||||
pageSize, err2 := strconv.Atoi(c.Query("pageSize"))
|
||||
resultFilter := c.Query("result")
|
||||
|
||||
if err1 != nil || page < 1 {
|
||||
page = 1
|
||||
}
|
||||
if err2 != nil || pageSize < 1 {
|
||||
pageSize = 10
|
||||
}
|
||||
|
||||
// 应用筛选条件
|
||||
var filteredData []Result
|
||||
for _, item := range Resp {
|
||||
if resultFilter == "" || item.Result == resultFilter {
|
||||
filteredData = append(filteredData, item)
|
||||
}
|
||||
}
|
||||
|
||||
// 计算分页数据
|
||||
total := len(filteredData)
|
||||
offset := (page - 1) * pageSize
|
||||
var data []Result
|
||||
if offset < total {
|
||||
if offset+pageSize > total {
|
||||
data = filteredData[offset:]
|
||||
} else {
|
||||
data = filteredData[offset : offset+pageSize]
|
||||
}
|
||||
}
|
||||
|
||||
// 返回响应
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"data": data,
|
||||
"total": total,
|
||||
"currentPage": page,
|
||||
"pageSize": pageSize,
|
||||
"totalPages": (total + pageSize - 1) / pageSize,
|
||||
})
|
||||
})
|
||||
|
||||
// 统计数据接口
|
||||
r.GET("/stats", func(c *gin.Context) {
|
||||
total := len(Resp)
|
||||
vulnerable := 0
|
||||
unknown := 0
|
||||
safe := 0
|
||||
|
||||
for _, item := range Resp {
|
||||
switch item.Result {
|
||||
case "true":
|
||||
vulnerable++
|
||||
case "unknown":
|
||||
unknown++
|
||||
case "false":
|
||||
safe++
|
||||
}
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"total": total,
|
||||
"vulnerable": vulnerable,
|
||||
"unknown": unknown,
|
||||
"safe": safe,
|
||||
})
|
||||
})
|
||||
|
||||
// 添加数据接口
|
||||
r.POST("/update", func(c *gin.Context) {
|
||||
var newData Result
|
||||
if err := c.ShouldBindJSON(&newData); err != nil {
|
||||
@ -35,23 +101,6 @@ func Index() {
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Data updated successfully"})
|
||||
})
|
||||
|
||||
r.POST("/filter", func(c *gin.Context) {
|
||||
var filterData struct {
|
||||
Result string `json:"result"`
|
||||
}
|
||||
if err := c.ShouldBindJSON(&filterData); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
filteredData := []Result{}
|
||||
for _, item := range Resp {
|
||||
if item.Result == filterData.Result {
|
||||
filteredData = append(filteredData, item)
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, filteredData)
|
||||
})
|
||||
|
||||
// 启动服务
|
||||
r.Run(":8222")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user