message.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package apmodels
  2. import (
  3. "net/url"
  4. "github.com/go-fed/activity/streams"
  5. "github.com/go-fed/activity/streams/vocab"
  6. )
  7. // CreateCreateActivity will create a new Create Activity model with the provided ID and IRI.
  8. func CreateCreateActivity(id string, localAccountIRI *url.URL) vocab.ActivityStreamsCreate {
  9. objectID := MakeLocalIRIForResource(id)
  10. message := MakeCreateActivity(objectID)
  11. actorProp := streams.NewActivityStreamsActorProperty()
  12. actorProp.AppendIRI(localAccountIRI)
  13. message.SetActivityStreamsActor(actorProp)
  14. return message
  15. }
  16. // AddImageAttachmentToNote will add the provided image URL to the provided note object.
  17. func AddImageAttachmentToNote(note vocab.ActivityStreamsNote, image string) {
  18. imageURL, err := url.Parse(image)
  19. if err != nil {
  20. return
  21. }
  22. attachments := note.GetActivityStreamsAttachment()
  23. if attachments == nil {
  24. attachments = streams.NewActivityStreamsAttachmentProperty()
  25. }
  26. urlProp := streams.NewActivityStreamsUrlProperty()
  27. urlProp.AppendIRI(imageURL)
  28. apImage := streams.NewActivityStreamsImage()
  29. apImage.SetActivityStreamsUrl(urlProp)
  30. imageProp := streams.NewActivityStreamsImageProperty()
  31. imageProp.AppendActivityStreamsImage(apImage)
  32. imageDescription := streams.NewActivityStreamsContentProperty()
  33. imageDescription.AppendXMLSchemaString("Live stream preview")
  34. apImage.SetActivityStreamsContent(imageDescription)
  35. attachments.AppendActivityStreamsImage(apImage)
  36. note.SetActivityStreamsAttachment(attachments)
  37. }