From 71a4ca80b69648e97e045257fa26c441bd7a0d68 Mon Sep 17 00:00:00 2001 From: polebug Date: Mon, 2 Dec 2024 22:32:29 +0800 Subject: [PATCH] chore(worker): add null pointer judgment --- internal/engine/worker/atproto/core/worker.go | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/internal/engine/worker/atproto/core/worker.go b/internal/engine/worker/atproto/core/worker.go index 7400bb22..6e3b95a2 100644 --- a/internal/engine/worker/atproto/core/worker.go +++ b/internal/engine/worker/atproto/core/worker.go @@ -183,16 +183,24 @@ func (w *worker) transformProfile(_ context.Context, message at.Message, activit // buildPostMetadata constructs metadata for a post message. func (w *worker) buildPostMetadata(message at.Message) *metadata.SocialPost { - return &metadata.SocialPost{ + post := &metadata.SocialPost{ Handle: message.Handle, - Body: message.Feed.Text, - Media: w.buildPostMedia(message.Feed), ProfileID: message.Did.String(), PublicationID: message.Rkey, ContentURI: message.URI, - Tags: message.Feed.Tags, Timestamp: uint64(message.CreatedAt.Unix()), } + + if message.Feed != nil { + post.Body = message.Feed.Text + post.Tags = message.Feed.Tags + + if message.Feed.Embed != nil { + post.Media = w.buildPostMedia(message.Feed.Embed) + } + } + + return post } // buildProfileMetadata constructs metadata for a profile message. @@ -234,12 +242,7 @@ func (w *worker) buildPostAction(from string, to string, typex schema.Type, post } // buildPostMedia will build post media from embeds. -func (w *worker) buildPostMedia(post *bsky.FeedPost) []metadata.Media { - if post == nil || post.Embed == nil { - return nil - } - - embed := post.Embed +func (w *worker) buildPostMedia(embed *bsky.FeedPost_Embed) []metadata.Media { media := make([]metadata.Media, 0) if embed.EmbedImages != nil && embed.EmbedImages.Images != nil {