main.go 878 B

1234567891011121314151617181920212223242526272829303132333435
  1. package router
  2. import (
  3. "fmt"
  4. "net/http"
  5. "os"
  6. "strings"
  7. "github.com/QuantumNous/new-api/common"
  8. "github.com/QuantumNous/new-api/middleware"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func SetRouter(router *gin.Engine, assets ThemeAssets) {
  12. SetApiRouter(router)
  13. SetDashboardRouter(router)
  14. SetRelayRouter(router)
  15. SetVideoRouter(router)
  16. SetGeminiFileRouter(router)
  17. frontendBaseUrl := os.Getenv("FRONTEND_BASE_URL")
  18. if common.IsMasterNode && frontendBaseUrl != "" {
  19. frontendBaseUrl = ""
  20. common.SysLog("FRONTEND_BASE_URL is ignored on master node")
  21. }
  22. if frontendBaseUrl == "" {
  23. SetWebRouter(router, assets)
  24. } else {
  25. frontendBaseUrl = strings.TrimSuffix(frontendBaseUrl, "/")
  26. router.NoRoute(func(c *gin.Context) {
  27. c.Set(middleware.RouteTagKey, "web")
  28. c.Redirect(http.StatusMovedPermanently, fmt.Sprintf("%s%s", frontendBaseUrl, c.Request.RequestURI))
  29. })
  30. }
  31. }