ashthespy пре 4 година
родитељ
комит
6786c093ad
3 измењених фајлова са 609 додато и 282 уклоњено
  1. 0 9
      protocol/files.rs
  2. 57 34
      protocol/proto/metadata.proto
  3. 552 239
      protocol/src/metadata.rs

+ 0 - 9
protocol/files.rs

@@ -1,9 +0,0 @@
-// Autogenerated by build.rs
-pub const FILES: &'static [(&'static str, u32)] = &[
-    ("proto/authentication.proto", 2098196376),
-    ("proto/keyexchange.proto", 451735664),
-    ("proto/mercury.proto", 709993906),
-    ("proto/metadata.proto", 334477813),
-    ("proto/pubsub.proto", 2686584829),
-    ("proto/spirc.proto", 1587493382),
-];

+ 57 - 34
protocol/proto/metadata.proto

@@ -39,6 +39,8 @@ message Date {
     optional sint32 year = 0x1;
     optional sint32 month = 0x2;
     optional sint32 day = 0x3;
+    optional sint32 hour = 0x4;
+    optional sint32 minute = 0x5;
 }
 
 message Album {
@@ -124,15 +126,29 @@ message Copyright {
 }
 
 message Restriction {
-    optional string countries_allowed = 0x2;
-    optional string countries_forbidden = 0x3;
-    optional Type typ = 0x4;
+    enum Catalogue {
+      AD = 0;
+      SUBSCRIPTION = 1;
+      CATALOGUE_ALL = 2;
+      SHUFFLE = 3;
+      COMMERCIAL = 4;
+    }
     enum Type {
         STREAMING = 0x0;
     }
+    repeated Catalogue catalogue = 0x1;
+    optional string countries_allowed = 0x2;
+    optional string countries_forbidden = 0x3;
+    optional Type typ = 0x4;
+
     repeated string catalogue_str = 0x5;
 }
 
+message Availability {
+	repeated string catalogue_str = 0x1;
+	optional Date start = 0x2;
+}
+
 message SalePeriod {
     repeated Restriction restriction = 0x1;
     optional Date start = 0x2;
@@ -156,6 +172,9 @@ message AudioFile {
         MP3_160 = 0x5;
         MP3_96 = 0x6;
         MP3_160_ENC = 0x7;
+        // v4 
+        // AAC_24 = 0x8;
+        // AAC_48 = 0x9;
         MP4_128_DUAL = 0x8;
         OTHER3 = 0x9;
         AAC_160 = 0xa;
@@ -165,70 +184,74 @@ message AudioFile {
     }
 }
 
-// Podcast Protos
-message PublishTime {
-    optional sint32 year = 0x1;
-    optional sint32 month = 0x2;
-    optional sint32 day = 0x3;
-    // These seem to be differently encoded
-    optional sint32 minute = 0x5;
-    optional sint32 hour = 0x4;
+message VideoFile {
+	optional bytes file_id = 1;
 }
 
+// Podcast Protos
 message Show {
+  enum MediaType {
+      MIXED = 0;
+      AUDIO = 1;
+      VIDEO = 2;
+  }
+  enum ConsumptionOrder {
+      SEQUENTIAL = 1;
+      EPISODIC = 2;
+      RECENT = 3;
+    }
+  enum PassthroughEnum {
+      UNKNOWN = 0;
+      NONE = 1;
+      ALLOWED = 2;
+  }
   optional bytes gid = 0x1;
   optional string name = 0x2;
-  repeated Episode episode = 0x46;
-  // Educated guesses
   optional string description = 0x40;
+  optional sint32 deprecated_popularity = 0x41;
   optional string publisher = 0x42;
   optional string language = 0x43;
   optional bool explicit = 0x44;
   optional ImageGroup covers = 0x45;
+  repeated Episode episode = 0x46;
+  repeated Copyright copyright = 0x47;
   repeated Restriction restriction = 0x48;
+  repeated string keyword = 0x49;
   optional MediaType media_type = 0x4A;
   optional ConsumptionOrder consumption_order = 0x4B;
   optional bool interpret_restriction_using_geoip = 0x4C;
+  repeated Availability availability = 0x4E;
   optional string country_of_origin = 0x4F;	
   repeated Category categories = 0x50;
   optional PassthroughEnum passthrough = 0x51;
 }
 
-enum ConsumptionOrder {
-    SEQUENTIAL = 1;
-    EPISODIC = 2;
-    RECENT = 3;
-  }
-enum MediaType {
-    MIXED = 0;
-    AUDIO = 1;
-    VIDEO = 2;
-}
-enum PassthroughEnum {
-    UNKNOWN = 0;
-    NONE = 1;
-    ALLOWED = 2;
-}
-
 message Episode {
   optional bytes gid = 0x1;
   optional string name = 0x2;
   optional sint32 duration = 0x7;
   optional sint32 popularity = 0x8;
   repeated AudioFile file = 0xc;
-  // Educated guesses 
   optional string description = 0x40;
+  optional sint32 number = 0x41;
   optional Date publish_time = 0x42;
+  optional sint32 deprecated_popularity = 0x43;
   optional ImageGroup covers = 0x44;
   optional string language = 0x45;
   optional bool explicit = 0x46;
   optional Show show = 0x47;
-  repeated AudioFile preview = 0x4A;
+  repeated VideoFile video = 0x48;
+	repeated VideoFile video_preview = 0x49;
+  repeated AudioFile audio_preview = 0x4A;
   repeated Restriction restriction = 0x4B;
-  // Order of these flags might be wrong! 
+  optional ImageGroup freeze_frame = 0x4C;
+  repeated string keyword = 0x4D;
+  // Order of these two flags might be wrong! 
   optional bool suppress_monetization = 0x4E;
-  optional bool allow_background_playback = 0x4F;
-  optional bool interpret_restriction_using_geoip = 0x51;
+  optional bool interpret_restriction_using_geoip = 0x4F;
+  
+  optional bool allow_background_playback = 0x51;
+  repeated Availability availability = 0x52;
   optional string external_url = 0x53;
   optional OriginalAudio original_audio = 0x54;
 }

Разлика између датотеке није приказан због своје велике величине
+ 552 - 239
protocol/src/metadata.rs


Неке датотеке нису приказане због велике количине промена