logo和配置修改

This commit is contained in:
谢宇宁
2026-09-23 16:50:34 +07:00
parent bef9f8b4ed
commit 0db8087765
163 changed files with 393 additions and 20366 deletions
+13 -77
View File
@@ -13,7 +13,7 @@ import (
"github.com/gin-gonic/gin"
)
// HTML 渲染页面并注入 footer / 导航 / 公共配置 / 登录态(以 cookie 为准)。
// HTML 渲染页面并注入 footer / 导航 / 公共配置,并确保存在游客会话。
func HTML(c *gin.Context, code int, name string, data gin.H) {
if data == nil {
data = gin.H{}
@@ -69,7 +69,6 @@ func HTML(c *gin.Context, code int, name string, data gin.H) {
if !ok {
cfg = configser.FetchAppConfigVMOrEmpty(c)
}
cfg = configser.ApplyTrackerFallback(cfg)
data["appConfig"] = cfg
siteURL := seoser.ResolveSiteURL(c, cfg)
data["foreverUrlAddr"] = siteURL
@@ -79,7 +78,6 @@ func HTML(c *gin.Context, code int, name string, data gin.H) {
canonicalURL = seoser.ContentCanonicalURL(siteURL, canonicalURL, map[string]any(data))
data["canonicalURL"] = canonicalURL
data["seoVerify"] = seoser.VerifyFromConfig()
attachTrackerPage(c, code, data)
noindex := pageNoIndex(data)
if noindex {
data["noindex"] = true
@@ -88,84 +86,14 @@ func HTML(c *gin.Context, code int, name string, data gin.H) {
data["jsonLD"] = seoser.PageJSONLD(siteURL, canonicalURL, c.Request.URL.RequestURI(), map[string]any(data), cfg)
}
// 无登录 token 时自动游客登录(POST /api/app/auth/guest),保证默认进入即有会话。
// 无 token 时静默建立游客会话(POST /api/app/auth/guest),上游内容接口依赖该会话。
authser.EnsureGuestOnEnter(c)
loggedIn, userName, avatar, email := authser.AuthFromCookies(c)
registered := authser.IsRegisteredFromCookies(c)
data["isLoggedIn"] = loggedIn
data["isRegistered"] = registered
if _, ok := data["isVip"]; !ok {
data["isVip"] = loggedIn && authser.IsActiveVipFromCookies(c)
}
isVip, _ := data["isVip"].(bool)
data["isVip"] = isVip
if loggedIn {
if userName != "" {
data["userName"] = userName
}
if avatar != "" {
data["avatar"] = avatar
}
if email != "" {
data["email"] = email
}
if _, ok := data["userId"]; !ok {
if uid := authser.UserIDFromCookies(c); uid > 0 {
data["userId"] = authser.FormatUserID(uid)
}
}
// 允许页面 handler 先注入最新钱包数据(如 getInfo),避免被 cookie 覆盖。
if _, ok := data["recharge"]; !ok {
recharge := authser.RechargeFromCookies(c)
data["recharge"] = recharge
data["rechargeText"] = authser.FormatRecharge(recharge)
} else if _, ok := data["rechargeText"]; !ok {
data["rechargeText"] = authser.FormatRecharge(toInt64(data["recharge"]))
}
if _, ok := data["vipType"]; !ok {
data["vipType"] = authser.VipTypeFromCookies(c)
}
vipType := toInt(data["vipType"])
data["vipType"] = vipType
if _, ok := data["showCardName"]; !ok {
data["showCardName"] = authser.ShowCardNameFromCookies(c)
}
showCardName, _ := data["showCardName"].(string)
data["showCardName"] = strings.TrimSpace(showCardName)
if _, ok := data["showCardId"]; !ok {
data["showCardId"] = authser.ShowCardIDFromCookies(c)
}
if isVip {
if _, ok := data["vipLabel"]; !ok {
data["vipLabel"] = authser.VipDisplayLabel(showCardName, vipType)
}
if _, ok := data["vipExpireText"]; !ok {
data["vipExpireText"] = authser.VipExpireTextFromCookies(c)
}
} else {
delete(data, "vipLabel")
delete(data, "vipExpireText")
}
} else {
delete(data, "userName")
delete(data, "avatar")
delete(data, "email")
delete(data, "userId")
delete(data, "recharge")
delete(data, "rechargeText")
delete(data, "vipType")
delete(data, "showCardId")
delete(data, "showCardName")
delete(data, "vipLabel")
delete(data, "vipExpireText")
}
c.HTML(code, name, data)
}
// buildPageConsoleData 构建浏览器控制台使用的页面返回数据快照。
// 快照在公共配置和 cookie 登录态注入前生成,避免把会话相关公共字段写入日志。
// 快照不包含公共配置等大字段。
func buildPageConsoleData(path string, code int, templateName string, data gin.H) gin.H {
pageData := make(gin.H, len(data))
for key, value := range data {
@@ -191,8 +119,7 @@ func buildPageConsoleData(path string, code int, templateName string, data gin.H
func pageConsoleExcludedKey(key string) bool {
switch key {
case "pageConsoleData", "appConfig", "footer", "headerNav", "jsonLD", "seoVerify",
"isLoggedIn", "isRegistered", "userName", "avatar", "email", "userId":
case "pageConsoleData", "appConfig", "footer", "headerNav", "jsonLD", "seoVerify":
return true
default:
return false
@@ -312,3 +239,12 @@ func toInt64(v any) int64 {
func toInt(v any) int {
return int(toInt64(v))
}
func firstNonEmpty(values ...string) string {
for _, v := range values {
if strings.TrimSpace(v) != "" {
return v
}
}
return ""
}