Browse Source

content-dir: do not track Person in video in runtime

Mokhtar Naamani 4 years ago
parent
commit
e19e1f677e

+ 6 - 0
content-metadata-protobuf/compiled/proto/Video_pb.d.ts

@@ -170,6 +170,11 @@ export class VideoMetadata extends jspb.Message {
   getIsExplicit(): boolean | undefined;
   setIsExplicit(value: boolean): void;
 
+  clearPersonsList(): void;
+  getPersonsList(): Array<number>;
+  setPersonsList(value: Array<number>): void;
+  addPersons(value: number, index?: number): number;
+
   serializeBinary(): Uint8Array;
   toObject(includeInstance?: boolean): VideoMetadata.AsObject;
   static toObject(includeInstance: boolean, msg: VideoMetadata): VideoMetadata.AsObject;
@@ -196,6 +201,7 @@ export namespace VideoMetadata {
     hasMarketing?: boolean,
     isPublic?: boolean,
     isExplicit?: boolean,
+    personsList: Array<number>,
   }
 }
 

+ 60 - 2
content-metadata-protobuf/compiled/proto/Video_pb.js

@@ -93,7 +93,7 @@ if (goog.DEBUG && !COMPILED) {
  * @constructor
  */
 proto.VideoMetadata = function(opt_data) {
-  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+  jspb.Message.initialize(this, opt_data, 0, -1, proto.VideoMetadata.repeatedFields_, null);
 };
 goog.inherits(proto.VideoMetadata, jspb.Message);
 if (goog.DEBUG && !COMPILED) {
@@ -809,6 +809,13 @@ proto.MediaType.prototype.hasMimeMediaType = function() {
 
 
 
+/**
+ * List of repeated fields within this message type.
+ * @private {!Array<number>}
+ * @const
+ */
+proto.VideoMetadata.repeatedFields_ = [15];
+
 
 
 if (jspb.Message.GENERATE_TO_OBJECT) {
@@ -853,7 +860,8 @@ proto.VideoMetadata.toObject = function(includeInstance, msg) {
     publishedBeforeJoystream: (f = msg.getPublishedBeforeJoystream()) && proto.PublishedBeforeJoystream.toObject(includeInstance, f),
     hasMarketing: (f = jspb.Message.getBooleanField(msg, 12)) == null ? undefined : f,
     isPublic: (f = jspb.Message.getBooleanField(msg, 13)) == null ? undefined : f,
-    isExplicit: (f = jspb.Message.getBooleanField(msg, 14)) == null ? undefined : f
+    isExplicit: (f = jspb.Message.getBooleanField(msg, 14)) == null ? undefined : f,
+    personsList: (f = jspb.Message.getRepeatedField(msg, 15)) == null ? undefined : f
   };
 
   if (includeInstance) {
@@ -949,6 +957,12 @@ proto.VideoMetadata.deserializeBinaryFromReader = function(msg, reader) {
       var value = /** @type {boolean} */ (reader.readBool());
       msg.setIsExplicit(value);
       break;
+    case 15:
+      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint64() : [reader.readUint64()]);
+      for (var i = 0; i < values.length; i++) {
+        msg.addPersons(values[i]);
+      }
+      break;
     default:
       reader.skipField();
       break;
@@ -1079,6 +1093,13 @@ proto.VideoMetadata.serializeBinaryToWriter = function(message, writer) {
       f
     );
   }
+  f = message.getPersonsList();
+  if (f.length > 0) {
+    writer.writePackedUint64(
+      15,
+      f
+    );
+  }
 };
 
 
@@ -1589,6 +1610,43 @@ proto.VideoMetadata.prototype.hasIsExplicit = function() {
 };
 
 
+/**
+ * repeated uint64 persons = 15;
+ * @return {!Array<number>}
+ */
+proto.VideoMetadata.prototype.getPersonsList = function() {
+  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 15));
+};
+
+
+/**
+ * @param {!Array<number>} value
+ * @return {!proto.VideoMetadata} returns this
+ */
+proto.VideoMetadata.prototype.setPersonsList = function(value) {
+  return jspb.Message.setField(this, 15, value || []);
+};
+
+
+/**
+ * @param {number} value
+ * @param {number=} opt_index
+ * @return {!proto.VideoMetadata} returns this
+ */
+proto.VideoMetadata.prototype.addPersons = function(value, opt_index) {
+  return jspb.Message.addToRepeatedField(this, 15, value, opt_index);
+};
+
+
+/**
+ * Clears the list making it empty but non-null.
+ * @return {!proto.VideoMetadata} returns this
+ */
+proto.VideoMetadata.prototype.clearPersonsList = function() {
+  return this.setPersonsList([]);
+};
+
+
 
 
 

+ 1 - 0
content-metadata-protobuf/doc/index.md

@@ -290,6 +290,7 @@ Publication status before joystream
 | has_marketing | [bool](#bool) | optional | Does video have marketing or advertising in the stream |
 | is_public | [bool](#bool) | optional | Should video be publicy visible yet |
 | is_explicit | [bool](#bool) | optional | Does Video have explicit language or scenes |
+| persons | [uint64](#uint64) | repeated | Person(s) referenced by PersonId involved in this video |
 
 
 

+ 3 - 0
content-metadata-protobuf/proto/Video.proto

@@ -74,6 +74,9 @@ message VideoMetadata {
 
     // Does Video have explicit language or scenes
     optional bool is_explicit = 14;
+
+    // Person(s) referenced by PersonId involved in this video
+    repeated uint64 persons = 15 [packed=true];
 }
 
 message VideoCategoryMetadata {

+ 1 - 0
content-metadata-protobuf/test/video.ts

@@ -47,6 +47,7 @@ describe('Video Metadata', () => {
       isExplicit: false,
       thumbnailPhoto: 1,
       video: 0,
+      personsList: [],
     })
 
     // sanity check - encoding / decoding works

+ 0 - 6
runtime-modules/content/src/lib.rs

@@ -432,8 +432,6 @@ pub struct PersonUpdateParameters {
 pub struct Person<MemberId> {
     /// Who can update or delete this person.
     controlled_by: PersonController<MemberId>,
-    /// The number of videos this person appears in.
-    number_of_videos_person_involed_in: u32,
 }
 
 decl_storage! {
@@ -452,8 +450,6 @@ decl_storage! {
 
         pub PersonById get(fn person_by_id): map hasher(blake2_128_concat) T::PersonId => Person<T::MemberId>;
 
-        // pub PersonInVideo get(fn person_in_video): double_map hasher(blake2_128_concat) (T::VideoId, T::PersonId), hasher(blake2_128_concat) T::Hash => ();
-
         pub ChannelOwnershipTransferRequestById get(fn channel_ownership_transfer_request_by_id):
             map hasher(blake2_128_concat) T::ChannelOwnershipTransferRequestId => ChannelOwnershipTransferRequest<T>;
 
@@ -1142,7 +1138,5 @@ decl_event!(
         PersonCreated(PersonId, Vec<NewAsset>, PersonCreationParameters),
         PersonUpdated(PersonId, Vec<NewAsset>, PersonUpdateParameters),
         PersonDeleted(PersonId),
-        PersonAddedToVideo(PersonId, VideoId),
-        PersonRemovedFromVideo(PersonId, VideoId),
     }
 );

+ 0 - 1
types/src/content/index.ts

@@ -147,7 +147,6 @@ export class PersonController extends JoyEnum({
 
 export class Person extends JoyStructDecorated({
   controlled_by: PersonController,
-  number_of_videos_person_involed_in: u32,
 }) {}
 
 export class PersonCreationParameters extends JoyStructDecorated({