logo和配置修改
This commit is contained in:
+13
-77
@@ -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 ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user