@chill-institute/contracts 0.5.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -87,7 +87,25 @@ service CoreService {
87
87
  };
88
88
  };
89
89
  }
90
- rpc GetTopMoviesBySource(GetTopMoviesBySourceRequest) returns (GetTopMoviesBySourceResponse) {
90
+ rpc GetMoviesBySource(GetMoviesBySourceRequest) returns (GetMoviesBySourceResponse) {
91
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
92
+ security: {
93
+ security_requirement: {
94
+ key: "ApiKeyAuth";
95
+ value: {};
96
+ };
97
+ };
98
+ parameters: {
99
+ headers: {
100
+ name: "X-API-Key";
101
+ description: "Core API key";
102
+ type: STRING;
103
+ required: true;
104
+ };
105
+ };
106
+ };
107
+ }
108
+ rpc GetTVShowsBySource(GetTVShowsBySourceRequest) returns (GetTVShowsBySourceResponse) {
91
109
  option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
92
110
  security: {
93
111
  security_requirement: {
@@ -144,7 +162,97 @@ service UserService {
144
162
  };
145
163
  };
146
164
  }
147
- rpc GetTopMovies(UserGetTopMoviesRequest) returns (UserGetTopMoviesResponse) {
165
+ rpc GetMovies(GetMoviesRequest) returns (GetMoviesResponse) {
166
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
167
+ security: {
168
+ security_requirement: {
169
+ key: "BearerAuth";
170
+ value: {};
171
+ };
172
+ };
173
+ parameters: {
174
+ headers: {
175
+ name: "Authorization";
176
+ description: "User auth token. Format: Bearer <token>.";
177
+ type: STRING;
178
+ required: true;
179
+ };
180
+ };
181
+ };
182
+ }
183
+ rpc GetTVShows(GetTVShowsRequest) returns (GetTVShowsResponse) {
184
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
185
+ security: {
186
+ security_requirement: {
187
+ key: "BearerAuth";
188
+ value: {};
189
+ };
190
+ };
191
+ parameters: {
192
+ headers: {
193
+ name: "Authorization";
194
+ description: "User auth token. Format: Bearer <token>.";
195
+ type: STRING;
196
+ required: true;
197
+ };
198
+ };
199
+ };
200
+ }
201
+ rpc GetTVShowDetail(GetTVShowDetailRequest) returns (GetTVShowDetailResponse) {
202
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
203
+ security: {
204
+ security_requirement: {
205
+ key: "BearerAuth";
206
+ value: {};
207
+ };
208
+ };
209
+ parameters: {
210
+ headers: {
211
+ name: "Authorization";
212
+ description: "User auth token. Format: Bearer <token>.";
213
+ type: STRING;
214
+ required: true;
215
+ };
216
+ };
217
+ };
218
+ }
219
+ rpc GetTVShowSeason(GetTVShowSeasonRequest) returns (GetTVShowSeasonResponse) {
220
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
221
+ security: {
222
+ security_requirement: {
223
+ key: "BearerAuth";
224
+ value: {};
225
+ };
226
+ };
227
+ parameters: {
228
+ headers: {
229
+ name: "Authorization";
230
+ description: "User auth token. Format: Bearer <token>.";
231
+ type: STRING;
232
+ required: true;
233
+ };
234
+ };
235
+ };
236
+ }
237
+ rpc GetTVShowEpisodeDownload(GetTVShowEpisodeDownloadRequest) returns (GetTVShowEpisodeDownloadResponse) {
238
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
239
+ security: {
240
+ security_requirement: {
241
+ key: "BearerAuth";
242
+ value: {};
243
+ };
244
+ };
245
+ parameters: {
246
+ headers: {
247
+ name: "Authorization";
248
+ description: "User auth token. Format: Bearer <token>.";
249
+ type: STRING;
250
+ required: true;
251
+ };
252
+ };
253
+ };
254
+ }
255
+ rpc GetTVShowSeasonDownloads(GetTVShowSeasonDownloadsRequest) returns (GetTVShowSeasonDownloadsResponse) {
148
256
  option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
149
257
  security: {
150
258
  security_requirement: {
@@ -361,20 +469,38 @@ message UserSearchRequest {
361
469
  optional string indexer_id = 2;
362
470
  }
363
471
 
364
- enum TopMoviesSource {
365
- TOP_MOVIES_SOURCE_UNSPECIFIED = 0;
366
- TOP_MOVIES_SOURCE_IMDB_MOVIEMETER = 1;
367
- TOP_MOVIES_SOURCE_IMDB_TOP_250 = 2;
368
- TOP_MOVIES_SOURCE_YTS = 3;
369
- TOP_MOVIES_SOURCE_ROTTEN_TOMATOES = 4;
370
- TOP_MOVIES_SOURCE_TRAKT = 5;
472
+ enum MoviesSource {
473
+ MOVIES_SOURCE_UNSPECIFIED = 0;
474
+ MOVIES_SOURCE_IMDB_MOVIEMETER = 1;
475
+ MOVIES_SOURCE_IMDB_TOP_250 = 2;
476
+ MOVIES_SOURCE_YTS = 3;
477
+ MOVIES_SOURCE_ROTTEN_TOMATOES = 4;
478
+ MOVIES_SOURCE_TRAKT = 5;
479
+ }
480
+
481
+ enum TVShowsSource {
482
+ TV_SHOWS_SOURCE_UNSPECIFIED = 0;
483
+ TV_SHOWS_SOURCE_NETFLIX = 1;
484
+ TV_SHOWS_SOURCE_HBO_MAX = 2;
485
+ TV_SHOWS_SOURCE_APPLE_TV_PLUS = 3;
486
+ TV_SHOWS_SOURCE_PRIME_VIDEO = 4;
487
+ TV_SHOWS_SOURCE_DISNEY_PLUS = 5;
488
+ }
489
+
490
+ enum TVShowStatus {
491
+ TV_SHOW_STATUS_UNSPECIFIED = 0;
492
+ TV_SHOW_STATUS_RETURNING = 1;
493
+ TV_SHOW_STATUS_ENDED = 2;
494
+ TV_SHOW_STATUS_CANCELED = 3;
495
+ TV_SHOW_STATUS_IN_PRODUCTION = 4;
496
+ TV_SHOW_STATUS_PLANNED = 5;
371
497
  }
372
498
 
373
- message GetTopMoviesBySourceRequest {
374
- TopMoviesSource source = 1;
499
+ message GetMoviesBySourceRequest {
500
+ MoviesSource source = 1;
375
501
  }
376
502
 
377
- message TopMovie {
503
+ message Movie {
378
504
  option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
379
505
  json_schema: {
380
506
  required: ["poster_url"]
@@ -384,7 +510,7 @@ message TopMovie {
384
510
  string id = 1;
385
511
  string title = 2;
386
512
  int32 year = 3;
387
- TopMoviesSource source = 4;
513
+ MoviesSource source = 4;
388
514
  string title_pretty = 5;
389
515
  string link = 6;
390
516
  int64 peers = 7;
@@ -396,19 +522,151 @@ message TopMovie {
396
522
  string external_url = 13;
397
523
  }
398
524
 
399
- message GetTopMoviesBySourceResponse {
400
- TopMoviesSource source = 1;
401
- repeated TopMovie movies = 2;
525
+ message GetMoviesBySourceResponse {
526
+ MoviesSource source = 1;
527
+ repeated Movie movies = 2;
402
528
  }
403
529
 
404
- message UserGetTopMoviesRequest {}
530
+ message GetMoviesRequest {}
405
531
 
406
- message UserGetTopMoviesResponse {
407
- TopMoviesSource source = 1;
408
- repeated TopMovie movies = 2;
532
+ message GetMoviesResponse {
533
+ MoviesSource source = 1;
534
+ repeated Movie movies = 2;
409
535
  string rss_feed_url = 3;
410
536
  }
411
537
 
538
+ message TVShow {
539
+ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
540
+ json_schema: {
541
+ required: ["imdb_id", "poster_url"]
542
+ }
543
+ };
544
+
545
+ string imdb_id = 1;
546
+ string title = 2;
547
+ int32 year = 3;
548
+ TVShowsSource source = 4;
549
+ string poster_url = 5;
550
+ double rating = 6;
551
+ string overview = 7;
552
+ string external_url = 8;
553
+ int32 season_count = 9;
554
+ TVShowStatus status = 10;
555
+ repeated string networks = 11;
556
+ }
557
+
558
+ message GetTVShowsBySourceRequest {
559
+ TVShowsSource source = 1;
560
+ }
561
+
562
+ message GetTVShowsBySourceResponse {
563
+ TVShowsSource source = 1;
564
+ repeated TVShow shows = 2;
565
+ }
566
+
567
+ message GetTVShowsRequest {}
568
+
569
+ message GetTVShowsResponse {
570
+ TVShowsSource source = 1;
571
+ repeated TVShow shows = 2;
572
+ }
573
+
574
+ message TVShowDetail {
575
+ string imdb_id = 1;
576
+ string title = 2;
577
+ int32 year = 3;
578
+ string poster_url = 4;
579
+ string backdrop_url = 5;
580
+ double rating = 6;
581
+ string overview = 7;
582
+ string external_url = 8;
583
+ int32 season_count = 9;
584
+ TVShowStatus status = 10;
585
+ repeated string networks = 11;
586
+ repeated string genres = 12;
587
+ }
588
+
589
+ message TVShowSeason {
590
+ int32 season_number = 1;
591
+ string name = 2;
592
+ int32 episode_count = 3;
593
+ string air_date = 4;
594
+ string poster_url = 5;
595
+ }
596
+
597
+ message TVShowEpisode {
598
+ int32 season_number = 1;
599
+ int32 episode_number = 2;
600
+ string name = 3;
601
+ string overview = 4;
602
+ string air_date = 5;
603
+ int32 runtime = 6;
604
+ string still_url = 7;
605
+ double rating = 8;
606
+ }
607
+
608
+ message GetTVShowDetailRequest {
609
+ string imdb_id = 1;
610
+ }
611
+
612
+ message GetTVShowDetailResponse {
613
+ TVShowDetail show = 1;
614
+ repeated TVShowSeason seasons = 2;
615
+ }
616
+
617
+ message GetTVShowSeasonRequest {
618
+ string imdb_id = 1;
619
+ int32 season_number = 2;
620
+ }
621
+
622
+ message GetTVShowSeasonResponse {
623
+ string imdb_id = 1;
624
+ int32 season_number = 2;
625
+ TVShowSeason season = 3;
626
+ repeated TVShowEpisode episodes = 4;
627
+ }
628
+
629
+ message TVShowDownload {
630
+ string title = 1;
631
+ string link = 2;
632
+ int64 size = 3;
633
+ int64 seeders = 4;
634
+ string resolution = 5;
635
+ string codec = 6;
636
+ string quality = 7;
637
+ string indexer = 8;
638
+ int32 season_number = 9;
639
+ optional int32 episode_number = 10;
640
+ }
641
+
642
+ message GetTVShowEpisodeDownloadRequest {
643
+ string imdb_id = 1;
644
+ int32 season_number = 2;
645
+ int32 episode_number = 3;
646
+ }
647
+
648
+ message GetTVShowEpisodeDownloadResponse {
649
+ optional TVShowDownload download = 1;
650
+ string search_query = 2;
651
+ }
652
+
653
+ message GetTVShowSeasonDownloadsRequest {
654
+ string imdb_id = 1;
655
+ int32 season_number = 2;
656
+ }
657
+
658
+ message GetTVShowSeasonDownloadsResponse {
659
+ optional TVShowDownload season_pack = 1;
660
+ repeated TVShowEpisodeDownloadResult episodes = 2;
661
+ string season_search_query = 3;
662
+ }
663
+
664
+ message TVShowEpisodeDownloadResult {
665
+ int32 episode_number = 1;
666
+ optional TVShowDownload download = 2;
667
+ string search_query = 3;
668
+ }
669
+
412
670
  message GetUserSettingsRequest {}
413
671
 
414
672
  enum ResolutionFilter {
@@ -456,13 +714,14 @@ enum SortDirection {
456
714
  SORT_DIRECTION_DESC = 2;
457
715
  }
458
716
 
459
- enum TopMoviesDisplayType {
460
- TOP_MOVIES_DISPLAY_TYPE_UNSPECIFIED = 0;
461
- TOP_MOVIES_DISPLAY_TYPE_COMPACT = 1;
462
- TOP_MOVIES_DISPLAY_TYPE_EXPANDED = 2;
717
+ enum CardDisplayType {
718
+ CARD_DISPLAY_TYPE_UNSPECIFIED = 0;
719
+ CARD_DISPLAY_TYPE_COMPACT = 1;
720
+ CARD_DISPLAY_TYPE_EXPANDED = 2;
463
721
  }
464
722
 
465
723
  message UserSettings {
724
+ reserved 11;
466
725
  repeated CodecFilter codec_filters = 1;
467
726
  repeated string disabled_indexer_ids = 2;
468
727
  optional int64 download_folder_id = 3;
@@ -473,12 +732,13 @@ message UserSettings {
473
732
  repeated ResolutionFilter resolution_filters = 8;
474
733
  SearchResultDisplayBehavior search_result_display_behavior = 9;
475
734
  SearchResultTitleBehavior search_result_title_behavior = 10;
476
- bool show_pretty_names_for_top_movies = 11;
477
- bool show_top_movies = 12;
735
+ bool show_movies = 12;
478
736
  SortBy sort_by = 13;
479
737
  SortDirection sort_direction = 14;
480
- TopMoviesDisplayType top_movies_display_type = 15;
481
- TopMoviesSource top_movies_source = 16;
738
+ CardDisplayType card_display_type = 15;
739
+ MoviesSource movies_source = 16;
740
+ bool show_tv_shows = 17;
741
+ TVShowsSource tv_shows_source = 18;
482
742
  }
483
743
 
484
744
  message SaveUserSettingsRequest {