Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
@@ -0,0 +1,80 @@
package vidtonesearcher
import (
"91porn-server/app/service/searcher"
"91porn-server/common/log"
"91porn-server/models/s/statvidtotalmod"
"91porn-server/models/v/tonerecomod"
"91porn-server/models/v/vidmod"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type ObjectID = primitive.ObjectID
type VideoSy = searcher.VideoInfo
// VidToneSearcher VidToneSearcher
type goldCoinAreaSearcher struct {
uid uint64
}
var zero = int64(0)
// newGoldCoinAreaSearcher newGoldCoinAreaSearcher
func newGoldCoinAreaSearcher(uid uint64) searcher.Searcher {
return &goldCoinAreaSearcher{
uid: uid,
}
}
// Search Search
func (g *goldCoinAreaSearcher) Search(unuse searcher.KeyWorder, opt searcher.Opter) (result searcher.Resulter, err error) {
limitEx1 := opt.Limit() + 1
vidList, err := vidmod.GetPayVidList(opt.Sort(), opt.Skip(), limitEx1)
if err != nil {
return nil, err
}
if len(vidList) == 0 {
return &Result{
&Resp{
Theme: tonerecomod.GoldCoinArea,
List: []VideoRes{},
PayCount: &zero,
},
}, nil
}
hasNext := false
if len(vidList) > int(opt.Limit()) {
hasNext = true
vidList = vidList[:opt.Limit()]
}
videoInfoList, err := searcher.GetVideoResList(g.uid, vidList)
if err != nil {
return nil, err
}
log.Info("goldCoinArea search result", log.Any("totalVideoCount", len(vidList)), log.Any("respVideoCount", len(videoInfoList)))
payCountMap, err := statvidtotalmod.GetPayCountMap(vidList)
if err != nil {
return nil, err
}
videoInfoPCList := make([]VideoRes, 0, len(videoInfoList))
for _, info := range videoInfoList {
if info.VideoInfo.ID == nil {
continue
}
id := *info.VideoInfo.ID
payCount := int(payCountMap[id])
info.VideoInfo.PayCount = &payCount
videoInfoPCList = append(videoInfoPCList, info)
}
goldCoinAreaPayCount := GetToneValue().GoldCoinAreaPayCount
return &Result{
&Resp{
List: videoInfoPCList,
Theme: tonerecomod.GoldCoinArea,
PayCount: &goldCoinAreaPayCount,
HasNext: hasNext,
},
}, nil
}