diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -2,7 +2,6 @@ package main import ( "encoding/json" - "fmt" "log" "os" "os/signal" @@ -22,6 +21,18 @@ type BlueskyPost struct { } `json:"record"` } +func createNATSSubject(userID, postType string, timestamp time.Time) string { + parts := []string{"bsky", "feed", "post"} + if userID != "" { + parts = append(parts, "user", userID) + } + if postType != "" { + parts = append(parts, "type", postType) + } + parts = append(parts, "time", timestamp.Format("20060102")) + return strings.Join(parts, ".") +} + func main() { // Connect to NATS nc, err := nats.Connect(nats.DefaultURL) @@ -62,10 +73,7 @@ func main() { } // Create a more detailed NATS subject - subject := fmt.Sprintf("bsky.feed.post.user.%s.type.%s.time.%s", - userID, - postType, - post.Record.CreatedAt.Format("20060102")) + subject := createNATSSubject(userID, postType, post.Record.CreatedAt) // Publish the JSON message to NATS with the detailed subject if err := nc.Publish(subject, message); err != nil { |