utils.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package utils
  2. import (
  3. "crypto/hmac"
  4. "crypto/sha1"
  5. "encoding/hex"
  6. "git.qianqiusoft.com/qianqiusoft/go-uuid/uuid"
  7. "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
  8. "github.com/gin-gonic/gin"
  9. "net/url"
  10. "strings"
  11. )
  12. const (
  13. hmac_key = "hmac_key_"
  14. )
  15. func NewUUID() string {
  16. //return uuid.NewV4().String()
  17. return uuid.New()
  18. }
  19. func GenerateToken(plain string) string {
  20. hash := hmac.New(sha1.New, []byte(hmac_key))
  21. hash.Write([]byte(plain))
  22. return hex.EncodeToString(hash.Sum(nil))
  23. }
  24. func TotalPage(record, size int) int {
  25. tp := record / size
  26. if tp < 0 {
  27. return 1
  28. }
  29. if record%size == 0 {
  30. return tp
  31. }
  32. return tp + 1
  33. }
  34. func FormatForBrowse(agent, val string) string {
  35. if strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "chrome/") {
  36. logs.Debug("Safari浏览器编码")
  37. } else if strings.Contains(strings.ToLower(agent), "firefox/") {
  38. logs.Debug("Firefox浏览器编码")
  39. } else if strings.Contains(strings.ToLower(agent), "chrome/") && strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "edge/") {
  40. logs.Debug("Chrome浏览器编码")
  41. } else {
  42. logs.Debug("IE浏览器编码")
  43. val = url.QueryEscape(val)
  44. val = strings.Replace(val, "+", "%20", -1)
  45. }
  46. return val
  47. }
  48. func GetHostname(ctx *gin.Context)string{
  49. host := ctx.Request.Host
  50. i := strings.Index(host, ":")
  51. if i > 0{
  52. host = host[:i]
  53. }
  54. return host
  55. }