mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-30 04:40:59 +00:00
feat: support UMAMI analytics
This commit is contained in:
18
main.go
18
main.go
@@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"embed"
|
"embed"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
@@ -15,6 +16,7 @@ import (
|
|||||||
"one-api/setting/operation_setting"
|
"one-api/setting/operation_setting"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/bytedance/gopkg/util/gopool"
|
"github.com/bytedance/gopkg/util/gopool"
|
||||||
"github.com/gin-contrib/sessions"
|
"github.com/gin-contrib/sessions"
|
||||||
@@ -161,6 +163,22 @@ func main() {
|
|||||||
})
|
})
|
||||||
server.Use(sessions.Sessions("session", store))
|
server.Use(sessions.Sessions("session", store))
|
||||||
|
|
||||||
|
analyticsInjectBuilder := &strings.Builder{}
|
||||||
|
if os.Getenv("UMAMI_WEBSITE_ID") != "" {
|
||||||
|
umamiSiteID := os.Getenv("UMAMI_WEBSITE_ID")
|
||||||
|
umamiScriptURL := os.Getenv("UMAMI_SCRIPT_URL")
|
||||||
|
if umamiScriptURL == "" {
|
||||||
|
umamiScriptURL = "https://analytics.umami.is/script.js"
|
||||||
|
}
|
||||||
|
analyticsInjectBuilder.WriteString("<script defer src=\"")
|
||||||
|
analyticsInjectBuilder.WriteString(umamiScriptURL)
|
||||||
|
analyticsInjectBuilder.WriteString("\" data-website-id=\"")
|
||||||
|
analyticsInjectBuilder.WriteString(umamiSiteID)
|
||||||
|
analyticsInjectBuilder.WriteString("\"></script>")
|
||||||
|
}
|
||||||
|
analyticsInject := analyticsInjectBuilder.String()
|
||||||
|
indexPage = bytes.ReplaceAll(indexPage, []byte("<analytics></analytics>\n"), []byte(analyticsInject))
|
||||||
|
|
||||||
router.SetRouter(server, buildFS, indexPage)
|
router.SetRouter(server, buildFS, indexPage)
|
||||||
var port = os.Getenv("PORT")
|
var port = os.Getenv("PORT")
|
||||||
if port == "" {
|
if port == "" {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
content="OpenAI 接口聚合管理,支持多种渠道包括 Azure,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用"
|
content="OpenAI 接口聚合管理,支持多种渠道包括 Azure,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用"
|
||||||
/>
|
/>
|
||||||
<title>New API</title>
|
<title>New API</title>
|
||||||
|
<analytics></analytics>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
|||||||
Reference in New Issue
Block a user