request_data.go 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package data
  2. import (
  3. "time"
  4. "github.com/google/btree"
  5. "git.scraperwall.com/scw/grs"
  6. )
  7. type RequestData struct {
  8. ID string `bson:"_id,omitempty" json:"_id,omitempty"`
  9. Connection string `bson:"connection" json:"connection"`
  10. IpDst string `bson:"ip_dst" json:"ip_dst"`
  11. TcpSeq uint32 `bson:"tcp_seq" json:"tcp_seq"`
  12. XForwardedFor string `bson:"x_forwarded_for" json:"x_forwarded_for"`
  13. XRealIP string `bson:"x_real_ip" json:"x_real_ip"`
  14. Origin string `bson:"origin" json:"origin"`
  15. PortDst uint32 `bson:"port_dst" json:"port_dst"`
  16. Referer string `bson:"referer" json:"referer"`
  17. XRequestedWith string `bson:"x_requested_with" json:"x_requested_with"`
  18. PortSrc uint32 `bson:"port_src" json:"port_src"`
  19. Url string `bson:"url" json:"url"`
  20. Reverse string `bson:"reverse" json:"reverse"`
  21. AcceptEncoding string `bson:"accept_encoding" json:"accept_encoding"`
  22. AcceptLanguage string `bson:"accept_language" json:"accept_language"`
  23. CreatedAt time.Time `bson:"created_at" json:"created_at"`
  24. SortTime time.Time `bson:"-" bson:"-"`
  25. IpSrc string `bson:"ip_src" json:"ip_src"`
  26. Method string `bson:"method" json:"method"`
  27. UserAgent string `bson:"user_agent" json:"user_agent"`
  28. Accept string `bson:"accept" json:"accept"`
  29. Cookie string `bson:"cookie" json:"cookie"`
  30. Host string `bson:"host" json:"host"`
  31. Protocol string `bson:"protocol" json:"protocol"`
  32. Source string `bson:"source" json:"source"`
  33. Via string `bson:"via" json:"via"`
  34. DataRaw map[string]interface{} `bson:"data_raw" json:"data_raw"`
  35. Weight uint64 `bson:"weight" json:"weight"`
  36. Grs grs.GRS `bson:"grs" json:"grs"`
  37. }
  38. func (a *RequestData) Less(b btree.Item) bool {
  39. return a.CreatedAt.Before(b.(*RequestData).CreatedAt)
  40. }
  41. func (a *RequestData) ToRequest() *Request {
  42. return &Request{
  43. Url: a.Url,
  44. Reverse: a.Reverse,
  45. IpSrc: a.IpSrc,
  46. IpDst: a.IpDst,
  47. PortSrc: a.PortSrc,
  48. PortDst: a.PortDst,
  49. TcpSeq: a.TcpSeq,
  50. CreatedAt: a.CreatedAt.UnixNano(),
  51. XForwardedFor: a.XForwardedFor,
  52. XRealIP: a.XRealIP,
  53. Method: a.Method,
  54. Origin: a.Origin,
  55. Referer: a.Referer,
  56. UserAgent: a.UserAgent,
  57. Source: a.Source,
  58. Host: a.Host,
  59. Protocol: a.Protocol,
  60. Connection: a.Connection,
  61. XRequestedWith: a.XRequestedWith,
  62. AcceptEncoding: a.AcceptEncoding,
  63. AcceptLanguage: a.AcceptLanguage,
  64. Accept: a.Accept,
  65. Cookie: a.Cookie,
  66. Via: a.Via,
  67. }
  68. }