uplist.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package wxbroadcastv2
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "git.jiaxianghudong.com/webs/pkg/rds"
  6. )
  7. type Video struct {
  8. Index int `json:"index"`
  9. Img string `json:"img"`
  10. Name string `json:"name"`
  11. Name2 string `json:"name2"`
  12. Export string `json:"export"`
  13. VideoId string `json:"video_id"`
  14. Star bool `json:"star"`
  15. }
  16. type VideoConfig struct {
  17. VideoList []*Video `json:"video_list"`
  18. }
  19. func (this *VideoConfig) Store() error {
  20. marshal, _ := json.Marshal(this)
  21. err := rds.Redis.Set(WXBROADCASTVIDEO, string(marshal), -1).Err()
  22. return err
  23. }
  24. func (this *VideoConfig) Load() error {
  25. val := rds.Redis.Get(WXBROADCASTVIDEO).Val()
  26. if val != "" {
  27. json.Unmarshal([]byte(val), this)
  28. }
  29. return nil
  30. }
  31. func (this *VideoConfig) LoadV2(channel, appid int32, reload bool) error {
  32. var val string
  33. if channel > 0 && appid > 0 {
  34. val = rds.Redis.HGet(WXBROADCASTVIDEOSPE, fmt.Sprintf("%v_%v", channel, appid)).Val()
  35. }
  36. if (reload && val == "") || (channel == 0 && appid == 0) { //如果是旧的或者是配置通用的
  37. val = rds.Redis.Get(WXBROADCASTVIDEO).Val()
  38. }
  39. if val != "" {
  40. json.Unmarshal([]byte(val), this)
  41. }
  42. return nil
  43. }
  44. func (this *VideoConfig) StoreV2(channel, appid int32) (err error) {
  45. marshal, _ := json.Marshal(this)
  46. if channel > 0 && appid > 0 {
  47. err = rds.Redis.HSet(WXBROADCASTVIDEOSPE, fmt.Sprintf("%v_%v", channel, appid), string(marshal)).Err()
  48. } else {
  49. err = rds.Redis.Set(WXBROADCASTVIDEO, string(marshal), -1).Err()
  50. }
  51. return err
  52. }