Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

52 lines
1.2KB

  1. package main
  2. //procedure 000
  3. //available state
  4. var statesGetBasicUserInfo = map[string]chatState{
  5. "Intro": chatState{},
  6. "AskName": chatState{},
  7. "AskEnglishName": chatState{},
  8. "AskEmail": chatState{},
  9. "AskMobileNumber": chatState{},
  10. "AskProfilePhoto": chatState{},
  11. "Done": chatState{},
  12. }
  13. var validateGetBasicUserInfo = map[string]Validator{
  14. "validateChineseName": validateChineseName,
  15. }
  16. func proc000AskName(openid string) {
  17. s := chatState{}
  18. s.Name = "AskName"
  19. s.Expire = 300 //5 minutes
  20. s.Save = map[string]string{} //clear
  21. }
  22. func validateChineseName(s chatState) (r ValidationResult) {
  23. r.accept = true
  24. r.Error = ""
  25. //TODO
  26. input := "abc"
  27. // input := s.Receive.Message["name"]
  28. r.Hint = "通常中文名只有三个字或者四个字,比如 王更新,诸葛亮,司马相如,慕容白雪"
  29. if len(input) >= 10 {
  30. r.accept = false
  31. r.Error = "您的名字过长"
  32. }
  33. if len(input) <= 1 {
  34. r.accept = false
  35. r.Error = "您的名字很萌,就是有点太短了"
  36. }
  37. if len(input) >= 5 {
  38. r.Warning = "您的名字有点长,可以勉强接收"
  39. }
  40. return
  41. }
  42. func initGetBasicUserInfo(openid string) (initState chatState) {
  43. return
  44. }