Initial commit
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user