fbcrawl-colly 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,380 @@
1
+ // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
2
+
3
+ package pb
4
+
5
+ import (
6
+ context "context"
7
+ grpc "google.golang.org/grpc"
8
+ codes "google.golang.org/grpc/codes"
9
+ status "google.golang.org/grpc/status"
10
+ )
11
+
12
+ // This is a compile-time assertion to ensure that this generated file
13
+ // is compatible with the grpc package it is being compiled against.
14
+ const _ = grpc.SupportPackageIsVersion6
15
+
16
+ // GrpcClient is the client API for Grpc service.
17
+ //
18
+ // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
19
+ type GrpcClient interface {
20
+ // Sends a greeting
21
+ Init(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Pointer, error)
22
+ FreeColly(ctx context.Context, in *Pointer, opts ...grpc.CallOption) (*Empty, error)
23
+ Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error)
24
+ LoginWithCookies(ctx context.Context, in *LoginWithCookiesRequest, opts ...grpc.CallOption) (*Empty, error)
25
+ FetchGroupInfo(ctx context.Context, in *FetchGroupInfoRequest, opts ...grpc.CallOption) (*FacebookGroup, error)
26
+ FetchGroupFeed(ctx context.Context, in *FetchGroupFeedRequest, opts ...grpc.CallOption) (*FacebookPostList, error)
27
+ FetchPost(ctx context.Context, in *FetchPostRequest, opts ...grpc.CallOption) (*FacebookPost, error)
28
+ FetchContentImages(ctx context.Context, in *FetchContentImagesRequest, opts ...grpc.CallOption) (*FacebookImageList, error)
29
+ FetchImageUrl(ctx context.Context, in *FetchImageUrlRequest, opts ...grpc.CallOption) (*FacebookImage, error)
30
+ }
31
+
32
+ type grpcClient struct {
33
+ cc grpc.ClientConnInterface
34
+ }
35
+
36
+ func NewGrpcClient(cc grpc.ClientConnInterface) GrpcClient {
37
+ return &grpcClient{cc}
38
+ }
39
+
40
+ func (c *grpcClient) Init(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Pointer, error) {
41
+ out := new(Pointer)
42
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/Init", in, out, opts...)
43
+ if err != nil {
44
+ return nil, err
45
+ }
46
+ return out, nil
47
+ }
48
+
49
+ func (c *grpcClient) FreeColly(ctx context.Context, in *Pointer, opts ...grpc.CallOption) (*Empty, error) {
50
+ out := new(Empty)
51
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FreeColly", in, out, opts...)
52
+ if err != nil {
53
+ return nil, err
54
+ }
55
+ return out, nil
56
+ }
57
+
58
+ func (c *grpcClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) {
59
+ out := new(LoginResponse)
60
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/Login", in, out, opts...)
61
+ if err != nil {
62
+ return nil, err
63
+ }
64
+ return out, nil
65
+ }
66
+
67
+ func (c *grpcClient) LoginWithCookies(ctx context.Context, in *LoginWithCookiesRequest, opts ...grpc.CallOption) (*Empty, error) {
68
+ out := new(Empty)
69
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/LoginWithCookies", in, out, opts...)
70
+ if err != nil {
71
+ return nil, err
72
+ }
73
+ return out, nil
74
+ }
75
+
76
+ func (c *grpcClient) FetchGroupInfo(ctx context.Context, in *FetchGroupInfoRequest, opts ...grpc.CallOption) (*FacebookGroup, error) {
77
+ out := new(FacebookGroup)
78
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FetchGroupInfo", in, out, opts...)
79
+ if err != nil {
80
+ return nil, err
81
+ }
82
+ return out, nil
83
+ }
84
+
85
+ func (c *grpcClient) FetchGroupFeed(ctx context.Context, in *FetchGroupFeedRequest, opts ...grpc.CallOption) (*FacebookPostList, error) {
86
+ out := new(FacebookPostList)
87
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FetchGroupFeed", in, out, opts...)
88
+ if err != nil {
89
+ return nil, err
90
+ }
91
+ return out, nil
92
+ }
93
+
94
+ func (c *grpcClient) FetchPost(ctx context.Context, in *FetchPostRequest, opts ...grpc.CallOption) (*FacebookPost, error) {
95
+ out := new(FacebookPost)
96
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FetchPost", in, out, opts...)
97
+ if err != nil {
98
+ return nil, err
99
+ }
100
+ return out, nil
101
+ }
102
+
103
+ func (c *grpcClient) FetchContentImages(ctx context.Context, in *FetchContentImagesRequest, opts ...grpc.CallOption) (*FacebookImageList, error) {
104
+ out := new(FacebookImageList)
105
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FetchContentImages", in, out, opts...)
106
+ if err != nil {
107
+ return nil, err
108
+ }
109
+ return out, nil
110
+ }
111
+
112
+ func (c *grpcClient) FetchImageUrl(ctx context.Context, in *FetchImageUrlRequest, opts ...grpc.CallOption) (*FacebookImage, error) {
113
+ out := new(FacebookImage)
114
+ err := c.cc.Invoke(ctx, "/fbcrawl_colly.Grpc/FetchImageUrl", in, out, opts...)
115
+ if err != nil {
116
+ return nil, err
117
+ }
118
+ return out, nil
119
+ }
120
+
121
+ // GrpcServer is the server API for Grpc service.
122
+ // All implementations must embed UnimplementedGrpcServer
123
+ // for forward compatibility
124
+ type GrpcServer interface {
125
+ // Sends a greeting
126
+ Init(context.Context, *Empty) (*Pointer, error)
127
+ FreeColly(context.Context, *Pointer) (*Empty, error)
128
+ Login(context.Context, *LoginRequest) (*LoginResponse, error)
129
+ LoginWithCookies(context.Context, *LoginWithCookiesRequest) (*Empty, error)
130
+ FetchGroupInfo(context.Context, *FetchGroupInfoRequest) (*FacebookGroup, error)
131
+ FetchGroupFeed(context.Context, *FetchGroupFeedRequest) (*FacebookPostList, error)
132
+ FetchPost(context.Context, *FetchPostRequest) (*FacebookPost, error)
133
+ FetchContentImages(context.Context, *FetchContentImagesRequest) (*FacebookImageList, error)
134
+ FetchImageUrl(context.Context, *FetchImageUrlRequest) (*FacebookImage, error)
135
+ mustEmbedUnimplementedGrpcServer()
136
+ }
137
+
138
+ // UnimplementedGrpcServer must be embedded to have forward compatible implementations.
139
+ type UnimplementedGrpcServer struct {
140
+ }
141
+
142
+ func (*UnimplementedGrpcServer) Init(context.Context, *Empty) (*Pointer, error) {
143
+ return nil, status.Errorf(codes.Unimplemented, "method Init not implemented")
144
+ }
145
+ func (*UnimplementedGrpcServer) FreeColly(context.Context, *Pointer) (*Empty, error) {
146
+ return nil, status.Errorf(codes.Unimplemented, "method FreeColly not implemented")
147
+ }
148
+ func (*UnimplementedGrpcServer) Login(context.Context, *LoginRequest) (*LoginResponse, error) {
149
+ return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
150
+ }
151
+ func (*UnimplementedGrpcServer) LoginWithCookies(context.Context, *LoginWithCookiesRequest) (*Empty, error) {
152
+ return nil, status.Errorf(codes.Unimplemented, "method LoginWithCookies not implemented")
153
+ }
154
+ func (*UnimplementedGrpcServer) FetchGroupInfo(context.Context, *FetchGroupInfoRequest) (*FacebookGroup, error) {
155
+ return nil, status.Errorf(codes.Unimplemented, "method FetchGroupInfo not implemented")
156
+ }
157
+ func (*UnimplementedGrpcServer) FetchGroupFeed(context.Context, *FetchGroupFeedRequest) (*FacebookPostList, error) {
158
+ return nil, status.Errorf(codes.Unimplemented, "method FetchGroupFeed not implemented")
159
+ }
160
+ func (*UnimplementedGrpcServer) FetchPost(context.Context, *FetchPostRequest) (*FacebookPost, error) {
161
+ return nil, status.Errorf(codes.Unimplemented, "method FetchPost not implemented")
162
+ }
163
+ func (*UnimplementedGrpcServer) FetchContentImages(context.Context, *FetchContentImagesRequest) (*FacebookImageList, error) {
164
+ return nil, status.Errorf(codes.Unimplemented, "method FetchContentImages not implemented")
165
+ }
166
+ func (*UnimplementedGrpcServer) FetchImageUrl(context.Context, *FetchImageUrlRequest) (*FacebookImage, error) {
167
+ return nil, status.Errorf(codes.Unimplemented, "method FetchImageUrl not implemented")
168
+ }
169
+ func (*UnimplementedGrpcServer) mustEmbedUnimplementedGrpcServer() {}
170
+
171
+ func RegisterGrpcServer(s *grpc.Server, srv GrpcServer) {
172
+ s.RegisterService(&_Grpc_serviceDesc, srv)
173
+ }
174
+
175
+ func _Grpc_Init_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
176
+ in := new(Empty)
177
+ if err := dec(in); err != nil {
178
+ return nil, err
179
+ }
180
+ if interceptor == nil {
181
+ return srv.(GrpcServer).Init(ctx, in)
182
+ }
183
+ info := &grpc.UnaryServerInfo{
184
+ Server: srv,
185
+ FullMethod: "/fbcrawl_colly.Grpc/Init",
186
+ }
187
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
188
+ return srv.(GrpcServer).Init(ctx, req.(*Empty))
189
+ }
190
+ return interceptor(ctx, in, info, handler)
191
+ }
192
+
193
+ func _Grpc_FreeColly_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
194
+ in := new(Pointer)
195
+ if err := dec(in); err != nil {
196
+ return nil, err
197
+ }
198
+ if interceptor == nil {
199
+ return srv.(GrpcServer).FreeColly(ctx, in)
200
+ }
201
+ info := &grpc.UnaryServerInfo{
202
+ Server: srv,
203
+ FullMethod: "/fbcrawl_colly.Grpc/FreeColly",
204
+ }
205
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
206
+ return srv.(GrpcServer).FreeColly(ctx, req.(*Pointer))
207
+ }
208
+ return interceptor(ctx, in, info, handler)
209
+ }
210
+
211
+ func _Grpc_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
212
+ in := new(LoginRequest)
213
+ if err := dec(in); err != nil {
214
+ return nil, err
215
+ }
216
+ if interceptor == nil {
217
+ return srv.(GrpcServer).Login(ctx, in)
218
+ }
219
+ info := &grpc.UnaryServerInfo{
220
+ Server: srv,
221
+ FullMethod: "/fbcrawl_colly.Grpc/Login",
222
+ }
223
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
224
+ return srv.(GrpcServer).Login(ctx, req.(*LoginRequest))
225
+ }
226
+ return interceptor(ctx, in, info, handler)
227
+ }
228
+
229
+ func _Grpc_LoginWithCookies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
230
+ in := new(LoginWithCookiesRequest)
231
+ if err := dec(in); err != nil {
232
+ return nil, err
233
+ }
234
+ if interceptor == nil {
235
+ return srv.(GrpcServer).LoginWithCookies(ctx, in)
236
+ }
237
+ info := &grpc.UnaryServerInfo{
238
+ Server: srv,
239
+ FullMethod: "/fbcrawl_colly.Grpc/LoginWithCookies",
240
+ }
241
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
242
+ return srv.(GrpcServer).LoginWithCookies(ctx, req.(*LoginWithCookiesRequest))
243
+ }
244
+ return interceptor(ctx, in, info, handler)
245
+ }
246
+
247
+ func _Grpc_FetchGroupInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
248
+ in := new(FetchGroupInfoRequest)
249
+ if err := dec(in); err != nil {
250
+ return nil, err
251
+ }
252
+ if interceptor == nil {
253
+ return srv.(GrpcServer).FetchGroupInfo(ctx, in)
254
+ }
255
+ info := &grpc.UnaryServerInfo{
256
+ Server: srv,
257
+ FullMethod: "/fbcrawl_colly.Grpc/FetchGroupInfo",
258
+ }
259
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
260
+ return srv.(GrpcServer).FetchGroupInfo(ctx, req.(*FetchGroupInfoRequest))
261
+ }
262
+ return interceptor(ctx, in, info, handler)
263
+ }
264
+
265
+ func _Grpc_FetchGroupFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
266
+ in := new(FetchGroupFeedRequest)
267
+ if err := dec(in); err != nil {
268
+ return nil, err
269
+ }
270
+ if interceptor == nil {
271
+ return srv.(GrpcServer).FetchGroupFeed(ctx, in)
272
+ }
273
+ info := &grpc.UnaryServerInfo{
274
+ Server: srv,
275
+ FullMethod: "/fbcrawl_colly.Grpc/FetchGroupFeed",
276
+ }
277
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
278
+ return srv.(GrpcServer).FetchGroupFeed(ctx, req.(*FetchGroupFeedRequest))
279
+ }
280
+ return interceptor(ctx, in, info, handler)
281
+ }
282
+
283
+ func _Grpc_FetchPost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
284
+ in := new(FetchPostRequest)
285
+ if err := dec(in); err != nil {
286
+ return nil, err
287
+ }
288
+ if interceptor == nil {
289
+ return srv.(GrpcServer).FetchPost(ctx, in)
290
+ }
291
+ info := &grpc.UnaryServerInfo{
292
+ Server: srv,
293
+ FullMethod: "/fbcrawl_colly.Grpc/FetchPost",
294
+ }
295
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
296
+ return srv.(GrpcServer).FetchPost(ctx, req.(*FetchPostRequest))
297
+ }
298
+ return interceptor(ctx, in, info, handler)
299
+ }
300
+
301
+ func _Grpc_FetchContentImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
302
+ in := new(FetchContentImagesRequest)
303
+ if err := dec(in); err != nil {
304
+ return nil, err
305
+ }
306
+ if interceptor == nil {
307
+ return srv.(GrpcServer).FetchContentImages(ctx, in)
308
+ }
309
+ info := &grpc.UnaryServerInfo{
310
+ Server: srv,
311
+ FullMethod: "/fbcrawl_colly.Grpc/FetchContentImages",
312
+ }
313
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
314
+ return srv.(GrpcServer).FetchContentImages(ctx, req.(*FetchContentImagesRequest))
315
+ }
316
+ return interceptor(ctx, in, info, handler)
317
+ }
318
+
319
+ func _Grpc_FetchImageUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
320
+ in := new(FetchImageUrlRequest)
321
+ if err := dec(in); err != nil {
322
+ return nil, err
323
+ }
324
+ if interceptor == nil {
325
+ return srv.(GrpcServer).FetchImageUrl(ctx, in)
326
+ }
327
+ info := &grpc.UnaryServerInfo{
328
+ Server: srv,
329
+ FullMethod: "/fbcrawl_colly.Grpc/FetchImageUrl",
330
+ }
331
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
332
+ return srv.(GrpcServer).FetchImageUrl(ctx, req.(*FetchImageUrlRequest))
333
+ }
334
+ return interceptor(ctx, in, info, handler)
335
+ }
336
+
337
+ var _Grpc_serviceDesc = grpc.ServiceDesc{
338
+ ServiceName: "fbcrawl_colly.Grpc",
339
+ HandlerType: (*GrpcServer)(nil),
340
+ Methods: []grpc.MethodDesc{
341
+ {
342
+ MethodName: "Init",
343
+ Handler: _Grpc_Init_Handler,
344
+ },
345
+ {
346
+ MethodName: "FreeColly",
347
+ Handler: _Grpc_FreeColly_Handler,
348
+ },
349
+ {
350
+ MethodName: "Login",
351
+ Handler: _Grpc_Login_Handler,
352
+ },
353
+ {
354
+ MethodName: "LoginWithCookies",
355
+ Handler: _Grpc_LoginWithCookies_Handler,
356
+ },
357
+ {
358
+ MethodName: "FetchGroupInfo",
359
+ Handler: _Grpc_FetchGroupInfo_Handler,
360
+ },
361
+ {
362
+ MethodName: "FetchGroupFeed",
363
+ Handler: _Grpc_FetchGroupFeed_Handler,
364
+ },
365
+ {
366
+ MethodName: "FetchPost",
367
+ Handler: _Grpc_FetchPost_Handler,
368
+ },
369
+ {
370
+ MethodName: "FetchContentImages",
371
+ Handler: _Grpc_FetchContentImages_Handler,
372
+ },
373
+ {
374
+ MethodName: "FetchImageUrl",
375
+ Handler: _Grpc_FetchImageUrl_Handler,
376
+ },
377
+ },
378
+ Streams: []grpc.StreamDesc{},
379
+ Metadata: "fbcrawl.proto",
380
+ }
data/go.mod CHANGED
@@ -4,21 +4,15 @@ go 1.14
4
4
 
5
5
  require (
6
6
  github.com/PuerkitoBio/goquery v1.5.1
7
- github.com/andybalholm/cascadia v1.2.0 // indirect
8
- github.com/antchfx/htmlquery v1.2.3 // indirect
9
- github.com/antchfx/xmlquery v1.2.4 // indirect
10
- github.com/antchfx/xpath v1.1.9 // indirect
11
- github.com/gobwas/glob v0.2.3 // indirect
12
- github.com/gocolly/colly v1.2.0
7
+ github.com/gocolly/colly/v2 v2.1.0
13
8
  github.com/golang/protobuf v1.4.2
14
9
  github.com/google/logger v1.1.0
15
- github.com/kennygrant/sanitize v1.2.4 // indirect
10
+ github.com/hashicorp/golang-lru v0.5.4
16
11
  github.com/olebedev/when v0.0.0-20190311101825-c3b538a97254
17
- github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
18
- github.com/temoto/robotstxt v1.1.1 // indirect
19
12
  github.com/thoas/go-funk v0.7.0
13
+ github.com/xlzd/gotp v0.0.0-20181030022105-c8557ba2c119
20
14
  golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
21
- golang.org/x/text v0.3.3 // indirect
22
- google.golang.org/appengine v1.6.6 // indirect
15
+ google.golang.org/grpc v1.27.0
16
+ google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200814200710-a3740e5ed326 // indirect
23
17
  google.golang.org/protobuf v1.25.0
24
18
  )
data/go.sum CHANGED
@@ -4,7 +4,6 @@ github.com/AlekSi/pointer v1.0.0/go.mod h1:1kjywbfcPFCmncIxtk6fIEub6LKrfMz3gc5QK
4
4
  github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
5
5
  github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE=
6
6
  github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
7
- github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo=
8
7
  github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
9
8
  github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE=
10
9
  github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY=
@@ -12,14 +11,13 @@ github.com/antchfx/htmlquery v1.2.3 h1:sP3NFDneHx2stfNXCKbhHFo8XgNjCACnU/4AO5gWz
12
11
  github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0=
13
12
  github.com/antchfx/xmlquery v1.2.4 h1:T/SH1bYdzdjTMoz2RgsfVKbM5uWh3gjDYYepFqQmFv4=
14
13
  github.com/antchfx/xmlquery v1.2.4/go.mod h1:KQQuESaxSlqugE2ZBcM/qn+ebIpt+d+4Xx7YcSGAIrM=
15
- github.com/antchfx/xpath v1.1.6 h1:6sVh6hB5T6phw1pFpHRQ+C4bd8sNI+O58flqtg7h0R0=
16
14
  github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
17
- github.com/antchfx/xpath v1.1.9 h1:s3QDSTRoZMK6EqLajCUt/BJMUATPHvzwlRqKqg12yjU=
18
- github.com/antchfx/xpath v1.1.9/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
15
+ github.com/antchfx/xpath v1.1.8 h1:PcL6bIX42Px5usSx6xRYw/wjB3wYGkj0MJ9MBzEKVgk=
16
+ github.com/antchfx/xpath v1.1.8/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
19
17
  github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
20
18
  github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
21
- github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
22
19
  github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
20
+ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
23
21
  github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24
22
  github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
25
23
  github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
@@ -27,12 +25,14 @@ github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
27
25
  github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
28
26
  github.com/gocolly/colly v1.2.0 h1:qRz9YAn8FIH0qzgNUw+HT9UN7wm1oF9OBAilwEWpyrI=
29
27
  github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA=
28
+ github.com/gocolly/colly/v2 v2.1.0 h1:k0DuZkDoCsx51bKpRJNEmcxcp+W5N8ziuwGaSDuFoGs=
29
+ github.com/gocolly/colly/v2 v2.1.0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0=
30
+ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
30
31
  github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
31
32
  github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
32
33
  github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
33
34
  github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
34
35
  github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
35
- github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
36
36
  github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
37
37
  github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
38
38
  github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
@@ -51,6 +51,9 @@ github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
51
51
  github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
52
52
  github.com/google/logger v1.1.0 h1:saB74Etb4EAJNH3z74CVbCKk75hld/8T0CsXKetWCwM=
53
53
  github.com/google/logger v1.1.0/go.mod h1:w7O8nrRr0xufejBlQMI83MXqRusvREoJdaAxV+CoAB4=
54
+ github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
55
+ github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
56
+ github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg=
54
57
  github.com/kennygrant/sanitize v1.2.4 h1:gN25/otpP5vAsO2djbMhF/LQX6R7+O1TB4yv8NzpJ3o=
55
58
  github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak=
56
59
  github.com/olebedev/when v0.0.0-20190311101825-c3b538a97254 h1:JYoQR67E1vv1WGoeW8DkdFs7vrIEe/5wP+qJItd5tUE=
@@ -63,7 +66,7 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
63
66
  github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI=
64
67
  github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
65
68
  github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
66
- github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
69
+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
67
70
  github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
68
71
  github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
69
72
  github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -71,7 +74,10 @@ github.com/temoto/robotstxt v1.1.1 h1:Gh8RCs8ouX3hRSxxK7B1mO5RFByQ4CmJZDwgom++Ja
71
74
  github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo=
72
75
  github.com/thoas/go-funk v0.7.0 h1:GmirKrs6j6zJbhJIficOsz2aAI7700KsU/5YrdHRM1Y=
73
76
  github.com/thoas/go-funk v0.7.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
77
+ github.com/xlzd/gotp v0.0.0-20181030022105-c8557ba2c119 h1:YyPWX3jLOtYKulBR6AScGIs74lLrJcgeKRwcbAuQOG4=
78
+ github.com/xlzd/gotp v0.0.0-20181030022105-c8557ba2c119/go.mod h1:/nuTSlK+okRfR/vnIPqR89fFKonnWPiZymN5ydRJkX8=
74
79
  golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
80
+ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
75
81
  golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
76
82
  golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
77
83
  golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -86,6 +92,7 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
86
92
  golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
87
93
  golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
88
94
  golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
95
+ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
89
96
  golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
90
97
  golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
91
98
  golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -100,13 +107,12 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w
100
107
  golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
101
108
  golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
102
109
  golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
103
- golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
104
- golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
105
110
  golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
106
111
  golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
107
112
  golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
108
113
  golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
109
114
  golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
115
+ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
110
116
  golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
111
117
  golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
112
118
  google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -115,19 +121,24 @@ google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuh
115
121
  google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
116
122
  google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
117
123
  google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
124
+ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
118
125
  google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
119
126
  google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
120
127
  google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
128
+ google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg=
121
129
  google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
130
+ google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI=
131
+ google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200814200710-a3740e5ed326 h1:9xXKDULLQoff9XAN3whAGrh4vrLLvydDbmFGWofOWI0=
132
+ google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200814200710-a3740e5ed326/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
122
133
  google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
123
134
  google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
124
135
  google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
125
136
  google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
126
137
  google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
127
138
  google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
128
- google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
129
139
  google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
130
140
  google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
141
+ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
131
142
  google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
132
143
  google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
133
144
  gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=