40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
package web
|
|
|
|
import (
|
|
"videoweb/app/service/playletser"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// ThemeIndex 专题列表页:专题数据来自 GET /api/app/theme/list?themeType=2。
|
|
func ThemeIndex(c *gin.Context) {
|
|
q := playletser.ParseThemeIndexQuery(c.Param("page"))
|
|
if redirectCanonical(c, playletser.ThemeIndexCanonicalPath(q)) {
|
|
return
|
|
}
|
|
themes := playletser.FetchThemesOrEmpty(c, 2)
|
|
list, totalCount := playletser.BuildThemeIndexPage(themes, q)
|
|
if playletser.PageOutOfRange(q.PageNum, q.PageSize, totalCount) {
|
|
NotFound(c, "页面不存在")
|
|
return
|
|
}
|
|
|
|
data := gin.H{
|
|
"title": "AI成人短剧专题推荐" + playletser.PageTitleSuffix(q.PageNum),
|
|
"description": "专题集中展示黄果短剧各类精品专题合集,涵盖AI成人短剧、AI色情短剧、擦边短剧、AI换脸、AI魔改等热门主题。内容丰富多样,每日持续更新。",
|
|
"pageKey": "theme_index",
|
|
"pageName": "专题",
|
|
"navActive": "topic",
|
|
"pageNum": q.PageNum,
|
|
"pagePath": playletser.ThemeIndexCanonicalPath(q),
|
|
"list": list,
|
|
"totalCount": totalCount,
|
|
"itemListOffset": (q.PageNum - 1) * q.PageSize,
|
|
"pagination": playletser.BuildThemeIndexPagination(q, totalCount),
|
|
}
|
|
if totalCount <= 0 || len(list) == 0 {
|
|
setNoIndex(data, true)
|
|
}
|
|
HTMLOK(c, "themeIndex.html", data)
|
|
}
|