Files
web_huangguo_web/app/api/web/collect.go
T
fish03andClaude Opus 5.5 bef9f8b4ed Initial commit
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-23 14:43:16 +07:00

85 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package web
import (
"videoweb/app/service/playletser"
"videoweb/pub/common/log"
"videoweb/pub/common/useragent"
"github.com/gin-gonic/gin"
)
// Collect 我的收藏 SSR:
// 短剧 GET /api/app/playlet/collect/list;剧集 GET /api/app/playlet/chapter/collect/list。
func Collect(c *gin.Context) {
if useragent.TokenFromRequest(c.Request) == "" {
RedirectToLogin(c)
return
}
q := playletser.ParseCollectListQuery(routeOrQuery(c, "page", "page"), routeOrQuery(c, "type", "type"))
if redirectCanonical(c, playletser.CollectCanonicalPath(q)) {
return
}
data := gin.H{
"title": "我的收藏",
"description": "查看你在黄果短剧收藏的短剧与剧集,随时继续追更喜欢的内容。",
"navActive": "userCenter",
"collectType": q.Type,
"pageNum": q.PageNum,
"pageSize": q.PageSize,
"totalCount": int64(0),
"pagination": playletser.BuildCollectPagination(q, 0),
}
setNoIndex(data, false)
if q.Type == playletser.CollectTypeChapter {
raw, code, err := playletser.FetchChapterCollectList(c, q)
if err != nil {
aborted, retry := AbortSSRIfSessionExpired(c, code)
if aborted {
return
}
if retry {
raw, _, err = playletser.FetchChapterCollectList(c, q)
}
if err != nil {
log.Error("fetch playlet chapter collect list failed", log.E(err))
raw = &playletser.PlayletChapterCollectListResp{PageNum: q.PageNum, PageSize: q.PageSize}
}
}
if raw == nil {
raw = &playletser.PlayletChapterCollectListResp{PageNum: q.PageNum, PageSize: q.PageSize}
}
data["chapterList"] = raw.List
data["pageNum"] = raw.PageNum
data["pageSize"] = raw.PageSize
data["totalCount"] = raw.TotalCount
data["pagination"] = playletser.BuildCollectPagination(q, raw.TotalCount)
} else {
raw, code, err := playletser.FetchCollectList(c, q)
if err != nil {
aborted, retry := AbortSSRIfSessionExpired(c, code)
if aborted {
return
}
if retry {
raw, _, err = playletser.FetchCollectList(c, q)
}
if err != nil {
log.Error("fetch playlet collect list failed", log.E(err))
raw = &playletser.PlayletCollectListResp{PageNum: q.PageNum, PageSize: q.PageSize}
}
}
if raw == nil {
raw = &playletser.PlayletCollectListResp{PageNum: q.PageNum, PageSize: q.PageSize}
}
data["list"] = raw.List
data["pageNum"] = raw.PageNum
data["pageSize"] = raw.PageSize
data["totalCount"] = raw.TotalCount
data["pagination"] = playletser.BuildCollectPagination(q, raw.TotalCount)
}
HTMLOK(c, "collect.html", data)
}