65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
package vidtonesearcher
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"91porn-server/app/appg"
|
|
"91porn-server/app/service/searcher"
|
|
"91porn-server/common/constant/redisconst"
|
|
"91porn-server/common/log"
|
|
"91porn-server/models/v/tonemod"
|
|
"91porn-server/models/v/tonerecomod"
|
|
)
|
|
|
|
type ToneValue = tonemod.ToneValue
|
|
|
|
// VidToneSearcher VidToneSearcher
|
|
type VidToneSearcher struct {
|
|
uid uint64
|
|
theme tonerecomod.ThemeType
|
|
}
|
|
|
|
// NewVidToneSearcher NewVidToneSearcher
|
|
func NewVidToneSearcher(theme tonerecomod.ThemeType, uid uint64) searcher.Searcher {
|
|
return &VidToneSearcher{
|
|
uid: uid,
|
|
theme: theme,
|
|
}
|
|
}
|
|
|
|
// Realm Realm
|
|
func (searcher *VidToneSearcher) Theme() string {
|
|
return searcher.theme
|
|
}
|
|
|
|
// Search Search
|
|
func (v *VidToneSearcher) Search(keyword searcher.KeyWorder, opt searcher.Opter) (result searcher.Resulter, err error) {
|
|
switch v.theme {
|
|
case tonerecomod.OfficialRecom:
|
|
return newOfficialRecomSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.GoldCoinArea:
|
|
return newGoldCoinAreaSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.LatestUpload:
|
|
return newLatestUploadSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.MostLikes:
|
|
return newMostLikesSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.PlayAtMost:
|
|
return newPlayAtMostSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.MostComments:
|
|
return newMostCommentsSearcher(v.uid).Search(nil, opt)
|
|
case tonerecomod.FreeArea:
|
|
return newFreeAreaSearcher(v.uid).Search(nil, opt)
|
|
default:
|
|
return nil, fmt.Errorf("search vidtonesearcher invalid theme: %s", v.theme)
|
|
}
|
|
}
|
|
|
|
func GetToneValue() ToneValue {
|
|
var toneValue ToneValue
|
|
redisKey := redisconst.ToneKey()
|
|
if err := appg.Redis.Scan(redisKey, &toneValue); err != nil {
|
|
log.Warn("search vidtonesearcher GetToneValue Scan error", log.E(err))
|
|
}
|
|
return toneValue
|
|
}
|