fbcrawl-colly 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 138016b11ed36541b96961dbfad0627b5d8bccd26a7638f95e5a8806d0fadf31
4
- data.tar.gz: 376c58bc102d6ece54631f0151889d7546af436e9f40f64d994ac44b7110e29e
3
+ metadata.gz: f420f1cc6b4b6260b8106422e80c0488a351fb21fdcaa0ad1af56b0402beb8da
4
+ data.tar.gz: 86193bbf6bfab5b48f73ad4f2594f5e4ff0761901ec5653af90ea638cbf9def6
5
5
  SHA512:
6
- metadata.gz: d8580cf0cf980989aab899d4f1185a33dff13743cfedea5487e59f8a990cd23d8c9c4751e18c2192b396c27c4ef5d5e95919404522fc4399b9754c1c0753f63a
7
- data.tar.gz: 84b182c8dcfd4a3b5aa7297c6cd3bca485a4f372d65579f03220c32bcf2fcda1d95be02cff4caf5c0bb88a997daa53684b6f25fc8c088be4e7e31406c4f1f4ba
6
+ metadata.gz: c6396d3572f0beaedaf198388e688e4f3bed09e6920c260cfddf61c36267c97e2a6babea3d297e07d1b7a816f6b416ec7c6d1a27775d85bea23dc4b5b07d9a51
7
+ data.tar.gz: a94d9ed5fc604e6e001abfb7f93ac9a82a075b686ada0214e854761ea0aa84712651b6605a7f885dcadc45be1dcad7d8bf2ac580f0e61dd2d3b086b02849c440
@@ -6,6 +6,7 @@ option go_package = "./fbcrawl/pb;pb";
6
6
  service Grpc {
7
7
  // Sends a greeting
8
8
  rpc Login (LoginRequest) returns (LoginResponse) {}
9
+ rpc FetchMyGroups (FetchMyGroupsRequest) returns (FacebookGroupList) {}
9
10
  rpc FetchGroupInfo (FetchGroupInfoRequest) returns (FacebookGroup) {}
10
11
  rpc FetchUserInfo (FetchUserInfoRequest) returns (FacebookUser) {}
11
12
  rpc FetchGroupFeed (FetchGroupFeedRequest) returns (FacebookPostList) {}
@@ -14,10 +15,6 @@ service Grpc {
14
15
  rpc FetchImageUrl (FetchImageUrlRequest) returns (FacebookImage) {}
15
16
  }
16
17
 
17
- message Empty {
18
-
19
- }
20
-
21
18
  message Context {
22
19
  string cookies = 1;
23
20
  }
@@ -36,6 +33,10 @@ message LoginWithCookiesRequest {
36
33
  string cookies = 1;
37
34
  }
38
35
 
36
+ message FetchMyGroupsRequest {
37
+ Context context = 1;
38
+ }
39
+
39
40
  message FetchGroupInfoRequest {
40
41
  Context context = 1;
41
42
  string group_username = 2;
@@ -70,7 +71,10 @@ message FetchImageUrlRequest {
70
71
  int64 image_id = 2;
71
72
  }
72
73
 
73
- // The request message containing the user's name.
74
+ message FacebookGroupList {
75
+ repeated FacebookGroup groups = 1;
76
+ }
77
+
74
78
  message FacebookGroup {
75
79
  int64 id = 1;
76
80
  string name = 2;
@@ -42,30 +42,38 @@ type FbDataFt struct {
42
42
  PageInsights map[string]FbDataInsight `json:"page_insights"`
43
43
  }
44
44
 
45
- func sharedOnRequest(request *colly.Request) {
46
- logger.Info("OnRequest ", request.URL)
47
- //request.Headers.Set("Host", "facebook.com")
48
- request.Headers.Set("Accept-Language", "en-US,en;q=0.9")
49
- request.Headers.Set("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
50
- request.Headers.Set("origin", "https://mbasic.facebook.com")
51
-
52
- //logger.Info("Saved referrer is", request.Ctx.Get("_referer"))
53
- request.Headers.Set("referer", "https://mbasic.facebook.com/checkpoint/?_rdr")
54
- request.Headers.Set("cache-control", "max-age=0")
55
- request.Headers.Set("upgrade-insecure-requests", "1")
56
- //accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
57
- //origin: https://mbasic.facebook.com
58
- //referer: https://mbasic.facebook.com/checkpoint/?_rdr
59
- request.Headers.Set("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36")
60
- request.ResponseCharacterEncoding = "utf-8"
61
- }
62
-
63
45
  func setupSharedCollector(collector *colly.Collector) error {
64
46
  var err error
65
47
  extensions.Referer(collector)
66
48
  collector.AllowURLRevisit = true
67
- collector.OnRequest(sharedOnRequest)
68
- collector.OnResponse(sharedOnResponse)
49
+ var lastUrl string
50
+ collector.OnRequest(func(request *colly.Request) {
51
+ lastUrl = request.URL.RawPath
52
+ logger.Info("OnRequest ", request.URL)
53
+ //request.Headers.Set("Host", "facebook.com")
54
+ request.Headers.Set("Accept-Language", "en-US,en;q=0.9")
55
+ request.Headers.Set("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
56
+ request.Headers.Set("origin", "https://mbasic.facebook.com")
57
+
58
+ //logger.Info("Saved referrer is", request.Ctx.Get("_referer"))
59
+ request.Headers.Set("referer", "https://mbasic.facebook.com/checkpoint/?_rdr")
60
+ request.Headers.Set("cache-control", "max-age=0")
61
+ request.Headers.Set("upgrade-insecure-requests", "1")
62
+ //accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
63
+ //origin: https://mbasic.facebook.com
64
+ //referer: https://mbasic.facebook.com/checkpoint/?_rdr
65
+ request.Headers.Set("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36")
66
+ request.ResponseCharacterEncoding = "utf-8"
67
+ })
68
+ collector.OnResponse(func(response *colly.Response) {
69
+ logger.Info("OnResponse ./last.html")
70
+ _ = response.Save("./last.html")
71
+ //logger.Info(string(resp.Body))
72
+ })
73
+
74
+ collector.OnHTML("a[href*=\"177066345680802\"", func(element *colly.HTMLElement) {
75
+ logger.Error("RateLimit reached ", lastUrl)
76
+ })
69
77
  collector.OnError(func(resp *colly.Response, errHttp error) {
70
78
  err = errHttp
71
79
  logger.Error("OnError", err)
@@ -73,12 +81,6 @@ func setupSharedCollector(collector *colly.Collector) error {
73
81
  return err
74
82
  }
75
83
 
76
- func sharedOnResponse(response *colly.Response) {
77
- logger.Info("OnResponse ./last.html")
78
- _ = response.Save("./last.html")
79
- //logger.Info(string(resp.Body))
80
- }
81
-
82
84
  func getForm(element *colly.HTMLElement, err error) (string, error, map[string]string) {
83
85
  submitUrl, exists := element.DOM.Attr("action")
84
86
  if !exists {
@@ -342,7 +344,7 @@ func (f *Fbcolly) FetchImageUrl(imageId int64) (error, *pb.FacebookImage) {
342
344
  err := setupSharedCollector(collector)
343
345
  result := pb.FacebookImage{Id: imageId}
344
346
 
345
- collector.OnHTML("a", func(element *colly.HTMLElement) {
347
+ collector.OnHTML("a[href*=\"fbcdn\"]", func(element *colly.HTMLElement) {
346
348
  result.Url = element.Attr("href")
347
349
  })
348
350
 
@@ -408,20 +410,33 @@ func (f *Fbcolly) FetchPost(groupId int64, postId int64, commentNextCursor strin
408
410
  element.DOM.Find("h3 + div + div + div").Parent().Parent().Each(func(i int, selection *goquery.Selection) {
409
411
  //author
410
412
  commentId, _ := strconv.ParseInt(selection.AttrOr("id", ""), 10, 64)
411
- logger.Info("comment", commentId)
412
- createdAtWhenResult, _ := f.w.Parse(selection.Find("abbr").Text(), time.Now())
413
- parsed, _ := url.Parse(selection.Find("h3 > a").AttrOr("href", ""))
414
- if len(parsed.Path) > 1 {
415
- post.Comments.Comments = append(post.Comments.Comments, &pb.FacebookComment{
416
- Id: commentId,
417
- Post: &pb.FacebookPost{Id: post.Id},
418
- User: &pb.FacebookUser{
419
- Username: parsed.Path[1:],
420
- Name: selection.Find("h3 > a").Text(),
421
- },
422
- Content: selection.Find("h3 + div").Text(),
423
- CreatedAt: createdAtWhenResult.Time.Unix(),
424
- })
413
+ if commentId > 0 {
414
+ createdAtWhenResult, err := f.w.Parse(selection.Find("abbr").Text(), time.Now())
415
+ if err != nil {
416
+ logger.Error(err)
417
+ return
418
+ }
419
+ parsed, err := url.Parse(selection.Find("h3 > a").AttrOr("href", ""))
420
+ if err != nil {
421
+ logger.Error(err)
422
+ return
423
+ }
424
+ if len(parsed.Path) == 0 {
425
+ logger.Error("Empty path for commentId ", commentId)
426
+ return
427
+ }
428
+ if len(parsed.Path) > 1 {
429
+ post.Comments.Comments = append(post.Comments.Comments, &pb.FacebookComment{
430
+ Id: commentId,
431
+ Post: &pb.FacebookPost{Id: post.Id},
432
+ User: &pb.FacebookUser{
433
+ Username: parsed.Path[1:],
434
+ Name: selection.Find("h3 > a").Text(),
435
+ },
436
+ Content: selection.Find("h3 + div").Text(),
437
+ CreatedAt: createdAtWhenResult.Time.Unix(),
438
+ })
439
+ }
425
440
  }
426
441
  })
427
442
 
@@ -445,6 +460,25 @@ func (f *Fbcolly) LoginWithCookies(cookies string) error {
445
460
  return collector.SetCookies("https://mbasic.facebook.com/", storage.UnstringifyCookies(cookies))
446
461
  }
447
462
 
463
+ func (f *Fbcolly) FetchMyGroups() (error, *pb.FacebookGroupList) {
464
+ collector := f.collector.Clone()
465
+ err := setupSharedCollector(collector)
466
+ result := &pb.FacebookGroupList{Groups: []*pb.FacebookGroup{}}
467
+
468
+ collector.OnHTML("li table a", func(element *colly.HTMLElement) {
469
+ result.Groups = append(result.Groups, &pb.FacebookGroup{
470
+ Id: getNumberFromText(element.Attr("href")),
471
+ Name: element.Text,
472
+ })
473
+ })
474
+
475
+ err = collector.Visit("https://mbasic.facebook.com/groups/?seemore")
476
+ if err != nil {
477
+ logger.Error("crawl by colly err:", err)
478
+ }
479
+ return err, result
480
+ }
481
+
448
482
  //func getUsernameFromHref(href string) string {
449
483
  // return regexp.MustCompile("/([\\d\\w.]+).*").FindStringSubmatch(href)[1]
450
484
  //}
@@ -470,7 +504,7 @@ func getImageIdFromHref(href string) int64 {
470
504
  }
471
505
 
472
506
  func getNumberFromText(text string) int64 {
473
- logger.Error("reaction", text)
507
+ logger.Info("getNumberFromText ", text)
474
508
  if len(text) > 0 {
475
509
  match := regexp.MustCompile("(\\d+)\\s?([km]?)").FindStringSubmatch(text)
476
510
  if len(match) > 0 {
@@ -25,44 +25,6 @@ const (
25
25
  // of the legacy proto package is being used.
26
26
  const _ = proto.ProtoPackageIsVersion4
27
27
 
28
- type Empty struct {
29
- state protoimpl.MessageState
30
- sizeCache protoimpl.SizeCache
31
- unknownFields protoimpl.UnknownFields
32
- }
33
-
34
- func (x *Empty) Reset() {
35
- *x = Empty{}
36
- if protoimpl.UnsafeEnabled {
37
- mi := &file_fbcrawl_proto_msgTypes[0]
38
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
39
- ms.StoreMessageInfo(mi)
40
- }
41
- }
42
-
43
- func (x *Empty) String() string {
44
- return protoimpl.X.MessageStringOf(x)
45
- }
46
-
47
- func (*Empty) ProtoMessage() {}
48
-
49
- func (x *Empty) ProtoReflect() protoreflect.Message {
50
- mi := &file_fbcrawl_proto_msgTypes[0]
51
- if protoimpl.UnsafeEnabled && x != nil {
52
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
53
- if ms.LoadMessageInfo() == nil {
54
- ms.StoreMessageInfo(mi)
55
- }
56
- return ms
57
- }
58
- return mi.MessageOf(x)
59
- }
60
-
61
- // Deprecated: Use Empty.ProtoReflect.Descriptor instead.
62
- func (*Empty) Descriptor() ([]byte, []int) {
63
- return file_fbcrawl_proto_rawDescGZIP(), []int{0}
64
- }
65
-
66
28
  type Context struct {
67
29
  state protoimpl.MessageState
68
30
  sizeCache protoimpl.SizeCache
@@ -74,7 +36,7 @@ type Context struct {
74
36
  func (x *Context) Reset() {
75
37
  *x = Context{}
76
38
  if protoimpl.UnsafeEnabled {
77
- mi := &file_fbcrawl_proto_msgTypes[1]
39
+ mi := &file_fbcrawl_proto_msgTypes[0]
78
40
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
79
41
  ms.StoreMessageInfo(mi)
80
42
  }
@@ -87,7 +49,7 @@ func (x *Context) String() string {
87
49
  func (*Context) ProtoMessage() {}
88
50
 
89
51
  func (x *Context) ProtoReflect() protoreflect.Message {
90
- mi := &file_fbcrawl_proto_msgTypes[1]
52
+ mi := &file_fbcrawl_proto_msgTypes[0]
91
53
  if protoimpl.UnsafeEnabled && x != nil {
92
54
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
93
55
  if ms.LoadMessageInfo() == nil {
@@ -100,7 +62,7 @@ func (x *Context) ProtoReflect() protoreflect.Message {
100
62
 
101
63
  // Deprecated: Use Context.ProtoReflect.Descriptor instead.
102
64
  func (*Context) Descriptor() ([]byte, []int) {
103
- return file_fbcrawl_proto_rawDescGZIP(), []int{1}
65
+ return file_fbcrawl_proto_rawDescGZIP(), []int{0}
104
66
  }
105
67
 
106
68
  func (x *Context) GetCookies() string {
@@ -123,7 +85,7 @@ type LoginRequest struct {
123
85
  func (x *LoginRequest) Reset() {
124
86
  *x = LoginRequest{}
125
87
  if protoimpl.UnsafeEnabled {
126
- mi := &file_fbcrawl_proto_msgTypes[2]
88
+ mi := &file_fbcrawl_proto_msgTypes[1]
127
89
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
128
90
  ms.StoreMessageInfo(mi)
129
91
  }
@@ -136,7 +98,7 @@ func (x *LoginRequest) String() string {
136
98
  func (*LoginRequest) ProtoMessage() {}
137
99
 
138
100
  func (x *LoginRequest) ProtoReflect() protoreflect.Message {
139
- mi := &file_fbcrawl_proto_msgTypes[2]
101
+ mi := &file_fbcrawl_proto_msgTypes[1]
140
102
  if protoimpl.UnsafeEnabled && x != nil {
141
103
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
142
104
  if ms.LoadMessageInfo() == nil {
@@ -149,7 +111,7 @@ func (x *LoginRequest) ProtoReflect() protoreflect.Message {
149
111
 
150
112
  // Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead.
151
113
  func (*LoginRequest) Descriptor() ([]byte, []int) {
152
- return file_fbcrawl_proto_rawDescGZIP(), []int{2}
114
+ return file_fbcrawl_proto_rawDescGZIP(), []int{1}
153
115
  }
154
116
 
155
117
  func (x *LoginRequest) GetEmail() string {
@@ -184,7 +146,7 @@ type LoginResponse struct {
184
146
  func (x *LoginResponse) Reset() {
185
147
  *x = LoginResponse{}
186
148
  if protoimpl.UnsafeEnabled {
187
- mi := &file_fbcrawl_proto_msgTypes[3]
149
+ mi := &file_fbcrawl_proto_msgTypes[2]
188
150
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
189
151
  ms.StoreMessageInfo(mi)
190
152
  }
@@ -197,7 +159,7 @@ func (x *LoginResponse) String() string {
197
159
  func (*LoginResponse) ProtoMessage() {}
198
160
 
199
161
  func (x *LoginResponse) ProtoReflect() protoreflect.Message {
200
- mi := &file_fbcrawl_proto_msgTypes[3]
162
+ mi := &file_fbcrawl_proto_msgTypes[2]
201
163
  if protoimpl.UnsafeEnabled && x != nil {
202
164
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
203
165
  if ms.LoadMessageInfo() == nil {
@@ -210,7 +172,7 @@ func (x *LoginResponse) ProtoReflect() protoreflect.Message {
210
172
 
211
173
  // Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead.
212
174
  func (*LoginResponse) Descriptor() ([]byte, []int) {
213
- return file_fbcrawl_proto_rawDescGZIP(), []int{3}
175
+ return file_fbcrawl_proto_rawDescGZIP(), []int{2}
214
176
  }
215
177
 
216
178
  func (x *LoginResponse) GetCookies() string {
@@ -231,7 +193,7 @@ type LoginWithCookiesRequest struct {
231
193
  func (x *LoginWithCookiesRequest) Reset() {
232
194
  *x = LoginWithCookiesRequest{}
233
195
  if protoimpl.UnsafeEnabled {
234
- mi := &file_fbcrawl_proto_msgTypes[4]
196
+ mi := &file_fbcrawl_proto_msgTypes[3]
235
197
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
236
198
  ms.StoreMessageInfo(mi)
237
199
  }
@@ -244,7 +206,7 @@ func (x *LoginWithCookiesRequest) String() string {
244
206
  func (*LoginWithCookiesRequest) ProtoMessage() {}
245
207
 
246
208
  func (x *LoginWithCookiesRequest) ProtoReflect() protoreflect.Message {
247
- mi := &file_fbcrawl_proto_msgTypes[4]
209
+ mi := &file_fbcrawl_proto_msgTypes[3]
248
210
  if protoimpl.UnsafeEnabled && x != nil {
249
211
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
250
212
  if ms.LoadMessageInfo() == nil {
@@ -257,7 +219,7 @@ func (x *LoginWithCookiesRequest) ProtoReflect() protoreflect.Message {
257
219
 
258
220
  // Deprecated: Use LoginWithCookiesRequest.ProtoReflect.Descriptor instead.
259
221
  func (*LoginWithCookiesRequest) Descriptor() ([]byte, []int) {
260
- return file_fbcrawl_proto_rawDescGZIP(), []int{4}
222
+ return file_fbcrawl_proto_rawDescGZIP(), []int{3}
261
223
  }
262
224
 
263
225
  func (x *LoginWithCookiesRequest) GetCookies() string {
@@ -267,6 +229,53 @@ func (x *LoginWithCookiesRequest) GetCookies() string {
267
229
  return ""
268
230
  }
269
231
 
232
+ type FetchMyGroupsRequest struct {
233
+ state protoimpl.MessageState
234
+ sizeCache protoimpl.SizeCache
235
+ unknownFields protoimpl.UnknownFields
236
+
237
+ Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"`
238
+ }
239
+
240
+ func (x *FetchMyGroupsRequest) Reset() {
241
+ *x = FetchMyGroupsRequest{}
242
+ if protoimpl.UnsafeEnabled {
243
+ mi := &file_fbcrawl_proto_msgTypes[4]
244
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
245
+ ms.StoreMessageInfo(mi)
246
+ }
247
+ }
248
+
249
+ func (x *FetchMyGroupsRequest) String() string {
250
+ return protoimpl.X.MessageStringOf(x)
251
+ }
252
+
253
+ func (*FetchMyGroupsRequest) ProtoMessage() {}
254
+
255
+ func (x *FetchMyGroupsRequest) ProtoReflect() protoreflect.Message {
256
+ mi := &file_fbcrawl_proto_msgTypes[4]
257
+ if protoimpl.UnsafeEnabled && x != nil {
258
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
259
+ if ms.LoadMessageInfo() == nil {
260
+ ms.StoreMessageInfo(mi)
261
+ }
262
+ return ms
263
+ }
264
+ return mi.MessageOf(x)
265
+ }
266
+
267
+ // Deprecated: Use FetchMyGroupsRequest.ProtoReflect.Descriptor instead.
268
+ func (*FetchMyGroupsRequest) Descriptor() ([]byte, []int) {
269
+ return file_fbcrawl_proto_rawDescGZIP(), []int{4}
270
+ }
271
+
272
+ func (x *FetchMyGroupsRequest) GetContext() *Context {
273
+ if x != nil {
274
+ return x.Context
275
+ }
276
+ return nil
277
+ }
278
+
270
279
  type FetchGroupInfoRequest struct {
271
280
  state protoimpl.MessageState
272
281
  sizeCache protoimpl.SizeCache
@@ -629,7 +638,53 @@ func (x *FetchImageUrlRequest) GetImageId() int64 {
629
638
  return 0
630
639
  }
631
640
 
632
- // The request message containing the user's name.
641
+ type FacebookGroupList struct {
642
+ state protoimpl.MessageState
643
+ sizeCache protoimpl.SizeCache
644
+ unknownFields protoimpl.UnknownFields
645
+
646
+ Groups []*FacebookGroup `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
647
+ }
648
+
649
+ func (x *FacebookGroupList) Reset() {
650
+ *x = FacebookGroupList{}
651
+ if protoimpl.UnsafeEnabled {
652
+ mi := &file_fbcrawl_proto_msgTypes[11]
653
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
654
+ ms.StoreMessageInfo(mi)
655
+ }
656
+ }
657
+
658
+ func (x *FacebookGroupList) String() string {
659
+ return protoimpl.X.MessageStringOf(x)
660
+ }
661
+
662
+ func (*FacebookGroupList) ProtoMessage() {}
663
+
664
+ func (x *FacebookGroupList) ProtoReflect() protoreflect.Message {
665
+ mi := &file_fbcrawl_proto_msgTypes[11]
666
+ if protoimpl.UnsafeEnabled && x != nil {
667
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
668
+ if ms.LoadMessageInfo() == nil {
669
+ ms.StoreMessageInfo(mi)
670
+ }
671
+ return ms
672
+ }
673
+ return mi.MessageOf(x)
674
+ }
675
+
676
+ // Deprecated: Use FacebookGroupList.ProtoReflect.Descriptor instead.
677
+ func (*FacebookGroupList) Descriptor() ([]byte, []int) {
678
+ return file_fbcrawl_proto_rawDescGZIP(), []int{11}
679
+ }
680
+
681
+ func (x *FacebookGroupList) GetGroups() []*FacebookGroup {
682
+ if x != nil {
683
+ return x.Groups
684
+ }
685
+ return nil
686
+ }
687
+
633
688
  type FacebookGroup struct {
634
689
  state protoimpl.MessageState
635
690
  sizeCache protoimpl.SizeCache
@@ -643,7 +698,7 @@ type FacebookGroup struct {
643
698
  func (x *FacebookGroup) Reset() {
644
699
  *x = FacebookGroup{}
645
700
  if protoimpl.UnsafeEnabled {
646
- mi := &file_fbcrawl_proto_msgTypes[11]
701
+ mi := &file_fbcrawl_proto_msgTypes[12]
647
702
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
648
703
  ms.StoreMessageInfo(mi)
649
704
  }
@@ -656,7 +711,7 @@ func (x *FacebookGroup) String() string {
656
711
  func (*FacebookGroup) ProtoMessage() {}
657
712
 
658
713
  func (x *FacebookGroup) ProtoReflect() protoreflect.Message {
659
- mi := &file_fbcrawl_proto_msgTypes[11]
714
+ mi := &file_fbcrawl_proto_msgTypes[12]
660
715
  if protoimpl.UnsafeEnabled && x != nil {
661
716
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
662
717
  if ms.LoadMessageInfo() == nil {
@@ -669,7 +724,7 @@ func (x *FacebookGroup) ProtoReflect() protoreflect.Message {
669
724
 
670
725
  // Deprecated: Use FacebookGroup.ProtoReflect.Descriptor instead.
671
726
  func (*FacebookGroup) Descriptor() ([]byte, []int) {
672
- return file_fbcrawl_proto_rawDescGZIP(), []int{11}
727
+ return file_fbcrawl_proto_rawDescGZIP(), []int{12}
673
728
  }
674
729
 
675
730
  func (x *FacebookGroup) GetId() int64 {
@@ -707,7 +762,7 @@ type FacebookUser struct {
707
762
  func (x *FacebookUser) Reset() {
708
763
  *x = FacebookUser{}
709
764
  if protoimpl.UnsafeEnabled {
710
- mi := &file_fbcrawl_proto_msgTypes[12]
765
+ mi := &file_fbcrawl_proto_msgTypes[13]
711
766
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
712
767
  ms.StoreMessageInfo(mi)
713
768
  }
@@ -720,7 +775,7 @@ func (x *FacebookUser) String() string {
720
775
  func (*FacebookUser) ProtoMessage() {}
721
776
 
722
777
  func (x *FacebookUser) ProtoReflect() protoreflect.Message {
723
- mi := &file_fbcrawl_proto_msgTypes[12]
778
+ mi := &file_fbcrawl_proto_msgTypes[13]
724
779
  if protoimpl.UnsafeEnabled && x != nil {
725
780
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
726
781
  if ms.LoadMessageInfo() == nil {
@@ -733,7 +788,7 @@ func (x *FacebookUser) ProtoReflect() protoreflect.Message {
733
788
 
734
789
  // Deprecated: Use FacebookUser.ProtoReflect.Descriptor instead.
735
790
  func (*FacebookUser) Descriptor() ([]byte, []int) {
736
- return file_fbcrawl_proto_rawDescGZIP(), []int{12}
791
+ return file_fbcrawl_proto_rawDescGZIP(), []int{13}
737
792
  }
738
793
 
739
794
  func (x *FacebookUser) GetId() int64 {
@@ -785,7 +840,7 @@ type FacebookPost struct {
785
840
  func (x *FacebookPost) Reset() {
786
841
  *x = FacebookPost{}
787
842
  if protoimpl.UnsafeEnabled {
788
- mi := &file_fbcrawl_proto_msgTypes[13]
843
+ mi := &file_fbcrawl_proto_msgTypes[14]
789
844
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
790
845
  ms.StoreMessageInfo(mi)
791
846
  }
@@ -798,7 +853,7 @@ func (x *FacebookPost) String() string {
798
853
  func (*FacebookPost) ProtoMessage() {}
799
854
 
800
855
  func (x *FacebookPost) ProtoReflect() protoreflect.Message {
801
- mi := &file_fbcrawl_proto_msgTypes[13]
856
+ mi := &file_fbcrawl_proto_msgTypes[14]
802
857
  if protoimpl.UnsafeEnabled && x != nil {
803
858
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
804
859
  if ms.LoadMessageInfo() == nil {
@@ -811,7 +866,7 @@ func (x *FacebookPost) ProtoReflect() protoreflect.Message {
811
866
 
812
867
  // Deprecated: Use FacebookPost.ProtoReflect.Descriptor instead.
813
868
  func (*FacebookPost) Descriptor() ([]byte, []int) {
814
- return file_fbcrawl_proto_rawDescGZIP(), []int{13}
869
+ return file_fbcrawl_proto_rawDescGZIP(), []int{14}
815
870
  }
816
871
 
817
872
  func (x *FacebookPost) GetId() int64 {
@@ -903,7 +958,7 @@ type CommentList struct {
903
958
  func (x *CommentList) Reset() {
904
959
  *x = CommentList{}
905
960
  if protoimpl.UnsafeEnabled {
906
- mi := &file_fbcrawl_proto_msgTypes[14]
961
+ mi := &file_fbcrawl_proto_msgTypes[15]
907
962
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
908
963
  ms.StoreMessageInfo(mi)
909
964
  }
@@ -916,7 +971,7 @@ func (x *CommentList) String() string {
916
971
  func (*CommentList) ProtoMessage() {}
917
972
 
918
973
  func (x *CommentList) ProtoReflect() protoreflect.Message {
919
- mi := &file_fbcrawl_proto_msgTypes[14]
974
+ mi := &file_fbcrawl_proto_msgTypes[15]
920
975
  if protoimpl.UnsafeEnabled && x != nil {
921
976
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
922
977
  if ms.LoadMessageInfo() == nil {
@@ -929,7 +984,7 @@ func (x *CommentList) ProtoReflect() protoreflect.Message {
929
984
 
930
985
  // Deprecated: Use CommentList.ProtoReflect.Descriptor instead.
931
986
  func (*CommentList) Descriptor() ([]byte, []int) {
932
- return file_fbcrawl_proto_rawDescGZIP(), []int{14}
987
+ return file_fbcrawl_proto_rawDescGZIP(), []int{15}
933
988
  }
934
989
 
935
990
  func (x *CommentList) GetComments() []*FacebookComment {
@@ -958,7 +1013,7 @@ type FacebookImage struct {
958
1013
  func (x *FacebookImage) Reset() {
959
1014
  *x = FacebookImage{}
960
1015
  if protoimpl.UnsafeEnabled {
961
- mi := &file_fbcrawl_proto_msgTypes[15]
1016
+ mi := &file_fbcrawl_proto_msgTypes[16]
962
1017
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
963
1018
  ms.StoreMessageInfo(mi)
964
1019
  }
@@ -971,7 +1026,7 @@ func (x *FacebookImage) String() string {
971
1026
  func (*FacebookImage) ProtoMessage() {}
972
1027
 
973
1028
  func (x *FacebookImage) ProtoReflect() protoreflect.Message {
974
- mi := &file_fbcrawl_proto_msgTypes[15]
1029
+ mi := &file_fbcrawl_proto_msgTypes[16]
975
1030
  if protoimpl.UnsafeEnabled && x != nil {
976
1031
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
977
1032
  if ms.LoadMessageInfo() == nil {
@@ -984,7 +1039,7 @@ func (x *FacebookImage) ProtoReflect() protoreflect.Message {
984
1039
 
985
1040
  // Deprecated: Use FacebookImage.ProtoReflect.Descriptor instead.
986
1041
  func (*FacebookImage) Descriptor() ([]byte, []int) {
987
- return file_fbcrawl_proto_rawDescGZIP(), []int{15}
1042
+ return file_fbcrawl_proto_rawDescGZIP(), []int{16}
988
1043
  }
989
1044
 
990
1045
  func (x *FacebookImage) GetId() int64 {
@@ -1016,7 +1071,7 @@ type FacebookComment struct {
1016
1071
  func (x *FacebookComment) Reset() {
1017
1072
  *x = FacebookComment{}
1018
1073
  if protoimpl.UnsafeEnabled {
1019
- mi := &file_fbcrawl_proto_msgTypes[16]
1074
+ mi := &file_fbcrawl_proto_msgTypes[17]
1020
1075
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1021
1076
  ms.StoreMessageInfo(mi)
1022
1077
  }
@@ -1029,7 +1084,7 @@ func (x *FacebookComment) String() string {
1029
1084
  func (*FacebookComment) ProtoMessage() {}
1030
1085
 
1031
1086
  func (x *FacebookComment) ProtoReflect() protoreflect.Message {
1032
- mi := &file_fbcrawl_proto_msgTypes[16]
1087
+ mi := &file_fbcrawl_proto_msgTypes[17]
1033
1088
  if protoimpl.UnsafeEnabled && x != nil {
1034
1089
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1035
1090
  if ms.LoadMessageInfo() == nil {
@@ -1042,7 +1097,7 @@ func (x *FacebookComment) ProtoReflect() protoreflect.Message {
1042
1097
 
1043
1098
  // Deprecated: Use FacebookComment.ProtoReflect.Descriptor instead.
1044
1099
  func (*FacebookComment) Descriptor() ([]byte, []int) {
1045
- return file_fbcrawl_proto_rawDescGZIP(), []int{16}
1100
+ return file_fbcrawl_proto_rawDescGZIP(), []int{17}
1046
1101
  }
1047
1102
 
1048
1103
  func (x *FacebookComment) GetId() int64 {
@@ -1092,7 +1147,7 @@ type FacebookPostList struct {
1092
1147
  func (x *FacebookPostList) Reset() {
1093
1148
  *x = FacebookPostList{}
1094
1149
  if protoimpl.UnsafeEnabled {
1095
- mi := &file_fbcrawl_proto_msgTypes[17]
1150
+ mi := &file_fbcrawl_proto_msgTypes[18]
1096
1151
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1097
1152
  ms.StoreMessageInfo(mi)
1098
1153
  }
@@ -1105,7 +1160,7 @@ func (x *FacebookPostList) String() string {
1105
1160
  func (*FacebookPostList) ProtoMessage() {}
1106
1161
 
1107
1162
  func (x *FacebookPostList) ProtoReflect() protoreflect.Message {
1108
- mi := &file_fbcrawl_proto_msgTypes[17]
1163
+ mi := &file_fbcrawl_proto_msgTypes[18]
1109
1164
  if protoimpl.UnsafeEnabled && x != nil {
1110
1165
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1111
1166
  if ms.LoadMessageInfo() == nil {
@@ -1118,7 +1173,7 @@ func (x *FacebookPostList) ProtoReflect() protoreflect.Message {
1118
1173
 
1119
1174
  // Deprecated: Use FacebookPostList.ProtoReflect.Descriptor instead.
1120
1175
  func (*FacebookPostList) Descriptor() ([]byte, []int) {
1121
- return file_fbcrawl_proto_rawDescGZIP(), []int{17}
1176
+ return file_fbcrawl_proto_rawDescGZIP(), []int{18}
1122
1177
  }
1123
1178
 
1124
1179
  func (x *FacebookPostList) GetPosts() []*FacebookPost {
@@ -1147,7 +1202,7 @@ type FacebookImageList struct {
1147
1202
  func (x *FacebookImageList) Reset() {
1148
1203
  *x = FacebookImageList{}
1149
1204
  if protoimpl.UnsafeEnabled {
1150
- mi := &file_fbcrawl_proto_msgTypes[18]
1205
+ mi := &file_fbcrawl_proto_msgTypes[19]
1151
1206
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1152
1207
  ms.StoreMessageInfo(mi)
1153
1208
  }
@@ -1160,7 +1215,7 @@ func (x *FacebookImageList) String() string {
1160
1215
  func (*FacebookImageList) ProtoMessage() {}
1161
1216
 
1162
1217
  func (x *FacebookImageList) ProtoReflect() protoreflect.Message {
1163
- mi := &file_fbcrawl_proto_msgTypes[18]
1218
+ mi := &file_fbcrawl_proto_msgTypes[19]
1164
1219
  if protoimpl.UnsafeEnabled && x != nil {
1165
1220
  ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1166
1221
  if ms.LoadMessageInfo() == nil {
@@ -1173,7 +1228,7 @@ func (x *FacebookImageList) ProtoReflect() protoreflect.Message {
1173
1228
 
1174
1229
  // Deprecated: Use FacebookImageList.ProtoReflect.Descriptor instead.
1175
1230
  func (*FacebookImageList) Descriptor() ([]byte, []int) {
1176
- return file_fbcrawl_proto_rawDescGZIP(), []int{18}
1231
+ return file_fbcrawl_proto_rawDescGZIP(), []int{19}
1177
1232
  }
1178
1233
 
1179
1234
  func (x *FacebookImageList) GetImages() []*FacebookImage {
@@ -1194,188 +1249,203 @@ var File_fbcrawl_proto protoreflect.FileDescriptor
1194
1249
 
1195
1250
  var file_fbcrawl_proto_rawDesc = []byte{
1196
1251
  0x0a, 0x0d, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
1197
- 0x0d, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x22, 0x07,
1198
- 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65,
1199
- 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,
1200
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x0c,
1201
- 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05,
1202
- 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61,
1203
- 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03,
1204
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f,
1205
- 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20,
1206
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x70, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22,
1207
- 0x29, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
1208
- 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
1209
- 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x4c, 0x6f,
1210
- 0x67, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x52, 0x65,
1211
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73,
1212
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x22,
1213
- 0x70, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66,
1214
- 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,
1215
- 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72,
1216
- 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
1217
- 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x72,
1218
- 0x6f, 0x75, 0x70, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
1219
- 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
1220
- 0x65, 0x22, 0x64, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
1252
+ 0x0d, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x22, 0x23,
1253
+ 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6f,
1254
+ 0x6b, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6f, 0x6b,
1255
+ 0x69, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
1256
+ 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01,
1257
+ 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73,
1258
+ 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73,
1259
+ 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x73, 0x65,
1260
+ 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x70,
1261
+ 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
1262
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69,
1263
+ 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65,
1264
+ 0x73, 0x22, 0x33, 0x0a, 0x17, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f,
1265
+ 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07,
1266
+ 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
1267
+ 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x73, 0x22, 0x48, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d,
1268
+ 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
1269
+ 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
1270
+ 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1271
+ 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
1272
+ 0x22, 0x70, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
1221
1273
  0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
1222
1274
  0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63,
1223
1275
  0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
1224
- 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75,
1225
- 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
1226
- 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63,
1227
- 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
1228
- 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01,
1229
- 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1230
- 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
1231
- 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18,
1232
- 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f,
1233
- 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20,
1234
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22,
1235
- 0xa8, 0x01, 0x0a, 0x10, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71,
1236
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18,
1237
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f,
1238
- 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63,
1239
- 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
1240
- 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
1241
- 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
1242
- 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f,
1243
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f,
1244
- 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
1245
- 0x4e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x46,
1246
- 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65,
1247
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,
1248
- 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72,
1249
- 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
1250
- 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f,
1251
- 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73,
1252
- 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73,
1253
- 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75,
1254
- 0x72, 0x73, 0x6f, 0x72, 0x22, 0x63, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6d, 0x61,
1255
- 0x67, 0x65, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07,
1256
- 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
1257
- 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f,
1258
- 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19,
1259
- 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
1260
- 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x0d, 0x46, 0x61, 0x63,
1261
- 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
1262
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
1263
- 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21,
1264
- 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
1265
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e,
1266
- 0x74, 0x22, 0x71, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65,
1267
- 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
1268
- 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
1269
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
1270
- 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
1271
- 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
1272
- 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43,
1273
- 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xeb, 0x03, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
1274
- 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
1275
- 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02,
1276
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63,
1277
- 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f,
1278
- 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65,
1279
- 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77,
1280
- 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
1281
- 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
1282
- 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e,
1283
- 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
1284
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c,
1285
- 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69,
1286
- 0x73, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c,
1287
- 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01,
1288
- 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12,
1289
- 0x43, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,
1290
- 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77,
1291
- 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
1292
- 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d,
1293
- 0x61, 0x67, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f,
1294
- 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62,
1295
- 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65,
1296
- 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65,
1297
- 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
1298
- 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65,
1299
- 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69,
1300
- 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
1301
- 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a,
1302
- 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b,
1303
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75,
1304
- 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
1305
- 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20,
1306
- 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1307
- 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d,
1308
- 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a,
1309
- 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01,
1310
- 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x31,
1311
- 0x0a, 0x0d, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12,
1312
- 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12,
1313
- 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
1314
- 0x6c, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f,
1315
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
1316
- 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20,
1276
+ 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x67,
1277
+ 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
1278
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61,
1279
+ 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49,
1280
+ 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f,
1281
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62,
1282
+ 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
1283
+ 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08,
1284
+ 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
1285
+ 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74,
1286
+ 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
1287
+ 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20,
1288
+ 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1289
+ 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e,
1290
+ 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
1291
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12,
1292
+ 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03,
1293
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72,
1294
+ 0x22, 0xa8, 0x01, 0x0a, 0x10, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65,
1295
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
1296
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c,
1297
+ 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07,
1298
+ 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70,
1299
+ 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
1300
+ 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
1301
+ 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x63,
1302
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73,
1303
+ 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
1304
+ 0x74, 0x4e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x19,
1305
+ 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67,
1306
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
1307
+ 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x62, 0x63,
1308
+ 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
1309
+ 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70,
1310
+ 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6f,
1311
+ 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72,
1312
+ 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43,
1313
+ 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x63, 0x0a, 0x14, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6d,
1314
+ 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a,
1315
+ 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
1316
+ 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x43,
1317
+ 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,
1318
+ 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
1319
+ 0x03, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x46, 0x61,
1320
+ 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12,
1321
+ 0x34, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
1322
+ 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1323
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67,
1324
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x56, 0x0a, 0x0d, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
1325
+ 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
1326
+ 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
1327
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65,
1328
+ 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
1329
+ 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x71, 0x0a,
1330
+ 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a,
1331
+ 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
1332
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
1333
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
1334
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a,
1335
+ 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
1336
+ 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74,
1337
+ 0x22, 0xeb, 0x03, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73,
1338
+ 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
1339
+ 0x64, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
1340
+ 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79,
1341
+ 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05,
1342
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20,
1317
1343
  0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1318
- 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74,
1319
- 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03,
1320
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63,
1321
- 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65,
1322
- 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
1323
- 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
1324
- 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
1325
- 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
1326
- 0x22, 0x66, 0x0a, 0x10, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74,
1327
- 0x4c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20,
1328
- 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1329
- 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74,
1330
- 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f,
1331
- 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65,
1332
- 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x6a, 0x0a, 0x11, 0x46, 0x61, 0x63, 0x65,
1333
- 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a,
1334
- 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
1335
- 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61,
1336
- 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61,
1337
- 0x67, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73,
1344
+ 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72,
1345
+ 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
1346
+ 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
1347
+ 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
1348
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1349
+ 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08,
1350
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74,
1351
+ 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
1352
+ 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x43, 0x0a, 0x0e, 0x63,
1353
+ 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20,
1354
+ 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1355
+ 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67,
1356
+ 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73,
1357
+ 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67,
1358
+ 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77,
1359
+ 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
1360
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d,
1361
+ 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
1362
+ 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
1363
+ 0x41, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
1364
+ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x63,
1365
+ 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d,
1366
+ 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
1367
+ 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6a,
1368
+ 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a,
1369
+ 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
1370
+ 0x1e, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1371
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52,
1372
+ 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78,
1373
+ 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
1374
+ 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x31, 0x0a, 0x0d, 0x46, 0x61,
1375
+ 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
1376
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75,
1377
+ 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xbc, 0x01,
1378
+ 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
1379
+ 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
1380
+ 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
1381
+ 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1382
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x04, 0x70, 0x6f,
1383
+ 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
1384
+ 0x32, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79,
1385
+ 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75,
1386
+ 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04,
1387
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a,
1388
+ 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
1389
+ 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x66, 0x0a, 0x10,
1390
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74,
1391
+ 0x12, 0x31, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
1392
+ 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1393
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x70, 0x6f,
1394
+ 0x73, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73,
1338
1395
  0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75,
1339
- 0x72, 0x73, 0x6f, 0x72, 0x32, 0xdb, 0x04, 0x0a, 0x04, 0x47, 0x72, 0x70, 0x63, 0x12, 0x44, 0x0a,
1340
- 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c,
1341
- 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
1342
- 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1343
- 0x6c, 0x6c, 0x79, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
1344
- 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75,
1345
- 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f,
1346
- 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70,
1347
- 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x62,
1348
- 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65,
1349
- 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x46,
1350
- 0x65, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x66,
1351
- 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74,
1352
- 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
1353
- 0x74, 0x1a, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c,
1354
- 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x00,
1355
- 0x12, 0x59, 0x0a, 0x0e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x65,
1356
- 0x65, 0x64, 0x12, 0x24, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1357
- 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x65, 0x65,
1358
- 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61,
1359
- 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
1360
- 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x09, 0x46,
1361
- 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61,
1362
- 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f,
1363
- 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72,
1396
+ 0x72, 0x73, 0x6f, 0x72, 0x22, 0x6a, 0x0a, 0x11, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
1397
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x69, 0x6d, 0x61,
1398
+ 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72,
1364
1399
  0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f,
1365
- 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x12, 0x46, 0x65, 0x74, 0x63,
1366
- 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x28,
1400
+ 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12,
1401
+ 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02,
1402
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72,
1403
+ 0x32, 0xb5, 0x05, 0x0a, 0x04, 0x47, 0x72, 0x70, 0x63, 0x12, 0x44, 0x0a, 0x05, 0x4c, 0x6f, 0x67,
1404
+ 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1405
+ 0x6c, 0x79, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
1406
+ 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1407
+ 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
1408
+ 0x58, 0x0a, 0x0d, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
1409
+ 0x12, 0x23, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79,
1410
+ 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
1411
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f,
1412
+ 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72,
1413
+ 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0e, 0x46, 0x65, 0x74,
1414
+ 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x66, 0x62,
1415
+ 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63,
1416
+ 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
1417
+ 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c,
1418
+ 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22,
1419
+ 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x46, 0x65, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
1420
+ 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1421
+ 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
1422
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77,
1423
+ 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b,
1424
+ 0x55, 0x73, 0x65, 0x72, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47,
1425
+ 0x72, 0x6f, 0x75, 0x70, 0x46, 0x65, 0x65, 0x64, 0x12, 0x24, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61,
1426
+ 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x47, 0x72,
1427
+ 0x6f, 0x75, 0x70, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f,
1428
+ 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46,
1429
+ 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22,
1430
+ 0x00, 0x12, 0x4b, 0x0a, 0x09, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x1f,
1431
+ 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46,
1432
+ 0x65, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
1433
+ 0x1b, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e,
1434
+ 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62,
1435
+ 0x0a, 0x12, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d,
1436
+ 0x61, 0x67, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63,
1437
+ 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
1438
+ 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
1367
1439
  0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46,
1368
- 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65,
1369
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61,
1440
+ 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74,
1441
+ 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6d, 0x61, 0x67, 0x65,
1442
+ 0x55, 0x72, 0x6c, 0x12, 0x23, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f,
1443
+ 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72,
1444
+ 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61,
1370
1445
  0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
1371
- 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d,
1372
- 0x46, 0x65, 0x74, 0x63, 0x68, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x2e,
1373
- 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x79, 0x2e, 0x46, 0x65,
1374
- 0x74, 0x63, 0x68, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
1375
- 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x5f, 0x63, 0x6f, 0x6c,
1376
- 0x6c, 0x79, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65,
1377
- 0x22, 0x00, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x66, 0x62, 0x63, 0x72, 0x61, 0x77, 0x6c, 0x2f,
1378
- 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1446
+ 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x00, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x66, 0x62,
1447
+ 0x63, 0x72, 0x61, 0x77, 0x6c, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
1448
+ 0x74, 0x6f, 0x33,
1379
1449
  }
1380
1450
 
1381
1451
  var (
@@ -1390,64 +1460,69 @@ func file_fbcrawl_proto_rawDescGZIP() []byte {
1390
1460
  return file_fbcrawl_proto_rawDescData
1391
1461
  }
1392
1462
 
1393
- var file_fbcrawl_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
1463
+ var file_fbcrawl_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
1394
1464
  var file_fbcrawl_proto_goTypes = []interface{}{
1395
- (*Empty)(nil), // 0: fbcrawl_colly.Empty
1396
- (*Context)(nil), // 1: fbcrawl_colly.Context
1397
- (*LoginRequest)(nil), // 2: fbcrawl_colly.LoginRequest
1398
- (*LoginResponse)(nil), // 3: fbcrawl_colly.LoginResponse
1399
- (*LoginWithCookiesRequest)(nil), // 4: fbcrawl_colly.LoginWithCookiesRequest
1465
+ (*Context)(nil), // 0: fbcrawl_colly.Context
1466
+ (*LoginRequest)(nil), // 1: fbcrawl_colly.LoginRequest
1467
+ (*LoginResponse)(nil), // 2: fbcrawl_colly.LoginResponse
1468
+ (*LoginWithCookiesRequest)(nil), // 3: fbcrawl_colly.LoginWithCookiesRequest
1469
+ (*FetchMyGroupsRequest)(nil), // 4: fbcrawl_colly.FetchMyGroupsRequest
1400
1470
  (*FetchGroupInfoRequest)(nil), // 5: fbcrawl_colly.FetchGroupInfoRequest
1401
1471
  (*FetchUserInfoRequest)(nil), // 6: fbcrawl_colly.FetchUserInfoRequest
1402
1472
  (*FetchGroupFeedRequest)(nil), // 7: fbcrawl_colly.FetchGroupFeedRequest
1403
1473
  (*FetchPostRequest)(nil), // 8: fbcrawl_colly.FetchPostRequest
1404
1474
  (*FetchContentImagesRequest)(nil), // 9: fbcrawl_colly.FetchContentImagesRequest
1405
1475
  (*FetchImageUrlRequest)(nil), // 10: fbcrawl_colly.FetchImageUrlRequest
1406
- (*FacebookGroup)(nil), // 11: fbcrawl_colly.FacebookGroup
1407
- (*FacebookUser)(nil), // 12: fbcrawl_colly.FacebookUser
1408
- (*FacebookPost)(nil), // 13: fbcrawl_colly.FacebookPost
1409
- (*CommentList)(nil), // 14: fbcrawl_colly.CommentList
1410
- (*FacebookImage)(nil), // 15: fbcrawl_colly.FacebookImage
1411
- (*FacebookComment)(nil), // 16: fbcrawl_colly.FacebookComment
1412
- (*FacebookPostList)(nil), // 17: fbcrawl_colly.FacebookPostList
1413
- (*FacebookImageList)(nil), // 18: fbcrawl_colly.FacebookImageList
1476
+ (*FacebookGroupList)(nil), // 11: fbcrawl_colly.FacebookGroupList
1477
+ (*FacebookGroup)(nil), // 12: fbcrawl_colly.FacebookGroup
1478
+ (*FacebookUser)(nil), // 13: fbcrawl_colly.FacebookUser
1479
+ (*FacebookPost)(nil), // 14: fbcrawl_colly.FacebookPost
1480
+ (*CommentList)(nil), // 15: fbcrawl_colly.CommentList
1481
+ (*FacebookImage)(nil), // 16: fbcrawl_colly.FacebookImage
1482
+ (*FacebookComment)(nil), // 17: fbcrawl_colly.FacebookComment
1483
+ (*FacebookPostList)(nil), // 18: fbcrawl_colly.FacebookPostList
1484
+ (*FacebookImageList)(nil), // 19: fbcrawl_colly.FacebookImageList
1414
1485
  }
1415
1486
  var file_fbcrawl_proto_depIdxs = []int32{
1416
- 1, // 0: fbcrawl_colly.FetchGroupInfoRequest.context:type_name -> fbcrawl_colly.Context
1417
- 1, // 1: fbcrawl_colly.FetchUserInfoRequest.context:type_name -> fbcrawl_colly.Context
1418
- 1, // 2: fbcrawl_colly.FetchGroupFeedRequest.context:type_name -> fbcrawl_colly.Context
1419
- 1, // 3: fbcrawl_colly.FetchPostRequest.context:type_name -> fbcrawl_colly.Context
1420
- 1, // 4: fbcrawl_colly.FetchContentImagesRequest.context:type_name -> fbcrawl_colly.Context
1421
- 1, // 5: fbcrawl_colly.FetchImageUrlRequest.context:type_name -> fbcrawl_colly.Context
1422
- 11, // 6: fbcrawl_colly.FacebookPost.group:type_name -> fbcrawl_colly.FacebookGroup
1423
- 12, // 7: fbcrawl_colly.FacebookPost.user:type_name -> fbcrawl_colly.FacebookUser
1424
- 14, // 8: fbcrawl_colly.FacebookPost.comments:type_name -> fbcrawl_colly.CommentList
1425
- 15, // 9: fbcrawl_colly.FacebookPost.content_images:type_name -> fbcrawl_colly.FacebookImage
1426
- 15, // 10: fbcrawl_colly.FacebookPost.content_image:type_name -> fbcrawl_colly.FacebookImage
1427
- 16, // 11: fbcrawl_colly.CommentList.comments:type_name -> fbcrawl_colly.FacebookComment
1428
- 13, // 12: fbcrawl_colly.FacebookComment.post:type_name -> fbcrawl_colly.FacebookPost
1429
- 12, // 13: fbcrawl_colly.FacebookComment.user:type_name -> fbcrawl_colly.FacebookUser
1430
- 13, // 14: fbcrawl_colly.FacebookPostList.posts:type_name -> fbcrawl_colly.FacebookPost
1431
- 15, // 15: fbcrawl_colly.FacebookImageList.images:type_name -> fbcrawl_colly.FacebookImage
1432
- 2, // 16: fbcrawl_colly.Grpc.Login:input_type -> fbcrawl_colly.LoginRequest
1433
- 5, // 17: fbcrawl_colly.Grpc.FetchGroupInfo:input_type -> fbcrawl_colly.FetchGroupInfoRequest
1434
- 6, // 18: fbcrawl_colly.Grpc.FetchUserInfo:input_type -> fbcrawl_colly.FetchUserInfoRequest
1435
- 7, // 19: fbcrawl_colly.Grpc.FetchGroupFeed:input_type -> fbcrawl_colly.FetchGroupFeedRequest
1436
- 8, // 20: fbcrawl_colly.Grpc.FetchPost:input_type -> fbcrawl_colly.FetchPostRequest
1437
- 9, // 21: fbcrawl_colly.Grpc.FetchContentImages:input_type -> fbcrawl_colly.FetchContentImagesRequest
1438
- 10, // 22: fbcrawl_colly.Grpc.FetchImageUrl:input_type -> fbcrawl_colly.FetchImageUrlRequest
1439
- 3, // 23: fbcrawl_colly.Grpc.Login:output_type -> fbcrawl_colly.LoginResponse
1440
- 11, // 24: fbcrawl_colly.Grpc.FetchGroupInfo:output_type -> fbcrawl_colly.FacebookGroup
1441
- 12, // 25: fbcrawl_colly.Grpc.FetchUserInfo:output_type -> fbcrawl_colly.FacebookUser
1442
- 17, // 26: fbcrawl_colly.Grpc.FetchGroupFeed:output_type -> fbcrawl_colly.FacebookPostList
1443
- 13, // 27: fbcrawl_colly.Grpc.FetchPost:output_type -> fbcrawl_colly.FacebookPost
1444
- 18, // 28: fbcrawl_colly.Grpc.FetchContentImages:output_type -> fbcrawl_colly.FacebookImageList
1445
- 15, // 29: fbcrawl_colly.Grpc.FetchImageUrl:output_type -> fbcrawl_colly.FacebookImage
1446
- 23, // [23:30] is the sub-list for method output_type
1447
- 16, // [16:23] is the sub-list for method input_type
1448
- 16, // [16:16] is the sub-list for extension type_name
1449
- 16, // [16:16] is the sub-list for extension extendee
1450
- 0, // [0:16] is the sub-list for field type_name
1487
+ 0, // 0: fbcrawl_colly.FetchMyGroupsRequest.context:type_name -> fbcrawl_colly.Context
1488
+ 0, // 1: fbcrawl_colly.FetchGroupInfoRequest.context:type_name -> fbcrawl_colly.Context
1489
+ 0, // 2: fbcrawl_colly.FetchUserInfoRequest.context:type_name -> fbcrawl_colly.Context
1490
+ 0, // 3: fbcrawl_colly.FetchGroupFeedRequest.context:type_name -> fbcrawl_colly.Context
1491
+ 0, // 4: fbcrawl_colly.FetchPostRequest.context:type_name -> fbcrawl_colly.Context
1492
+ 0, // 5: fbcrawl_colly.FetchContentImagesRequest.context:type_name -> fbcrawl_colly.Context
1493
+ 0, // 6: fbcrawl_colly.FetchImageUrlRequest.context:type_name -> fbcrawl_colly.Context
1494
+ 12, // 7: fbcrawl_colly.FacebookGroupList.groups:type_name -> fbcrawl_colly.FacebookGroup
1495
+ 12, // 8: fbcrawl_colly.FacebookPost.group:type_name -> fbcrawl_colly.FacebookGroup
1496
+ 13, // 9: fbcrawl_colly.FacebookPost.user:type_name -> fbcrawl_colly.FacebookUser
1497
+ 15, // 10: fbcrawl_colly.FacebookPost.comments:type_name -> fbcrawl_colly.CommentList
1498
+ 16, // 11: fbcrawl_colly.FacebookPost.content_images:type_name -> fbcrawl_colly.FacebookImage
1499
+ 16, // 12: fbcrawl_colly.FacebookPost.content_image:type_name -> fbcrawl_colly.FacebookImage
1500
+ 17, // 13: fbcrawl_colly.CommentList.comments:type_name -> fbcrawl_colly.FacebookComment
1501
+ 14, // 14: fbcrawl_colly.FacebookComment.post:type_name -> fbcrawl_colly.FacebookPost
1502
+ 13, // 15: fbcrawl_colly.FacebookComment.user:type_name -> fbcrawl_colly.FacebookUser
1503
+ 14, // 16: fbcrawl_colly.FacebookPostList.posts:type_name -> fbcrawl_colly.FacebookPost
1504
+ 16, // 17: fbcrawl_colly.FacebookImageList.images:type_name -> fbcrawl_colly.FacebookImage
1505
+ 1, // 18: fbcrawl_colly.Grpc.Login:input_type -> fbcrawl_colly.LoginRequest
1506
+ 4, // 19: fbcrawl_colly.Grpc.FetchMyGroups:input_type -> fbcrawl_colly.FetchMyGroupsRequest
1507
+ 5, // 20: fbcrawl_colly.Grpc.FetchGroupInfo:input_type -> fbcrawl_colly.FetchGroupInfoRequest
1508
+ 6, // 21: fbcrawl_colly.Grpc.FetchUserInfo:input_type -> fbcrawl_colly.FetchUserInfoRequest
1509
+ 7, // 22: fbcrawl_colly.Grpc.FetchGroupFeed:input_type -> fbcrawl_colly.FetchGroupFeedRequest
1510
+ 8, // 23: fbcrawl_colly.Grpc.FetchPost:input_type -> fbcrawl_colly.FetchPostRequest
1511
+ 9, // 24: fbcrawl_colly.Grpc.FetchContentImages:input_type -> fbcrawl_colly.FetchContentImagesRequest
1512
+ 10, // 25: fbcrawl_colly.Grpc.FetchImageUrl:input_type -> fbcrawl_colly.FetchImageUrlRequest
1513
+ 2, // 26: fbcrawl_colly.Grpc.Login:output_type -> fbcrawl_colly.LoginResponse
1514
+ 11, // 27: fbcrawl_colly.Grpc.FetchMyGroups:output_type -> fbcrawl_colly.FacebookGroupList
1515
+ 12, // 28: fbcrawl_colly.Grpc.FetchGroupInfo:output_type -> fbcrawl_colly.FacebookGroup
1516
+ 13, // 29: fbcrawl_colly.Grpc.FetchUserInfo:output_type -> fbcrawl_colly.FacebookUser
1517
+ 18, // 30: fbcrawl_colly.Grpc.FetchGroupFeed:output_type -> fbcrawl_colly.FacebookPostList
1518
+ 14, // 31: fbcrawl_colly.Grpc.FetchPost:output_type -> fbcrawl_colly.FacebookPost
1519
+ 19, // 32: fbcrawl_colly.Grpc.FetchContentImages:output_type -> fbcrawl_colly.FacebookImageList
1520
+ 16, // 33: fbcrawl_colly.Grpc.FetchImageUrl:output_type -> fbcrawl_colly.FacebookImage
1521
+ 26, // [26:34] is the sub-list for method output_type
1522
+ 18, // [18:26] is the sub-list for method input_type
1523
+ 18, // [18:18] is the sub-list for extension type_name
1524
+ 18, // [18:18] is the sub-list for extension extendee
1525
+ 0, // [0:18] is the sub-list for field type_name
1451
1526
  }
1452
1527
 
1453
1528
  func init() { file_fbcrawl_proto_init() }
@@ -1457,7 +1532,7 @@ func file_fbcrawl_proto_init() {
1457
1532
  }
1458
1533
  if !protoimpl.UnsafeEnabled {
1459
1534
  file_fbcrawl_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1460
- switch v := v.(*Empty); i {
1535
+ switch v := v.(*Context); i {
1461
1536
  case 0:
1462
1537
  return &v.state
1463
1538
  case 1:
@@ -1469,7 +1544,7 @@ func file_fbcrawl_proto_init() {
1469
1544
  }
1470
1545
  }
1471
1546
  file_fbcrawl_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1472
- switch v := v.(*Context); i {
1547
+ switch v := v.(*LoginRequest); i {
1473
1548
  case 0:
1474
1549
  return &v.state
1475
1550
  case 1:
@@ -1481,7 +1556,7 @@ func file_fbcrawl_proto_init() {
1481
1556
  }
1482
1557
  }
1483
1558
  file_fbcrawl_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1484
- switch v := v.(*LoginRequest); i {
1559
+ switch v := v.(*LoginResponse); i {
1485
1560
  case 0:
1486
1561
  return &v.state
1487
1562
  case 1:
@@ -1493,7 +1568,7 @@ func file_fbcrawl_proto_init() {
1493
1568
  }
1494
1569
  }
1495
1570
  file_fbcrawl_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1496
- switch v := v.(*LoginResponse); i {
1571
+ switch v := v.(*LoginWithCookiesRequest); i {
1497
1572
  case 0:
1498
1573
  return &v.state
1499
1574
  case 1:
@@ -1505,7 +1580,7 @@ func file_fbcrawl_proto_init() {
1505
1580
  }
1506
1581
  }
1507
1582
  file_fbcrawl_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1508
- switch v := v.(*LoginWithCookiesRequest); i {
1583
+ switch v := v.(*FetchMyGroupsRequest); i {
1509
1584
  case 0:
1510
1585
  return &v.state
1511
1586
  case 1:
@@ -1589,7 +1664,7 @@ func file_fbcrawl_proto_init() {
1589
1664
  }
1590
1665
  }
1591
1666
  file_fbcrawl_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1592
- switch v := v.(*FacebookGroup); i {
1667
+ switch v := v.(*FacebookGroupList); i {
1593
1668
  case 0:
1594
1669
  return &v.state
1595
1670
  case 1:
@@ -1601,7 +1676,7 @@ func file_fbcrawl_proto_init() {
1601
1676
  }
1602
1677
  }
1603
1678
  file_fbcrawl_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
1604
- switch v := v.(*FacebookUser); i {
1679
+ switch v := v.(*FacebookGroup); i {
1605
1680
  case 0:
1606
1681
  return &v.state
1607
1682
  case 1:
@@ -1613,7 +1688,7 @@ func file_fbcrawl_proto_init() {
1613
1688
  }
1614
1689
  }
1615
1690
  file_fbcrawl_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
1616
- switch v := v.(*FacebookPost); i {
1691
+ switch v := v.(*FacebookUser); i {
1617
1692
  case 0:
1618
1693
  return &v.state
1619
1694
  case 1:
@@ -1625,7 +1700,7 @@ func file_fbcrawl_proto_init() {
1625
1700
  }
1626
1701
  }
1627
1702
  file_fbcrawl_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
1628
- switch v := v.(*CommentList); i {
1703
+ switch v := v.(*FacebookPost); i {
1629
1704
  case 0:
1630
1705
  return &v.state
1631
1706
  case 1:
@@ -1637,7 +1712,7 @@ func file_fbcrawl_proto_init() {
1637
1712
  }
1638
1713
  }
1639
1714
  file_fbcrawl_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
1640
- switch v := v.(*FacebookImage); i {
1715
+ switch v := v.(*CommentList); i {
1641
1716
  case 0:
1642
1717
  return &v.state
1643
1718
  case 1:
@@ -1649,7 +1724,7 @@ func file_fbcrawl_proto_init() {
1649
1724
  }
1650
1725
  }
1651
1726
  file_fbcrawl_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
1652
- switch v := v.(*FacebookComment); i {
1727
+ switch v := v.(*FacebookImage); i {
1653
1728
  case 0:
1654
1729
  return &v.state
1655
1730
  case 1:
@@ -1661,7 +1736,7 @@ func file_fbcrawl_proto_init() {
1661
1736
  }
1662
1737
  }
1663
1738
  file_fbcrawl_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
1664
- switch v := v.(*FacebookPostList); i {
1739
+ switch v := v.(*FacebookComment); i {
1665
1740
  case 0:
1666
1741
  return &v.state
1667
1742
  case 1:
@@ -1673,6 +1748,18 @@ func file_fbcrawl_proto_init() {
1673
1748
  }
1674
1749
  }
1675
1750
  file_fbcrawl_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
1751
+ switch v := v.(*FacebookPostList); i {
1752
+ case 0:
1753
+ return &v.state
1754
+ case 1:
1755
+ return &v.sizeCache
1756
+ case 2:
1757
+ return &v.unknownFields
1758
+ default:
1759
+ return nil
1760
+ }
1761
+ }
1762
+ file_fbcrawl_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
1676
1763
  switch v := v.(*FacebookImageList); i {
1677
1764
  case 0:
1678
1765
  return &v.state
@@ -1691,7 +1778,7 @@ func file_fbcrawl_proto_init() {
1691
1778
  GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1692
1779
  RawDescriptor: file_fbcrawl_proto_rawDesc,
1693
1780
  NumEnums: 0,
1694
- NumMessages: 19,
1781
+ NumMessages: 20,
1695
1782
  NumExtensions: 0,
1696
1783
  NumServices: 1,
1697
1784
  },