optimize code

This commit is contained in:
xing 2025-03-16 23:20:13 +08:00
parent 2131e6862f
commit f775a7f605
2 changed files with 20 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import (
"github.com/fthvgb1/wp-go/safety" "github.com/fthvgb1/wp-go/safety"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"net/http" "net/http"
"strings"
"sync/atomic" "sync/atomic"
"time" "time"
) )
@ -36,3 +37,21 @@ func FlowLimit(maxRequestSleepNum, maxRequestNum int64, sleepTime []time.Duratio
c.Next() c.Next()
}, fn }, fn
} }
func WPFlowLimit(maxRequestSleepNum, maxRequestNum int64, sleepTime []time.Duration) (func(ctx *gin.Context), func(int64, int64, []time.Duration)) {
statPath := map[string]struct{}{
"wp-includes": {},
"wp-content": {},
"favicon.ico": {},
}
next, reFn := FlowLimit(maxRequestSleepNum, maxRequestNum, sleepTime)
return func(c *gin.Context) {
f := strings.Split(strings.TrimLeft(c.FullPath(), "/"), "/")
_, ok := statPath[f[0]]
if len(f) > 0 && ok {
c.Next()
return
}
next(c)
}, reFn
}

View File

@ -59,7 +59,7 @@ func SetupRouter() *gin.Engine {
wpconfig.SetTemplateFs(theme.TemplateFs) wpconfig.SetTemplateFs(theme.TemplateFs)
}, 90.5) }, 90.5)
siteFlowLimitMiddleware, siteFlow := middleware.FlowLimit(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime) siteFlowLimitMiddleware, siteFlow := middleware.WPFlowLimit(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)
reload.Append(func() { reload.Append(func() {
c = config.GetConfig() c = config.GetConfig()
siteFlow(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime) siteFlow(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)