class SetFavouriteBatchRequestMessage(DjangoProtoRPCMessage): """ ProtoRPC that re-uses the BatchRequestMessage and BooleanFlagRequestMessage to create a request message to use when setting favourites. """ basic_batch = nest_message(BatchVideoRequestMessage, 1) basic_boolean = nest_message(BooleanFlagRequestMessage, 2)
class VideoCommentResponseMessage(DjangoProtoRPCMessage): """ Message to repesent a root level comment """ comment = nest_message(VideoCommentResponseMessageSlim, 1) replies = messages.MessageField(VideoCommentResponseMessageSlim, 2, repeated=True)
class ProjectResponseMessage(DjangoProtoRPCMessage): """ProtoRPC message definition to represent a project that is stored.""" class Meta: model = Project exclude = ( 'trashed_at', 'owner', 'videos', 'collections', 'projectusers', 'users', 'projecttags', 'videotags', ) slim_project = nest_message(ProjectResponseMessageSlim, 1) collections = messages.MessageField( CollectionResponseMessageSkinny, 2, repeated=True) admin_ids = messages.IntegerField( 3, repeated=True, variant=messages.Variant.INT32) assigned_user_ids = messages.IntegerField( 4, repeated=True, variant=messages.Variant.INT32) current_user_info = messages.MessageField( ProjectUserResponseMessage, 4) projecttags = messages.MessageField( ProjectTagResponseMessageSlim, 5, repeated=True) owner = messages.MessageField(UserResponseMessage, 6)
class VideoResponseMessageSlim(DjangoProtoRPCMessage): """ ProtoRPC message definition to represent a Video in a list view """ video_data = nest_message(VideoResponseMessage, 1) order = messages.IntegerField(2, variant=messages.Variant.INT32)
class VideoCommentResponseMessageSlim(DjangoProtoRPCMessage): """ Message to represent either root or child comments """ comment = nest_message(CommentResponseMessageSlim, 1) user = messages.MessageField(CommentUserResponse, 2) start_seconds = messages.FloatField(3) project_id = messages.IntegerField(4, variant=messages.Variant.INT32) youtube_id = messages.StringField(5) duration = messages.IntegerField(6, variant=messages.Variant.INT32)
class ProjectTagSlimMessage(DjangoProtoRPCMessage): """ Minimal message definition to represent a project tag. Intended for use in a list. """ basic_tag = nest_message(ProjectTagBasic, 1) video_tag_instance_count = messages.IntegerField( 2, variant=messages.Variant.INT32)
class ProjectTagMessage(DjangoProtoRPCMessage): """ Message definition to represent a project tag """ basic_tag = nest_message(ProjectTagBasic, 1) videotag_count = messages.IntegerField(2)
class ProjectResponseMessageSlim(DjangoProtoRPCMessage): """ProtoRPC message definition to represent a project that is stored.""" basic_project = nest_message(ProjectResponseMessageBasic, 1) video_count = messages.IntegerField(8, variant=messages.Variant.INT32) current_user_info = messages.MessageField( ProjectUserResponseMessage, 9)
class VideoBatchListResponseMessage(DjangoProtoRPCMessage): """ Message to represent a list of batched videos """ meta = nest_message(BatchListResponseMessage, 1) videos = messages.MessageField(VideoResponseMessage, 2, repeated=True)
class CollectionResponseMessage(DjangoProtoRPCMessage): """ ProtoRPC message to represent a video collection """ meta = nest_message(CollectionResponseMessageSkinny, 1) videos = messages.MessageField(VideoResponseMessageSlim, 2, repeated=True)