From da98972ddabcd7a1476e81a3bb511a23169c14f2 Mon Sep 17 00:00:00 2001 From: wzxjohn Date: Fri, 16 May 2025 16:44:47 +0800 Subject: [PATCH] feat: support UMAMI analytics --- main.go | 18 ++++++++++++++++++ web/index.html | 1 + 2 files changed, 19 insertions(+) diff --git a/main.go b/main.go index 95c6820d7..e9f55b093 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "embed" "fmt" "log" @@ -15,6 +16,7 @@ import ( "one-api/setting/operation_setting" "os" "strconv" + "strings" "github.com/bytedance/gopkg/util/gopool" "github.com/gin-contrib/sessions" @@ -161,6 +163,22 @@ func main() { }) 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("") + } + analyticsInject := analyticsInjectBuilder.String() + indexPage = bytes.ReplaceAll(indexPage, []byte("\n"), []byte(analyticsInject)) + router.SetRouter(server, buildFS, indexPage) var port = os.Getenv("PORT") if port == "" { diff --git a/web/index.html b/web/index.html index 1e75f3d74..c6ce7b841 100644 --- a/web/index.html +++ b/web/index.html @@ -10,6 +10,7 @@ content="OpenAI 接口聚合管理,支持多种渠道包括 Azure,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用" /> New API +