add RealUserMiddleware and update resource retrieval to track real users

This commit is contained in:
2025-09-01 17:40:57 +08:00
parent f067e802a2
commit 44b876ba0e
5 changed files with 29 additions and 7 deletions

View File

@@ -79,7 +79,7 @@ func serveIndexHtml(c fiber.Ctx) error {
idStr := strings.TrimPrefix(path, "/resources/")
id, err := strconv.Atoi(idStr)
if err == nil {
r, err := service.GetResource(uint(id), c.Hostname())
r, err := service.GetResource(uint(id), c.Hostname(), c)
if err == nil {
if len(r.Images) > 0 {
preview = fmt.Sprintf("%s/api/image/%d", serverBaseURL, r.Images[0].ID)

View File

@@ -0,0 +1,17 @@
package middleware
import (
"strings"
"github.com/gofiber/fiber/v3"
)
func RealUserMiddleware(c fiber.Ctx) error {
userAgent := c.Get("User-Agent")
if strings.Contains(userAgent, "Mozilla") || strings.Contains(userAgent, "AppleWebKit") {
c.Locals("real_user", true)
} else {
c.Locals("real_user", false)
}
return c.Next()
}