From f775a7f6050652ad6cd76706537ce4fe43798621 Mon Sep 17 00:00:00 2001 From: xing Date: Sun, 16 Mar 2025 23:20:13 +0800 Subject: [PATCH] optimize code --- app/middleware/flowLimit.go | 19 +++++++++++++++++++ app/route/route.go | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/middleware/flowLimit.go b/app/middleware/flowLimit.go index 9a2edc7..dded753 100644 --- a/app/middleware/flowLimit.go +++ b/app/middleware/flowLimit.go @@ -5,6 +5,7 @@ import ( "github.com/fthvgb1/wp-go/safety" "github.com/gin-gonic/gin" "net/http" + "strings" "sync/atomic" "time" ) @@ -36,3 +37,21 @@ func FlowLimit(maxRequestSleepNum, maxRequestNum int64, sleepTime []time.Duratio c.Next() }, 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 +} diff --git a/app/route/route.go b/app/route/route.go index 8c0878c..c396ec6 100644 --- a/app/route/route.go +++ b/app/route/route.go @@ -59,7 +59,7 @@ func SetupRouter() *gin.Engine { wpconfig.SetTemplateFs(theme.TemplateFs) }, 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() { c = config.GetConfig() siteFlow(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)