fbcrawl-colly 0.2.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -2
- data/Dockerfile +14 -0
- data/Gemfile.lock +8 -7
- data/README.md +1 -1
- data/fbcrawl-colly.gemspec +2 -6
- data/fbcrawl.proto +78 -3
- data/{fbcolly → fbcrawl}/fbcolly.go +153 -80
- data/fbcrawl/pb/fbcrawl.pb.go +1647 -0
- data/fbcrawl/pb/fbcrawl_grpc.pb.go +380 -0
- data/go.mod +5 -11
- data/go.sum +21 -10
- data/lib/fbcrawl-colly.rb +1 -4
- data/lib/fbcrawl_colly.rb +5 -0
- data/lib/fbcrawl_colly/client.rb +46 -0
- data/lib/fbcrawl_colly/version.rb +1 -1
- data/lib/pb/fbcrawl_pb.rb +117 -0
- data/lib/pb/fbcrawl_services_pb.rb +31 -0
- data/main.go +76 -71
- metadata +14 -26
- data/ext/fbcrawl_colly/.gitignore +0 -2
- data/ext/fbcrawl_colly/Makefile +0 -6
- data/ext/fbcrawl_colly/extconf.rb +0 -6
- data/lib/fbcrawl_colly/colly.rb +0 -50
- data/lib/fbcrawl_colly/ffi.rb +0 -17
@@ -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/
|
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/
|
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/
|
22
|
-
google.golang.org/
|
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.
|
18
|
-
github.com/antchfx/xpath v1.1.
|
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/
|
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=
|