mirror of https://github.com/usememos/memos.git
70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
package v1
|
|
|
|
import (
|
|
v1pb "github.com/usememos/memos/proto/gen/api/v1"
|
|
storepb "github.com/usememos/memos/proto/gen/store"
|
|
"github.com/usememos/memos/store"
|
|
)
|
|
|
|
func convertMotionMediaFromStore(motion *storepb.MotionMedia) *v1pb.MotionMedia {
|
|
if motion == nil {
|
|
return nil
|
|
}
|
|
|
|
return &v1pb.MotionMedia{
|
|
Family: v1pb.MotionMediaFamily(motion.Family),
|
|
Role: v1pb.MotionMediaRole(motion.Role),
|
|
GroupId: motion.GroupId,
|
|
PresentationTimestampUs: motion.PresentationTimestampUs,
|
|
HasEmbeddedVideo: motion.HasEmbeddedVideo,
|
|
}
|
|
}
|
|
|
|
func convertMotionMediaToStore(motion *v1pb.MotionMedia) *storepb.MotionMedia {
|
|
if motion == nil {
|
|
return nil
|
|
}
|
|
|
|
return &storepb.MotionMedia{
|
|
Family: storepb.MotionMediaFamily(motion.Family),
|
|
Role: storepb.MotionMediaRole(motion.Role),
|
|
GroupId: motion.GroupId,
|
|
PresentationTimestampUs: motion.PresentationTimestampUs,
|
|
HasEmbeddedVideo: motion.HasEmbeddedVideo,
|
|
}
|
|
}
|
|
|
|
func getAttachmentMotionMedia(attachment *store.Attachment) *storepb.MotionMedia {
|
|
if attachment == nil || attachment.Payload == nil {
|
|
return nil
|
|
}
|
|
return attachment.Payload.MotionMedia
|
|
}
|
|
|
|
func isAndroidMotionContainer(motion *storepb.MotionMedia) bool {
|
|
return motion != nil &&
|
|
motion.Family == storepb.MotionMediaFamily_ANDROID_MOTION_PHOTO &&
|
|
motion.Role == storepb.MotionMediaRole_CONTAINER &&
|
|
motion.HasEmbeddedVideo
|
|
}
|
|
|
|
func ensureAttachmentPayload(payload *storepb.AttachmentPayload) *storepb.AttachmentPayload {
|
|
if payload != nil {
|
|
return payload
|
|
}
|
|
return &storepb.AttachmentPayload{}
|
|
}
|
|
|
|
func isMultiMemberMotionGroup(attachments []*store.Attachment) bool {
|
|
if len(attachments) < 2 {
|
|
return false
|
|
}
|
|
for _, attachment := range attachments {
|
|
motion := getAttachmentMotionMedia(attachment)
|
|
if motion == nil || motion.GroupId == "" {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|