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 }