scenario.go 789 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package model
  2. import (
  3. "net/url"
  4. "regexp"
  5. "strings"
  6. )
  7. const (
  8. IndexPage = iota //b=0
  9. DetailPage
  10. WorkDesk //c=1 相当于c=iota
  11. )
  12. var (
  13. scenarioName = map[int]string{
  14. IndexPage: "index", //网站首页
  15. DetailPage: "detail", //三级页
  16. WorkDesk: "workDesk", //工作桌面
  17. }
  18. regExpDetail = regexp.MustCompile("^/article/(\\w+)/(.*).html")
  19. )
  20. // GetScenario 获取场景
  21. func GetScenario(refer string) int {
  22. u, err := url.Parse(refer)
  23. if err == nil {
  24. if strings.HasPrefix(u.Path, "/page_workDesktop") {
  25. if strings.HasPrefix(u.Path, "/page_workDesktop/work-bench/page") {
  26. uu, err := url.Parse(u.Query().Get("link"))
  27. if err == nil && regExpDetail.MatchString(uu.Path) {
  28. return DetailPage
  29. }
  30. }
  31. return WorkDesk
  32. }
  33. }
  34. return IndexPage
  35. }