package vocab import ( "time" ) const example1 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Object", "id": "http://www.test.example/object/1", "name": "A Simple, non-specific object" }` var example1Type = &Object{} func init() { example1Type.AppendType("Object") example1Type.SetId(MustParseURL("http://www.test.example/object/1")) example1Type.AppendNameString("A Simple, non-specific object") } const example2 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/abc", "hreflang": "en", "mediaType": "text/html", "name": "An example link" }` var example2Type = &Link{} func init() { href := MustParseURL("http://example.org/abc") example2Type.AppendType("Link") example2Type.SetHref(href) example2Type.SetHreflang("en") example2Type.SetMediaType("text/html") example2Type.AppendNameString("An example link") } const example3 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Activity", "summary": "Sally did something to a note", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Note", "name": "A Note" } }` var example3Type = &Activity{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Note{} object.AppendType("Note") object.AppendNameString("A Note") example3Type.AppendType("Activity") example3Type.AppendSummaryString("Sally did something to a note") example3Type.AppendActorObject(actor) example3Type.AppendObject(object) } const example4 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Travel", "summary": "Sally went to work", "actor": { "type": "Person", "name": "Sally" }, "target": { "type": "Place", "name": "Work" } }` var example4Type = &Travel{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") place := &Place{} place.AppendType("Place") place.AppendNameString("Work") example4Type.AppendType("Travel") example4Type.AppendSummaryString("Sally went to work") example4Type.AppendActorObject(person) example4Type.AppendTargetObject(place) } const example5 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's notes", "type": "Collection", "totalItems": 2, "items": [ { "type": "Note", "name": "A Simple Note" }, { "type": "Note", "name": "Another Simple Note" } ] }` var example5Type = &Collection{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("A Simple Note") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Another Simple Note") example5Type.AppendType("Collection") example5Type.AppendSummaryString("Sally's notes") example5Type.SetTotalItems(2) example5Type.AppendItemsObject(note1) example5Type.AppendItemsObject(note2) } const example6 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's notes", "type": "OrderedCollection", "totalItems": 2, "orderedItems": [ { "type": "Note", "name": "A Simple Note" }, { "type": "Note", "name": "Another Simple Note" } ] }` var example6Type = &OrderedCollection{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("A Simple Note") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Another Simple Note") example6Type.AppendType("OrderedCollection") example6Type.AppendSummaryString("Sally's notes") example6Type.SetTotalItems(2) example6Type.AppendOrderedItemsObject(note1) example6Type.AppendOrderedItemsObject(note2) } const example7 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's notes", "type": "CollectionPage", "id": "http://example.org/foo?page=1", "partOf": "http://example.org/foo", "items": [ { "type": "Note", "name": "A Simple Note" }, { "type": "Note", "name": "Another Simple Note" } ] }` var example7Type = &CollectionPage{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("A Simple Note") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Another Simple Note") link := MustParseURL("http://example.org/foo") example7Type.AppendType("CollectionPage") example7Type.AppendSummaryString("Page 1 of Sally's notes") example7Type.SetId(MustParseURL("http://example.org/foo?page=1")) example7Type.SetPartOfIRI(link) example7Type.AppendItemsObject(note1) example7Type.AppendItemsObject(note2) } const example8 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's notes", "type": "OrderedCollectionPage", "id": "http://example.org/foo?page=1", "partOf": "http://example.org/foo", "orderedItems": [ { "type": "Note", "name": "A Simple Note" }, { "type": "Note", "name": "Another Simple Note" } ] }` var example8Type = &OrderedCollectionPage{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("A Simple Note") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Another Simple Note") link := MustParseURL("http://example.org/foo") example8Type.AppendType("OrderedCollectionPage") example8Type.AppendSummaryString("Page 1 of Sally's notes") example8Type.SetId(MustParseURL("http://example.org/foo?page=1")) example8Type.SetPartOfIRI(link) example8Type.AppendOrderedItemsObject(note1) example8Type.AppendOrderedItemsObject(note2) } const example9 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally accepted an invitation to a party", "type": "Accept", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Invite", "actor": "http://john.example.org", "object": { "type": "Event", "name": "Going-Away Party for Jim" } } }` var example9Type = &Accept{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") event := &Event{} event.AppendType("Event") event.AppendNameString("Going-Away Party for Jim") link := MustParseURL("http://john.example.org") invite := &Invite{} invite.AppendType("Invite") invite.AppendActorIRI(link) invite.AppendObject(event) example9Type.AppendType("Accept") example9Type.AppendSummaryString("Sally accepted an invitation to a party") example9Type.AppendActorObject(person) example9Type.AppendObject(invite) } const example10 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally accepted Joe into the club", "type": "Accept", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Person", "name": "Joe" }, "target": { "type": "Group", "name": "The Club" } }` var example10Type = &Accept{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") object := &Person{} object.AppendType("Person") object.AppendNameString("Joe") target := &Group{} target.AppendType("Group") target.AppendNameString("The Club") example10Type.AppendType("Accept") example10Type.AppendSummaryString("Sally accepted Joe into the club") example10Type.AppendActorObject(person) example10Type.AppendObject(object) example10Type.AppendTargetObject(target) } const example11 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally tentatively accepted an invitation to a party", "type": "TentativeAccept", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Invite", "actor": "http://john.example.org", "object": { "type": "Event", "name": "Going-Away Party for Jim" } } }` var example11Type = &TentativeAccept{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") event := &Event{} event.AppendType("Event") event.AppendNameString("Going-Away Party for Jim") link := MustParseURL("http://john.example.org") invite := &Invite{} invite.AppendType("Invite") invite.AppendActorIRI(link) invite.AppendObject(event) example11Type.AppendType("TentativeAccept") example11Type.AppendSummaryString("Sally tentatively accepted an invitation to a party") example11Type.AppendActorObject(person) example11Type.AppendObject(invite) } const example12 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally added an object", "type": "Add", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/abc" }` var example12Type = &Add{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") link := MustParseURL("http://example.org/abc") example12Type.AppendType("Add") example12Type.AppendSummaryString("Sally added an object") example12Type.AppendActorObject(person) example12Type.AppendObjectIRI(link) } const example13 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally added a picture of her cat to her cat picture collection", "type": "Add", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Image", "name": "A picture of my cat", "url": "http://example.org/img/cat.png" }, "origin": { "type": "Collection", "name": "Camera Roll" }, "target": { "type": "Collection", "name": "My Cat Pictures" } }` var example13Type = &Add{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") link := MustParseURL("http://example.org/img/cat.png") object := &Image{} object.AppendType("Image") object.AppendNameString("A picture of my cat") object.AppendUrlAnyURI(link) origin := &Collection{} origin.AppendType("Collection") origin.AppendNameString("Camera Roll") target := &Collection{} target.AppendType("Collection") target.AppendNameString("My Cat Pictures") example13Type.AppendType("Add") example13Type.AppendSummaryString("Sally added a picture of her cat to her cat picture collection") example13Type.AppendActorObject(person) example13Type.AppendObject(object) example13Type.AppendOriginObject(origin) example13Type.AppendTargetObject(target) } const example14 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally arrived at work", "type": "Arrive", "actor": { "type": "Person", "name": "Sally" }, "location": { "type": "Place", "name": "Work" }, "origin": { "type": "Place", "name": "Home" } }` var example14Type = &Arrive{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") location := &Place{} location.AppendType("Place") location.AppendNameString("Work") origin := &Place{} origin.AppendType("Place") origin.AppendNameString("Home") example14Type.AppendType("Arrive") example14Type.AppendSummaryString("Sally arrived at work") example14Type.AppendActorObject(person) example14Type.AppendLocationObject(location) example14Type.AppendOriginObject(origin) } const example15 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally created a note", "type": "Create", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Note", "name": "A Simple Note", "content": "This is a simple note" } }` var example15Type = &Create{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Note{} object.AppendType("Note") object.AppendNameString("A Simple Note") object.AppendContentString("This is a simple note") example15Type.AppendType("Create") example15Type.AppendSummaryString("Sally created a note") example15Type.AppendActorObject(actor) example15Type.AppendObject(object) } const example16 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally deleted a note", "type": "Delete", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/notes/1", "origin": { "type": "Collection", "name": "Sally's Notes" } }` var example16Type = &Delete{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") origin := &Collection{} origin.AppendType("Collection") origin.AppendNameString("Sally's Notes") link := MustParseURL("http://example.org/notes/1") example16Type.AppendType("Delete") example16Type.AppendSummaryString("Sally deleted a note") example16Type.AppendActorObject(actor) example16Type.AppendObjectIRI(link) example16Type.AppendOriginObject(origin) } const example17 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally followed John", "type": "Follow", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Person", "name": "John" } }` var example17Type = &Follow{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Person{} object.AppendType("Person") object.AppendNameString("John") example17Type.AppendType("Follow") example17Type.AppendSummaryString("Sally followed John") example17Type.AppendActorObject(actor) example17Type.AppendObject(object) } const example18 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally ignored a note", "type": "Ignore", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/notes/1" }` var example18Type = &Ignore{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/notes/1") example18Type.AppendType("Ignore") example18Type.AppendSummaryString("Sally ignored a note") example18Type.AppendActorObject(actor) example18Type.AppendObjectIRI(link) } const example19 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally joined a group", "type": "Join", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Group", "name": "A Simple Group" } }` var example19Type = &Join{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Group{} object.AppendType("Group") object.AppendNameString("A Simple Group") example19Type.AppendType("Join") example19Type.AppendSummaryString("Sally joined a group") example19Type.AppendActorObject(actor) example19Type.AppendObject(object) } const example20 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally left work", "type": "Leave", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Place", "name": "Work" } }` var example20Type = &Leave{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Place{} object.AppendType("Place") object.AppendNameString("Work") example20Type.AppendType("Leave") example20Type.AppendSummaryString("Sally left work") example20Type.AppendActorObject(actor) example20Type.AppendObject(object) } const example21 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally left a group", "type": "Leave", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Group", "name": "A Simple Group" } }` var example21Type = &Leave{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Group{} object.AppendType("Group") object.AppendNameString("A Simple Group") example21Type.AppendType("Leave") example21Type.AppendSummaryString("Sally left a group") example21Type.AppendActorObject(actor) example21Type.AppendObject(object) } const example22 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally liked a note", "type": "Like", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/notes/1" }` var example22Type = &Like{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/notes/1") example22Type.AppendType("Like") example22Type.AppendSummaryString("Sally liked a note") example22Type.AppendActorObject(actor) example22Type.AppendObjectIRI(link) } const example23 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered 50% off to Lewis", "type": "Offer", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "http://www.types.example/ProductOffer", "name": "50% Off!" }, "target": { "type": "Person", "name": "Lewis" } }` var example23Type = &Offer{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := make(map[string]interface{}) object["type"] = "http://www.types.example/ProductOffer" object["name"] = "50% Off!" target := &Person{} target.AppendType("Person") target.AppendNameString("Lewis") example23Type.AppendType("Offer") example23Type.AppendSummaryString("Sally offered 50% off to Lewis") example23Type.AppendActorObject(actor) example23Type.SetUnknownObject(object) example23Type.AppendTargetObject(target) } const example24 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally invited John and Lisa to a party", "type": "Invite", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Event", "name": "A Party" }, "target": [ { "type": "Person", "name": "John" }, { "type": "Person", "name": "Lisa" } ] }` var example24Type = &Invite{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Event{} object.AppendType("Event") object.AppendNameString("A Party") target1 := &Person{} target1.AppendType("Person") target1.AppendNameString("John") target2 := &Person{} target2.AppendType("Person") target2.AppendNameString("Lisa") example24Type.AppendType("Invite") example24Type.AppendSummaryString("Sally invited John and Lisa to a party") example24Type.AppendActorObject(actor) example24Type.AppendObject(object) example24Type.AppendTargetObject(target1) example24Type.AppendTargetObject(target2) } const example25 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally rejected an invitation to a party", "type": "Reject", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Invite", "actor": "http://john.example.org", "object": { "type": "Event", "name": "Going-Away Party for Jim" } } }` var example25Type = &Reject{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://john.example.org") inviteObject := &Event{} inviteObject.AppendType("Event") inviteObject.AppendNameString("Going-Away Party for Jim") object := &Invite{} object.AppendType("Invite") object.AppendActorIRI(link) object.AppendObject(inviteObject) example25Type.AppendType("Reject") example25Type.AppendSummaryString("Sally rejected an invitation to a party") example25Type.AppendActorObject(actor) example25Type.AppendObject(object) } const example26 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally tentatively rejected an invitation to a party", "type": "TentativeReject", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Invite", "actor": "http://john.example.org", "object": { "type": "Event", "name": "Going-Away Party for Jim" } } }` var example26Type = &TentativeReject{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://john.example.org") inviteObject := &Event{} inviteObject.AppendType("Event") inviteObject.AppendNameString("Going-Away Party for Jim") object := &Invite{} object.AppendType("Invite") object.AppendActorIRI(link) object.AppendObject(inviteObject) example26Type.AppendType("TentativeReject") example26Type.AppendSummaryString("Sally tentatively rejected an invitation to a party") example26Type.AppendActorObject(actor) example26Type.AppendObject(object) } const example27 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally removed a note from her notes folder", "type": "Remove", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/notes/1", "target": { "type": "Collection", "name": "Notes Folder" } }` var example27Type = &Remove{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/notes/1") target := &Collection{} target.AppendType("Collection") target.AppendNameString("Notes Folder") example27Type.AppendType("Remove") example27Type.AppendSummaryString("Sally removed a note from her notes folder") example27Type.AppendActorObject(actor) example27Type.AppendObjectIRI(link) example27Type.AppendTargetObject(target) } const example28 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "The moderator removed Sally from a group", "type": "Remove", "actor": { "type": "http://example.org/Role", "name": "The Moderator" }, "object": { "type": "Person", "name": "Sally" }, "origin": { "type": "Group", "name": "A Simple Group" } }` var example28Type = &Remove{} func init() { actor := make(map[string]interface{}) actor["type"] = "http://example.org/Role" actor["name"] = "The Moderator" object := &Person{} object.AppendType("Person") object.AppendNameString("Sally") origin := &Group{} origin.AppendType("Group") origin.AppendNameString("A Simple Group") example28Type.AppendType("Remove") example28Type.AppendSummaryString("The moderator removed Sally from a group") example28Type.SetUnknownActor(actor) example28Type.AppendObject(object) example28Type.AppendOriginObject(origin) } const example29 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally retracted her offer to John", "type": "Undo", "actor": "http://sally.example.org", "object": { "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org" } }` var example29Type = &Undo{} func init() { link := MustParseURL("http://sally.example.org") objectLink := MustParseURL("http://example.org/posts/1") targetLink := MustParseURL("http://john.example.org") object := &Offer{} object.AppendType("Offer") object.AppendActorIRI(link) object.AppendObjectIRI(objectLink) object.AppendTargetIRI(targetLink) example29Type.AppendType("Undo") example29Type.AppendSummaryString("Sally retracted her offer to John") example29Type.AppendActorIRI(link) example29Type.AppendObject(object) } const example30 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally updated her note", "type": "Update", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/notes/1" }` var example30Type = &Update{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/notes/1") example30Type.AppendType("Update") example30Type.AppendSummaryString("Sally updated her note") example30Type.AppendActorObject(actor) example30Type.AppendObjectIRI(link) } const example31 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally read an article", "type": "View", "actor": { "type": "Person", "name": "Sally" }, "object": { "type": "Article", "name": "What You Should Know About Activity Streams" } }` var example31Type = &View{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") object := &Article{} object.AppendType("Article") object.AppendNameString("What You Should Know About Activity Streams") example31Type.AppendType("View") example31Type.AppendSummaryString("Sally read an article") example31Type.AppendActorObject(actor) example31Type.AppendObject(object) } const example32 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally listened to a piece of music", "type": "Listen", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/music.mp3" }` var example32Type = &Listen{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/music.mp3") example32Type.AppendType("Listen") example32Type.AppendSummaryString("Sally listened to a piece of music") example32Type.AppendActorObject(actor) example32Type.AppendObjectIRI(link) } const example33 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally read a blog post", "type": "Read", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/posts/1" }` var example33Type = &Read{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/posts/1") example33Type.AppendType("Read") example33Type.AppendSummaryString("Sally read a blog post") example33Type.AppendActorObject(actor) example33Type.AppendObjectIRI(link) } const example34 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally moved a post from List A to List B", "type": "Move", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/posts/1", "target": { "type": "Collection", "name": "List B" }, "origin": { "type": "Collection", "name": "List A" } }` var example34Type = &Move{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") link := MustParseURL("http://example.org/posts/1") target := &Collection{} target.AppendType("Collection") target.AppendNameString("List B") origin := &Collection{} origin.AppendType("Collection") origin.AppendNameString("List A") example34Type.AppendType("Move") example34Type.AppendSummaryString("Sally moved a post from List A to List B") example34Type.AppendActorObject(actor) example34Type.AppendObjectIRI(link) example34Type.AppendTargetObject(target) example34Type.AppendOriginObject(origin) } const example35 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally went home from work", "type": "Travel", "actor": { "type": "Person", "name": "Sally" }, "target": { "type": "Place", "name": "Home" }, "origin": { "type": "Place", "name": "Work" } }` var example35Type = &Travel{} func init() { actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") target := &Place{} target.AppendType("Place") target.AppendNameString("Home") origin := &Place{} origin.AppendType("Place") origin.AppendNameString("Work") example35Type.AppendType("Travel") example35Type.AppendSummaryString("Sally went home from work") example35Type.AppendActorObject(actor) example35Type.AppendTargetObject(target) example35Type.AppendOriginObject(origin) } const example36 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally announced that she had arrived at work", "type": "Announce", "actor": { "type": "Person", "id": "http://sally.example.org", "name": "Sally" }, "object": { "type": "Arrive", "actor": "http://sally.example.org", "location": { "type": "Place", "name": "Work" } } }` var example36Type = &Announce{} func init() { link := MustParseURL("http://sally.example.org") actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") actor.SetId(link) loc := &Place{} loc.AppendType("Place") loc.AppendNameString("Work") object := &Arrive{} object.AppendType("Arrive") object.AppendActorIRI(link) object.AppendLocationObject(loc) example36Type.AppendType("Announce") example36Type.AppendSummaryString("Sally announced that she had arrived at work") example36Type.AppendActorObject(actor) example36Type.AppendObject(object) } const example37 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally blocked Joe", "type": "Block", "actor": "http://sally.example.org", "object": "http://joe.example.org" }` var example37Type = &Block{} func init() { link := MustParseURL("http://sally.example.org") objLink := MustParseURL("http://joe.example.org") example37Type.AppendType("Block") example37Type.AppendSummaryString("Sally blocked Joe") example37Type.AppendActorIRI(link) example37Type.AppendObjectIRI(objLink) } const example38 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally flagged an inappropriate note", "type": "Flag", "actor": "http://sally.example.org", "object": { "type": "Note", "content": "An inappropriate note" } }` var example38Type = &Flag{} func init() { link := MustParseURL("http://sally.example.org") object := &Note{} object.AppendType("Note") object.AppendContentString("An inappropriate note") example38Type.AppendType("Flag") example38Type.AppendSummaryString("Sally flagged an inappropriate note") example38Type.AppendActorIRI(link) example38Type.AppendObject(object) } const example39 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally disliked a post", "type": "Dislike", "actor": "http://sally.example.org", "object": "http://example.org/posts/1" }` var example39Type = &Dislike{} func init() { link := MustParseURL("http://sally.example.org") objLink := MustParseURL("http://example.org/posts/1") example39Type.AppendType("Dislike") example39Type.AppendSummaryString("Sally disliked a post") example39Type.AppendActorIRI(link) example39Type.AppendObjectIRI(objLink) } const example40 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Question", "name": "What is the answer?", "oneOf": [ { "type": "Note", "name": "Option A" }, { "type": "Note", "name": "Option B" } ] }` var example40Type = &Question{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Option A") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Option B") example40Type.AppendType("Question") example40Type.AppendNameString("What is the answer?") example40Type.AppendOneOfObject(note1) example40Type.AppendOneOfObject(note2) } const example41 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Question", "name": "What is the answer?", "closed": "2016-05-10T00:00:00Z" }` var example41Type = &Question{} func init() { t, err := time.Parse(time.RFC3339, "2016-05-10T00:00:00Z") if err != nil { panic(err) } example41Type.AppendType("Question") example41Type.AppendNameString("What is the answer?") example41Type.AppendClosedDateTime(t) } const example42 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Application", "name": "Exampletron 3000" }` var example42Type = &Application{} func init() { example42Type.AppendType("Application") example42Type.AppendNameString("Exampletron 3000") } const example43 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Group", "name": "Big Beards of Austin" }` var example43Type = &Group{} func init() { example43Type.AppendType("Group") example43Type.AppendNameString("Big Beards of Austin") } const example44 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Organization", "name": "Example Co." }` var example44Type = &Organization{} func init() { example44Type.AppendType("Organization") example44Type.AppendNameString("Example Co.") } const example45 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Person", "name": "Sally Smith" }` var example45Type = &Person{} func init() { example45Type.AppendType("Person") example45Type.AppendNameString("Sally Smith") } const example46 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Service", "name": "Acme Web Service" }` var example46Type = &Service{} func init() { example46Type.AppendType("Service") example46Type.AppendNameString("Acme Web Service") } const example47 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally is an acquaintance of John", "type": "Relationship", "subject": { "type": "Person", "name": "Sally" }, "relationship": "http://purl.org/vocab/relationship/acquaintanceOf", "object": { "type": "Person", "name": "John" } }` var example47Type = &Relationship{} func init() { subject := &Person{} subject.AppendType("Person") subject.AppendNameString("Sally") object := &Person{} object.AppendType("Person") object.AppendNameString("John") rel := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf") example47Type.AppendType("Relationship") example47Type.AppendSummaryString("Sally is an acquaintance of John") example47Type.SetSubjectObject(subject) example47Type.AppendObject(object) example47Type.SetRelationshipIRI(rel) } const example48 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Article", "name": "What a Crazy Day I Had", "content": "
... you will never believe ...
", "attributedTo": "http://sally.example.org" }` var example48Type = &Article{} func init() { att := MustParseURL("http://sally.example.org") example48Type.AppendType("Article") example48Type.AppendNameString("What a Crazy Day I Had") example48Type.AppendAttributedToIRI(att) example48Type.AppendContentString("
... you will never believe ...
") } const example49 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Document", "name": "4Q Sales Forecast", "url": "http://example.org/4q-sales-forecast.pdf" }` var example49Type = &Document{} func init() { l := MustParseURL("http://example.org/4q-sales-forecast.pdf") example49Type.AppendType("Document") example49Type.AppendNameString("4Q Sales Forecast") example49Type.AppendUrlAnyURI(l) } const example50 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Audio", "name": "Interview With A Famous Technologist", "url": { "type": "Link", "href": "http://example.org/podcast.mp3", "mediaType": "audio/mp3" } }` var example50Type = &Audio{} func init() { l := MustParseURL("http://example.org/podcast.mp3") link := &Link{} link.AppendType("Link") link.SetHref(l) link.SetMediaType("audio/mp3") example50Type.AppendType("Audio") example50Type.AppendNameString("Interview With A Famous Technologist") example50Type.AppendUrlLink(link) } const example51 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Image", "name": "Cat Jumping on Wagon", "url": [ { "type": "Link", "href": "http://example.org/image.jpeg", "mediaType": "image/jpeg" }, { "type": "Link", "href": "http://example.org/image.png", "mediaType": "image/png" } ] }` var example51Type = &Image{} func init() { l1 := MustParseURL("http://example.org/image.jpeg") l2 := MustParseURL("http://example.org/image.png") link1 := &Link{} link1.AppendType("Link") link1.SetHref(l1) link1.SetMediaType("image/jpeg") link2 := &Link{} link2.AppendType("Link") link2.SetHref(l2) link2.SetMediaType("image/png") example51Type.AppendType("Image") example51Type.AppendNameString("Cat Jumping on Wagon") example51Type.AppendUrlLink(link1) example51Type.AppendUrlLink(link2) } const example52 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Video", "name": "Puppy Plays With Ball", "url": "http://example.org/video.mkv", "duration": "PT2H" }` var example52Type = &Video{} func init() { l := MustParseURL("http://example.org/video.mkv") example52Type.AppendType("Video") example52Type.AppendNameString("Puppy Plays With Ball") example52Type.AppendUrlAnyURI(l) example52Type.SetDuration(time.Hour * 2) } const example53 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Note", "name": "A Word of Warning", "content": "Looks like it is going to rain today. Bring an umbrella!" }` var example53Type = &Note{} func init() { example53Type.AppendType("Note") example53Type.AppendNameString("A Word of Warning") example53Type.AppendContentString("Looks like it is going to rain today. Bring an umbrella!") } const example54 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Page", "name": "Omaha Weather Report", "url": "http://example.org/weather-in-omaha.html" }` var example54Type = &Page{} func init() { l := MustParseURL("http://example.org/weather-in-omaha.html") example54Type.AppendType("Page") example54Type.AppendNameString("Omaha Weather Report") example54Type.AppendUrlAnyURI(l) } const example55 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Event", "name": "Going-Away Party for Jim", "startTime": "2014-12-31T23:00:00-08:00", "endTime": "2015-01-01T06:00:00-08:00" }` var example55Type = &Event{} func init() { t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00") if err != nil { panic(err) } t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00") if err != nil { panic(err) } example55Type.AppendType("Event") example55Type.AppendNameString("Going-Away Party for Jim") example55Type.SetStartTime(t1) example55Type.SetEndTime(t2) } const example56 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Work" }` var example56Type = &Place{} func init() { example56Type.AppendType("Place") example56Type.AppendNameString("Work") } const example57 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "latitude": 36.75, "longitude": 119.7667, "radius": 15, "units": "miles" }` var example57Type = &Place{} func init() { example57Type.AppendType("Place") example57Type.AppendNameString("Fresno Area") example57Type.SetLatitude(36.75) example57Type.SetLongitude(119.7667) example57Type.SetRadius(15) example57Type.SetUnitsUnitsValue("miles") } const example58 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Mention of Joe by Carrie in her note", "type": "Mention", "href": "http://example.org/joe", "name": "Joe" }` var example58Type = &Mention{} func init() { l := MustParseURL("http://example.org/joe") example58Type.AppendType("Mention") example58Type.AppendSummaryString("Mention of Joe by Carrie in her note") example58Type.SetHref(l) example58Type.AppendNameString("Joe") } const example59 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Profile", "summary": "Sally's Profile", "describes": { "type": "Person", "name": "Sally Smith" } }` var example59Type = &Profile{} func init() { person := &Person{} person.AppendType("Person") person.AppendNameString("Sally Smith") example59Type.AppendType("Profile") example59Type.AppendSummaryString("Sally's Profile") example59Type.SetDescribes(person) } // Note that the @context is missing from the spec! const example60 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "OrderedCollection", "totalItems": 3, "name": "Vacation photos 2016", "orderedItems": [ { "type": "Image", "id": "http://image.example/1" }, { "type": "Tombstone", "formerType": "Image", "id": "http://image.example/2", "deleted": "2016-03-17T00:00:00Z" }, { "type": "Image", "id": "http://image.example/3" } ] }` var example60Type = &OrderedCollection{} func init() { t, err := time.Parse(time.RFC3339, "2016-03-17T00:00:00Z") if err != nil { panic(err) } image1 := &Image{} image1.AppendType("Image") image1.SetId(MustParseURL("http://image.example/1")) tombstone := &Tombstone{} tombstone.AppendType("Tombstone") tombstone.AppendFormerTypeString("Image") tombstone.SetId(MustParseURL("http://image.example/2")) tombstone.SetDeleted(t) image2 := &Image{} image2.AppendType("Image") image2.SetId(MustParseURL("http://image.example/3")) example60Type.AppendType("OrderedCollection") example60Type.SetTotalItems(3) example60Type.AppendNameString("Vacation photos 2016") example60Type.AppendOrderedItemsObject(image1) example60Type.AppendOrderedItemsObject(tombstone) example60Type.AppendOrderedItemsObject(image2) } const example61 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Foo", "id": "http://example.org/foo" }` var example61Type = &Unknown{} func init() { example61Type.SetField("id", "http://example.org/foo") example61Type.SetField("name", "Foo") } const example62 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A foo", "type": "http://example.org/Foo" }` var example62Type = &Unknown{} func init() { example62Type.SetField("type", "http://example.org/Foo") example62Type.SetField("summary", "A foo") } const example63 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered the Foo object", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/foo" }` var example63Type = &Offer{} func init() { l := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/foo") example63Type.AppendType("Offer") example63Type.AppendSummaryString("Sally offered the Foo object") example63Type.AppendActorIRI(l) example63Type.AppendObjectIRI(o) } const example64 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered the Foo object", "type": "Offer", "actor": { "type": "Person", "id": "http://sally.example.org", "summary": "Sally" }, "object": "http://example.org/foo" }` var example64Type = &Offer{} func init() { actor := &Person{} actor.AppendType("Person") actor.SetId(MustParseURL("http://sally.example.org")) actor.AppendSummaryString("Sally") o := MustParseURL("http://example.org/foo") example64Type.AppendType("Offer") example64Type.AppendSummaryString("Sally offered the Foo object") example64Type.AppendActorObject(actor) example64Type.AppendObjectIRI(o) } const example65 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally and Joe offered the Foo object", "type": "Offer", "actor": [ "http://joe.example.org", { "type": "Person", "id": "http://sally.example.org", "name": "Sally" } ], "object": "http://example.org/foo" }` var example65Type = &Offer{} func init() { actor := &Person{} actor.AppendType("Person") actor.SetId(MustParseURL("http://sally.example.org")) actor.AppendNameString("Sally") o := MustParseURL("http://example.org/foo") l := MustParseURL("http://joe.example.org") example65Type.AppendType("Offer") example65Type.AppendSummaryString("Sally and Joe offered the Foo object") example65Type.AppendObjectIRI(o) example65Type.AppendActorIRI(l) example65Type.AppendActorObject(actor) } // NOTE: Changed to not be an array value for "attachment" to keep in line with other examples in spec! const example66 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Note", "name": "Have you seen my cat?", "attachment": { "type": "Image", "content": "This is what he looks like.", "url": "http://example.org/cat.jpeg" } }` var example66Type = &Note{} func init() { l := MustParseURL("http://example.org/cat.jpeg") image := &Image{} image.AppendType("Image") image.AppendContentString("This is what he looks like.") image.AppendUrlAnyURI(l) example66Type.AppendType("Note") example66Type.AppendNameString("Have you seen my cat?") example66Type.AppendAttachmentObject(image) } // NOTE: Changed to not be an array value for "attributedTo" to keep in line with other examples in spec! const example67 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Image", "name": "My cat taking a nap", "url": "http://example.org/cat.jpeg", "attributedTo": { "type": "Person", "name": "Sally" } }` var example67Type = &Image{} func init() { l := MustParseURL("http://example.org/cat.jpeg") person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") example67Type.AppendType("Image") example67Type.AppendNameString("My cat taking a nap") example67Type.AppendUrlAnyURI(l) example67Type.AppendAttributedToObject(person) } const example68 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Image", "name": "My cat taking a nap", "url": "http://example.org/cat.jpeg", "attributedTo": [ "http://joe.example.org", { "type": "Person", "name": "Sally" } ] }` var example68Type = &Image{} func init() { l := MustParseURL("http://example.org/cat.jpeg") a := MustParseURL("http://joe.example.org") person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") example68Type.AppendType("Image") example68Type.AppendNameString("My cat taking a nap") example68Type.AppendUrlAnyURI(l) example68Type.AppendAttributedToIRI(a) example68Type.AppendAttributedToObject(person) } const example69 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Holiday announcement", "type": "Note", "content": "Thursday will be a company-wide holiday. Enjoy your day off!", "audience": { "type": "http://example.org/Organization", "name": "ExampleCo LLC" } }` var example69Type = &Note{} func init() { audience := make(map[string]interface{}) audience["type"] = "http://example.org/Organization" audience["name"] = "ExampleCo LLC" example69Type.AppendType("Note") example69Type.AppendNameString("Holiday announcement") example69Type.AppendContentString("Thursday will be a company-wide holiday. Enjoy your day off!") example69Type.AddUnknown("audience", audience) } // NOTE: Changed to not be an array value for "bcc" to keep in line with other examples in spec! const example70 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered a post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org", "bcc": "http://joe.example.org" }` var example70Type = &Offer{} func init() { o := MustParseURL("http://example.org/posts/1") a := MustParseURL("http://sally.example.org") t := MustParseURL("http://john.example.org") b := MustParseURL("http://joe.example.org") example70Type.AppendType("Offer") example70Type.AppendSummaryString("Sally offered a post to John") example70Type.AppendActorIRI(a) example70Type.AppendObjectIRI(o) example70Type.AppendTargetIRI(t) example70Type.AppendBccIRI(b) } // NOTE: Changed to not be an array value for "bto" to keep in line with other examples in spec! const example71 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered a post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org", "bto": "http://joe.example.org" }` var example71Type = &Offer{} func init() { o := MustParseURL("http://example.org/posts/1") a := MustParseURL("http://sally.example.org") t := MustParseURL("http://john.example.org") b := MustParseURL("http://joe.example.org") example71Type.AppendType("Offer") example71Type.AppendSummaryString("Sally offered a post to John") example71Type.AppendActorIRI(a) example71Type.AppendObjectIRI(o) example71Type.AppendTargetIRI(t) example71Type.AppendBtoIRI(b) } // NOTE: Changed to not be an array value for "cc" to keep in line with other examples in spec! const example72 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered a post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org", "cc": "http://joe.example.org" }` var example72Type = &Offer{} func init() { o := MustParseURL("http://example.org/posts/1") a := MustParseURL("http://sally.example.org") t := MustParseURL("http://john.example.org") b := MustParseURL("http://joe.example.org") example72Type.AppendType("Offer") example72Type.AppendSummaryString("Sally offered a post to John") example72Type.AppendActorIRI(a) example72Type.AppendObjectIRI(o) example72Type.AppendTargetIRI(t) example72Type.AppendCcIRI(b) } const example73 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Activities in context 1", "type": "Collection", "items": [ { "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org", "context": "http://example.org/contexts/1" }, { "type": "Like", "actor": "http://joe.example.org", "object": "http://example.org/posts/2", "context": "http://example.org/contexts/1" } ] }` var example73Type = &Collection{} func init() { oa := MustParseURL("http://sally.example.org") oo := MustParseURL("http://example.org/posts/1") ot := MustParseURL("http://john.example.org") oc := MustParseURL("http://example.org/contexts/1") offer := &Offer{} offer.AppendType("Offer") offer.AppendActorIRI(oa) offer.AppendObjectIRI(oo) offer.AppendTargetIRI(ot) offer.AppendContextIRI(oc) la := MustParseURL("http://joe.example.org") lo := MustParseURL("http://example.org/posts/2") lc := MustParseURL("http://example.org/contexts/1") like := &Like{} like.AppendType("Like") like.AppendActorIRI(la) like.AppendObjectIRI(lo) like.AppendContextIRI(lc) example73Type.AppendType("Collection") example73Type.AppendSummaryString("Activities in context 1") example73Type.AppendItemsObject(offer) example73Type.AppendItemsObject(like) } const example74 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's blog posts", "type": "Collection", "totalItems": 3, "current": "http://example.org/collection", "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example74Type = &Collection{} func init() { c := MustParseURL("http://example.org/collection") i1 := MustParseURL("http://example.org/posts/1") i2 := MustParseURL("http://example.org/posts/2") i3 := MustParseURL("http://example.org/posts/3") example74Type.AppendType("Collection") example74Type.SetTotalItems(3) example74Type.AppendSummaryString("Sally's blog posts") example74Type.SetCurrentIRI(c) example74Type.AppendItemsIRI(i1) example74Type.AppendItemsIRI(i2) example74Type.AppendItemsIRI(i3) } const example75 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's blog posts", "type": "Collection", "totalItems": 3, "current": { "type": "Link", "summary": "Most Recent Items", "href": "http://example.org/collection" }, "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example75Type = &Collection{} func init() { i1 := MustParseURL("http://example.org/posts/1") i2 := MustParseURL("http://example.org/posts/2") i3 := MustParseURL("http://example.org/posts/3") href := MustParseURL("http://example.org/collection") link := &Link{} link.AppendType("Link") link.AppendSummaryString("Most Recent Items") link.SetHref(href) example75Type.AppendType("Collection") example75Type.SetTotalItems(3) example75Type.AppendSummaryString("Sally's blog posts") example75Type.SetCurrentLink(link) example75Type.AppendItemsIRI(i1) example75Type.AppendItemsIRI(i2) example75Type.AppendItemsIRI(i3) } const example76 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's blog posts", "type": "Collection", "totalItems": 3, "first": "http://example.org/collection?page=0" }` var example76Type = &Collection{} func init() { f := MustParseURL("http://example.org/collection?page=0") example76Type.AppendType("Collection") example76Type.SetTotalItems(3) example76Type.AppendSummaryString("Sally's blog posts") example76Type.SetFirstIRI(f) } const example77 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's blog posts", "type": "Collection", "totalItems": 3, "first": { "type": "Link", "summary": "First Page", "href": "http://example.org/collection?page=0" } }` var example77Type = &Collection{} func init() { href := MustParseURL("http://example.org/collection?page=0") link := &Link{} link.AppendType("Link") link.AppendSummaryString("First Page") link.SetHref(href) example77Type.AppendType("Collection") example77Type.SetTotalItems(3) example77Type.AppendSummaryString("Sally's blog posts") example77Type.SetFirstLink(link) } const example78 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "This is all there is.", "generator": { "type": "Application", "name": "Exampletron 3000" } }` var example78Type = &Note{} func init() { app := &Application{} app.AppendType("Application") app.AppendNameString("Exampletron 3000") example78Type.AppendType("Note") example78Type.AppendSummaryString("A simple note") example78Type.AppendContentString("This is all there is.") example78Type.AppendGeneratorObject(app) } const example79 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "This is all there is.", "icon": { "type": "Image", "name": "Note icon", "url": "http://example.org/note.png", "width": 16, "height": 16 } }` var example79Type = &Note{} func init() { u := MustParseURL("http://example.org/note.png") image := &Image{} image.AppendType("Image") image.AppendNameString("Note icon") image.AppendUrlAnyURI(u) image.SetWidth(16) image.SetHeight(16) example79Type.AppendType("Note") example79Type.AppendSummaryString("A simple note") example79Type.AppendContentString("This is all there is.") example79Type.AppendIconImage(image) } const example80 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "A simple note", "icon": [ { "type": "Image", "summary": "Note (16x16)", "url": "http://example.org/note1.png", "width": 16, "height": 16 }, { "type": "Image", "summary": "Note (32x32)", "url": "http://example.org/note2.png", "width": 32, "height": 32 } ] }` var example80Type = &Note{} func init() { u1 := MustParseURL("http://example.org/note1.png") u2 := MustParseURL("http://example.org/note2.png") image1 := &Image{} image1.AppendType("Image") image1.AppendSummaryString("Note (16x16)") image1.AppendUrlAnyURI(u1) image1.SetWidth(16) image1.SetHeight(16) image2 := &Image{} image2.AppendType("Image") image2.AppendSummaryString("Note (32x32)") image2.AppendUrlAnyURI(u2) image2.SetWidth(32) image2.SetHeight(32) example80Type.AppendType("Note") example80Type.AppendSummaryString("A simple note") example80Type.AppendContentString("A simple note") example80Type.AppendIconImage(image1) example80Type.AppendIconImage(image2) } const example81 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A simple note", "type": "Note", "content": "This is all there is.", "image": { "type": "Image", "name": "A Cat", "url": "http://example.org/cat.png" } }` var example81Type = &Note{} func init() { u := MustParseURL("http://example.org/cat.png") image := &Image{} image.AppendType("Image") image.AppendNameString("A Cat") image.AppendUrlAnyURI(u) example81Type.AppendType("Note") example81Type.AppendNameString("A simple note") example81Type.AppendContentString("This is all there is.") example81Type.AppendImageImage(image) } const example82 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A simple note", "type": "Note", "content": "This is all there is.", "image": [ { "type": "Image", "name": "Cat 1", "url": "http://example.org/cat1.png" }, { "type": "Image", "name": "Cat 2", "url": "http://example.org/cat2.png" } ] }` var example82Type = &Note{} func init() { u1 := MustParseURL("http://example.org/cat1.png") u2 := MustParseURL("http://example.org/cat2.png") image1 := &Image{} image1.AppendType("Image") image1.AppendNameString("Cat 1") image1.AppendUrlAnyURI(u1) image2 := &Image{} image2.AppendType("Image") image2.AppendNameString("Cat 2") image2.AppendUrlAnyURI(u2) example82Type.AppendType("Note") example82Type.AppendNameString("A simple note") example82Type.AppendContentString("This is all there is.") example82Type.AppendImageImage(image1) example82Type.AppendImageImage(image2) } const example83 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "This is all there is.", "inReplyTo": { "summary": "Previous note", "type": "Note", "content": "What else is there?" } }` var example83Type = &Note{} func init() { note := &Note{} note.AppendType("Note") note.AppendSummaryString("Previous note") note.AppendContentString("What else is there?") example83Type.AppendType("Note") example83Type.AppendSummaryString("A simple note") example83Type.AppendContentString("This is all there is.") example83Type.AppendInReplyToObject(note) } const example84 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "This is all there is.", "inReplyTo": "http://example.org/posts/1" }` var example84Type = &Note{} func init() { u := MustParseURL("http://example.org/posts/1") example84Type.AppendType("Note") example84Type.AppendSummaryString("A simple note") example84Type.AppendContentString("This is all there is.") example84Type.AppendInReplyToIRI(u) } const example85 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally listened to a piece of music on the Acme Music Service", "type": "Listen", "actor": { "type": "Person", "name": "Sally" }, "object": "http://example.org/foo.mp3", "instrument": { "type": "Service", "name": "Acme Music Service" } }` var example85Type = &Listen{} func init() { u := MustParseURL("http://example.org/foo.mp3") actor := &Person{} actor.AppendType("Person") actor.AppendNameString("Sally") service := &Service{} service.AppendType("Service") service.AppendNameString("Acme Music Service") example85Type.AppendType("Listen") example85Type.AppendSummaryString("Sally listened to a piece of music on the Acme Music Service") example85Type.AppendActorObject(actor) example85Type.AppendObjectIRI(u) example85Type.AppendInstrumentObject(service) } const example86 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A collection", "type": "Collection", "totalItems": 3, "last": "http://example.org/collection?page=1" }` var example86Type = &Collection{} func init() { u := MustParseURL("http://example.org/collection?page=1") example86Type.AppendType("Collection") example86Type.SetTotalItems(3) example86Type.AppendSummaryString("A collection") example86Type.SetLastIRI(u) } const example87 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A collection", "type": "Collection", "totalItems": 5, "last": { "type": "Link", "summary": "Last Page", "href": "http://example.org/collection?page=1" } }` var example87Type = &Collection{} func init() { u := MustParseURL("http://example.org/collection?page=1") link := &Link{} link.AppendType("Link") link.AppendSummaryString("Last Page") link.SetHref(u) example87Type.AppendType("Collection") example87Type.AppendSummaryString("A collection") example87Type.SetTotalItems(5) example87Type.SetLastLink(link) } const example88 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Person", "name": "Sally", "location": { "name": "Over the Arabian Sea, east of Socotra Island Nature Sanctuary", "type": "Place", "longitude": 12.34, "latitude": 56.78, "altitude": 90, "units": "m" } }` var example88Type = &Person{} func init() { place := &Place{} place.AppendType("Place") place.AppendNameString("Over the Arabian Sea, east of Socotra Island Nature Sanctuary") place.SetLongitude(12.34) place.SetLatitude(56.78) place.SetAltitude(90) place.SetUnitsUnitsValue("m") example88Type.AppendType("Person") example88Type.AppendNameString("Sally") example88Type.AppendLocationObject(place) } const example89 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's notes", "type": "Collection", "totalItems": 2, "items": [ { "type": "Note", "name": "Reminder for Going-Away Party" }, { "type": "Note", "name": "Meeting 2016-11-17" } ] }` var example89Type = &Collection{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Reminder for Going-Away Party") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Meeting 2016-11-17") example89Type.AppendType("Collection") example89Type.AppendSummaryString("Sally's notes") example89Type.SetTotalItems(2) example89Type.AppendItemsObject(note1) example89Type.AppendItemsObject(note2) } const example90 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's notes", "type": "OrderedCollection", "totalItems": 2, "orderedItems": [ { "type": "Note", "name": "Meeting 2016-11-17" }, { "type": "Note", "name": "Reminder for Going-Away Party" } ] }` var example90Type = &OrderedCollection{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Meeting 2016-11-17") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Reminder for Going-Away Party") example90Type.AppendType("OrderedCollection") example90Type.AppendSummaryString("Sally's notes") example90Type.SetTotalItems(2) example90Type.AppendOrderedItemsObject(note1) example90Type.AppendOrderedItemsObject(note2) } const example91 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Question", "name": "What is the answer?", "oneOf": [ { "type": "Note", "name": "Option A" }, { "type": "Note", "name": "Option B" } ] }` var example91Type = &Question{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Option A") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Option B") example91Type.AppendType("Question") example91Type.AppendNameString("What is the answer?") example91Type.AppendOneOfObject(note1) example91Type.AppendOneOfObject(note2) } const example92 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Question", "name": "What is the answer?", "anyOf": [ { "type": "Note", "name": "Option A" }, { "type": "Note", "name": "Option B" } ] }` var example92Type = &Question{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Option A") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Option B") example92Type.AppendType("Question") example92Type.AppendNameString("What is the answer?") example92Type.AppendAnyOfObject(note1) example92Type.AppendAnyOfObject(note2) } const example93 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Question", "name": "What is the answer?", "closed": "2016-05-10T00:00:00Z" }` var example93Type = &Question{} func init() { t, err := time.Parse(time.RFC3339, "2016-05-10T00:00:00Z") if err != nil { panic(err) } example93Type.AppendType("Question") example93Type.AppendNameString("What is the answer?") example93Type.AppendClosedDateTime(t) } const example94 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally moved a post from List A to List B", "type": "Move", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": { "type": "Collection", "name": "List B" }, "origin": { "type": "Collection", "name": "List A" } }` var example94Type = &Move{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") target := &Collection{} target.AppendType("Collection") target.AppendNameString("List B") origin := &Collection{} origin.AppendType("Collection") origin.AppendNameString("List A") example94Type.AppendType("Move") example94Type.AppendSummaryString("Sally moved a post from List A to List B") example94Type.AppendActorIRI(a) example94Type.AppendObjectIRI(o) example94Type.AppendTargetObject(target) example94Type.AppendOriginObject(origin) } const example95 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 2 of Sally's blog posts", "type": "CollectionPage", "next": "http://example.org/collection?page=2", "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example95Type = &CollectionPage{} func init() { i := MustParseURL("http://example.org/collection?page=2") u1 := MustParseURL("http://example.org/posts/1") u2 := MustParseURL("http://example.org/posts/2") u3 := MustParseURL("http://example.org/posts/3") example95Type.AppendType("CollectionPage") example95Type.AppendSummaryString("Page 2 of Sally's blog posts") example95Type.SetNextIRI(i) example95Type.AppendItemsIRI(u1) example95Type.AppendItemsIRI(u2) example95Type.AppendItemsIRI(u3) } const example96 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 2 of Sally's blog posts", "type": "CollectionPage", "next": { "type": "Link", "name": "Next Page", "href": "http://example.org/collection?page=2" }, "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example96Type = &CollectionPage{} func init() { href := MustParseURL("http://example.org/collection?page=2") u1 := MustParseURL("http://example.org/posts/1") u2 := MustParseURL("http://example.org/posts/2") u3 := MustParseURL("http://example.org/posts/3") link := &Link{} link.AppendType("Link") link.AppendNameString("Next Page") link.SetHref(href) example96Type.AppendType("CollectionPage") example96Type.AppendSummaryString("Page 2 of Sally's blog posts") example96Type.SetNextLink(link) example96Type.AppendItemsIRI(u1) example96Type.AppendItemsIRI(u2) example96Type.AppendItemsIRI(u3) } const example97 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally liked a post", "type": "Like", "actor": "http://sally.example.org", "object": "http://example.org/posts/1" }` var example97Type = &Like{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") example97Type.AppendType("Like") example97Type.AppendSummaryString("Sally liked a post") example97Type.AppendActorIRI(a) example97Type.AppendObjectIRI(o) } const example98 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Like", "actor": "http://sally.example.org", "object": { "type": "Note", "content": "A simple note" } }` var example98Type = &Like{} func init() { a := MustParseURL("http://sally.example.org") note := &Note{} note.AppendType("Note") note.AppendContentString("A simple note") example98Type.AppendType("Like") example98Type.AppendActorIRI(a) example98Type.AppendObject(note) } const example99 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally liked a note", "type": "Like", "actor": "http://sally.example.org", "object": [ "http://example.org/posts/1", { "type": "Note", "summary": "A simple note", "content": "That is a tree." } ] }` var example99Type = &Like{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") note := &Note{} note.AppendType("Note") note.AppendSummaryString("A simple note") note.AppendContentString("That is a tree.") example99Type.AppendType("Like") example99Type.AppendSummaryString("Sally liked a note") example99Type.AppendActorIRI(a) example99Type.AppendObjectIRI(o) example99Type.AppendObject(note) } const example100 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's blog posts", "type": "CollectionPage", "prev": "http://example.org/collection?page=1", "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example100Type = &CollectionPage{} func init() { p := MustParseURL("http://example.org/collection?page=1") u1 := MustParseURL("http://example.org/posts/1") u2 := MustParseURL("http://example.org/posts/2") u3 := MustParseURL("http://example.org/posts/3") example100Type.AppendType("CollectionPage") example100Type.AppendSummaryString("Page 1 of Sally's blog posts") example100Type.SetPrevIRI(p) example100Type.AppendItemsIRI(u1) example100Type.AppendItemsIRI(u2) example100Type.AppendItemsIRI(u3) } const example101 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's blog posts", "type": "CollectionPage", "prev": { "type": "Link", "name": "Previous Page", "href": "http://example.org/collection?page=1" }, "items": [ "http://example.org/posts/1", "http://example.org/posts/2", "http://example.org/posts/3" ] }` var example101Type = &CollectionPage{} func init() { p := MustParseURL("http://example.org/collection?page=1") u1 := MustParseURL("http://example.org/posts/1") u2 := MustParseURL("http://example.org/posts/2") u3 := MustParseURL("http://example.org/posts/3") link := &Link{} link.AppendType("Link") link.AppendNameString("Previous Page") link.SetHref(p) example101Type.AppendType("CollectionPage") example101Type.AppendSummaryString("Page 1 of Sally's blog posts") example101Type.SetPrevLink(link) example101Type.AppendItemsIRI(u1) example101Type.AppendItemsIRI(u2) example101Type.AppendItemsIRI(u3) } // NOTE: The 'url' field has added the 'type' property const example102 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Video", "name": "Cool New Movie", "duration": "PT2H30M", "preview": { "type": "Video", "name": "Trailer", "duration": "PT1M", "url": { "type": "Link", "href": "http://example.org/trailer.mkv", "mediaType": "video/mkv" } } }` var example102Type = &Video{} func init() { u := MustParseURL("http://example.org/trailer.mkv") link := &Link{} link.AppendType("Link") link.SetMediaType("video/mkv") link.SetHref(u) video := &Video{} video.AppendType("Video") video.AppendNameString("Trailer") video.SetDuration(time.Minute) video.AppendUrlLink(link) example102Type.AppendType("Video") example102Type.AppendNameString("Cool New Movie") example102Type.SetDuration(time.Hour*2 + time.Minute*30) example102Type.AppendPreviewObject(video) } const example103 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally checked that her flight was on time", "type": ["Activity", "http://www.verbs.example/Check"], "actor": "http://sally.example.org", "object": "http://example.org/flights/1", "result": { "type": "http://www.types.example/flightstatus", "name": "On Time" } }` var example103Type = &Activity{} func init() { o := MustParseURL("http://example.org/flights/1") a := MustParseURL("http://sally.example.org") status := make(map[string]interface{}) status["type"] = "http://www.types.example/flightstatus" status["name"] = "On Time" example103Type.AppendType("Activity") example103Type.AppendType("http://www.verbs.example/Check") example103Type.AppendSummaryString("Sally checked that her flight was on time") example103Type.AppendActorIRI(a) example103Type.AppendObjectIRI(o) example103Type.AddUnknown("result", status) } // NOTE: Changed to not be an array value for "items" to keep in line with other examples in spec! const example104 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "id": "http://www.test.example/notes/1", "content": "I am fine.", "replies": { "type": "Collection", "totalItems": 1, "items": { "summary": "A response to the note", "type": "Note", "content": "I am glad to hear it.", "inReplyTo": "http://www.test.example/notes/1" } } }` var example104Type = &Note{} func init() { i := MustParseURL("http://www.test.example/notes/1") note := &Note{} note.AppendType("Note") note.AppendSummaryString("A response to the note") note.AppendContentString("I am glad to hear it.") note.AppendInReplyToIRI(i) replies := &Collection{} replies.AppendType("Collection") replies.SetTotalItems(1) replies.AppendItemsObject(note) example104Type.AppendType("Note") example104Type.AppendSummaryString("A simple note") example104Type.SetId(MustParseURL("http://www.test.example/notes/1")) example104Type.AppendContentString("I am fine.") example104Type.SetReplies(replies) } // NOTE: Changed to not be an array value for "tag" to keep in line with other examples in spec! const example105 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Image", "summary": "Picture of Sally", "url": "http://example.org/sally.jpg", "tag": { "type": "Person", "id": "http://sally.example.org", "name": "Sally" } }` var example105Type = &Image{} func init() { u := MustParseURL("http://example.org/sally.jpg") person := &Person{} person.AppendType("Person") person.SetId(MustParseURL("http://sally.example.org")) person.AppendNameString("Sally") example105Type.AppendType("Image") example105Type.AppendSummaryString("Picture of Sally") example105Type.AppendUrlAnyURI(u) example105Type.AppendTagObject(person) } const example106 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered the post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org" }` var example106Type = &Offer{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") t := MustParseURL("http://john.example.org") example106Type.AppendType("Offer") example106Type.AppendSummaryString("Sally offered the post to John") example106Type.AppendActorIRI(a) example106Type.AppendObjectIRI(o) example106Type.AppendTargetIRI(t) } const example107 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered the post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": { "type": "Person", "name": "John" } }` var example107Type = &Offer{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") person := &Person{} person.AppendType("Person") person.AppendNameString("John") example107Type.AppendType("Offer") example107Type.AppendSummaryString("Sally offered the post to John") example107Type.AppendActorIRI(a) example107Type.AppendObjectIRI(o) example107Type.AppendTargetObject(person) } // NOTE: Changed to not be an array value for "to" to keep in line with other examples in spec! const example108 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally offered the post to John", "type": "Offer", "actor": "http://sally.example.org", "object": "http://example.org/posts/1", "target": "http://john.example.org", "to": "http://joe.example.org" }` var example108Type = &Offer{} func init() { a := MustParseURL("http://sally.example.org") o := MustParseURL("http://example.org/posts/1") t := MustParseURL("http://john.example.org") z := MustParseURL("http://joe.example.org") example108Type.AppendType("Offer") example108Type.AppendSummaryString("Sally offered the post to John") example108Type.AppendActorIRI(a) example108Type.AppendObjectIRI(o) example108Type.AppendTargetIRI(t) example108Type.AppendToIRI(z) } const example109 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Document", "name": "4Q Sales Forecast", "url": "http://example.org/4q-sales-forecast.pdf" }` var example109Type = &Document{} func init() { u := MustParseURL("http://example.org/4q-sales-forecast.pdf") example109Type.AppendType("Document") example109Type.AppendNameString("4Q Sales Forecast") example109Type.AppendUrlAnyURI(u) } const example110 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Document", "name": "4Q Sales Forecast", "url": { "type": "Link", "href": "http://example.org/4q-sales-forecast.pdf" } }` var example110Type = &Document{} func init() { u := MustParseURL("http://example.org/4q-sales-forecast.pdf") link := &Link{} link.AppendType("Link") link.SetHref(u) example110Type.AppendType("Document") example110Type.AppendNameString("4Q Sales Forecast") example110Type.AppendUrlLink(link) } const example111 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Document", "name": "4Q Sales Forecast", "url": [ { "type": "Link", "href": "http://example.org/4q-sales-forecast.pdf", "mediaType": "application/pdf" }, { "type": "Link", "href": "http://example.org/4q-sales-forecast.html", "mediaType": "text/html" } ] }` var example111Type = &Document{} func init() { u1 := MustParseURL("http://example.org/4q-sales-forecast.pdf") u2 := MustParseURL("http://example.org/4q-sales-forecast.html") link1 := &Link{} link1.AppendType("Link") link1.SetHref(u1) link1.SetMediaType("application/pdf") link2 := &Link{} link2.AppendType("Link") link2.SetHref(u2) link2.SetMediaType("text/html") example111Type.AppendType("Document") example111Type.AppendNameString("4Q Sales Forecast") example111Type.AppendUrlLink(link1) example111Type.AppendUrlLink(link2) } const example112 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Liu Gu Lu Cun, Pingdu, Qingdao, Shandong, China", "type": "Place", "latitude": 36.75, "longitude": 119.7667, "accuracy": 94.5 }` var example112Type = &Place{} func init() { example112Type.AppendType("Place") example112Type.AppendNameString("Liu Gu Lu Cun, Pingdu, Qingdao, Shandong, China") example112Type.SetLatitude(36.75) example112Type.SetLongitude(119.7667) example112Type.SetAccuracy(94.5) } const example113 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "altitude": 15.0, "latitude": 36.75, "longitude": 119.7667, "units": "miles" }` var example113Type = &Place{} func init() { example113Type.AppendType("Place") example113Type.AppendNameString("Fresno Area") example113Type.SetAltitude(15.0) example113Type.SetLatitude(36.75) example113Type.SetLongitude(119.7667) example113Type.SetUnitsUnitsValue("miles") } const example114 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "A simple note" }` var example114Type = &Note{} func init() { example114Type.AppendType("Note") example114Type.AppendSummaryString("A simple note") example114Type.AppendContentString("A simple note") } const example115 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "contentMap": { "en": "A simple note", "es": "Una nota sencilla", "zh-Hans": "一段简单的笔记" } }` var example115Type = &Note{} func init() { example115Type.AppendType("Note") example115Type.AppendSummaryString("A simple note") example115Type.SetContentMap("en", "A simple note") example115Type.SetContentMap("es", "Una nota sencilla") example115Type.SetContentMap("zh-Hans", "一段简单的笔记") } const example116 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "mediaType": "text/markdown", "content": "## A simple note\nA simple markdown ` + "`note`" + `" }` var example116Type = &Note{} func init() { example116Type.AppendType("Note") example116Type.AppendSummaryString("A simple note") example116Type.SetMediaType("text/markdown") example116Type.AppendContentString("## A simple note\nA simple markdown `note`") } const example117 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Note", "name": "A simple note" }` var example117Type = &Note{} func init() { example117Type.AppendType("Note") example117Type.AppendNameString("A simple note") } const example118 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Note", "nameMap": { "en": "A simple note", "es": "Una nota sencilla", "zh-Hans": "一段简单的笔记" } }` var example118Type = &Note{} func init() { example118Type.AppendType("Note") example118Type.SetNameMap("en", "A simple note") example118Type.SetNameMap("es", "Una nota sencilla") example118Type.SetNameMap("zh-Hans", "一段简单的笔记") } const example119 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Video", "name": "Birds Flying", "url": "http://example.org/video.mkv", "duration": "PT2H" }` var example119Type = &Video{} func init() { u := MustParseURL("http://example.org/video.mkv") example119Type.AppendType("Video") example119Type.AppendNameString("Birds Flying") example119Type.AppendUrlAnyURI(u) example119Type.SetDuration(time.Hour * 2) } const example120 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/image.png", "height": 100, "width": 100 }` var example120Type = &Link{} func init() { u := MustParseURL("http://example.org/image.png") example120Type.AppendType("Link") example120Type.SetHref(u) example120Type.SetHeight(100) example120Type.SetWidth(100) } const example121 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/abc", "mediaType": "text/html", "name": "Previous" }` var example121Type = &Link{} func init() { u := MustParseURL("http://example.org/abc") example121Type.AppendType("Link") example121Type.SetHref(u) example121Type.SetMediaType("text/html") example121Type.AppendNameString("Previous") } const example122 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/abc", "hreflang": "en", "mediaType": "text/html", "name": "Previous" }` var example122Type = &Link{} func init() { u := MustParseURL("http://example.org/abc") example122Type.AppendType("Link") example122Type.SetHref(u) example122Type.SetMediaType("text/html") example122Type.AppendNameString("Previous") example122Type.SetHreflang("en") } const example123 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's notes", "type": "CollectionPage", "id": "http://example.org/collection?page=1", "partOf": "http://example.org/collection", "items": [ { "type": "Note", "name": "Pizza Toppings to Try" }, { "type": "Note", "name": "Thought about California" } ] }` var example123Type = &CollectionPage{} func init() { u := MustParseURL("http://example.org/collection") note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Pizza Toppings to Try") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Thought about California") example123Type.AppendType("CollectionPage") example123Type.AppendSummaryString("Page 1 of Sally's notes") example123Type.SetId(MustParseURL("http://example.org/collection?page=1")) example123Type.SetPartOfIRI(u) example123Type.AppendItemsObject(note1) example123Type.AppendItemsObject(note2) } const example124 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "latitude": 36.75, "longitude": 119.7667, "radius": 15, "units": "miles" }` var example124Type = &Place{} func init() { example124Type.AppendType("Place") example124Type.AppendNameString("Fresno Area") example124Type.SetLatitude(36.75) example124Type.SetLongitude(119.7667) example124Type.SetRadius(15) example124Type.SetUnitsUnitsValue("miles") } const example125 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "latitude": 36.75, "longitude": 119.7667, "radius": 15, "units": "miles" }` var example125Type = &Place{} func init() { example125Type.AppendType("Place") example125Type.AppendNameString("Fresno Area") example125Type.SetLatitude(36.75) example125Type.SetLongitude(119.7667) example125Type.SetRadius(15) example125Type.SetUnitsUnitsValue("miles") } const example126 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/abc", "hreflang": "en", "mediaType": "text/html", "name": "Next" }` var example126Type = &Link{} func init() { u := MustParseURL("http://example.org/abc") example126Type.AppendType("Link") example126Type.SetHref(u) example126Type.SetHreflang("en") example126Type.SetMediaType("text/html") example126Type.AppendNameString("Next") } const example127 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Event", "name": "Going-Away Party for Jim", "startTime": "2014-12-31T23:00:00-08:00", "endTime": "2015-01-01T06:00:00-08:00" }` var example127Type = &Event{} func init() { t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00") if err != nil { panic(err) } t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00") if err != nil { panic(err) } example127Type.AppendType("Event") example127Type.AppendNameString("Going-Away Party for Jim") example127Type.SetStartTime(t1) example127Type.SetEndTime(t2) } const example128 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "A simple note", "type": "Note", "content": "Fish swim.", "published": "2014-12-12T12:12:12Z" }` var example128Type = &Note{} func init() { t, err := time.Parse(time.RFC3339, "2014-12-12T12:12:12Z") if err != nil { panic(err) } example128Type.AppendType("Note") example128Type.AppendSummaryString("A simple note") example128Type.AppendContentString("Fish swim.") example128Type.SetPublished(t) } const example129 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Event", "name": "Going-Away Party for Jim", "startTime": "2014-12-31T23:00:00-08:00", "endTime": "2015-01-01T06:00:00-08:00" }` var example129Type = &Event{} func init() { t1, err := time.Parse(time.RFC3339, "2014-12-31T23:00:00-08:00") if err != nil { panic(err) } t2, err := time.Parse(time.RFC3339, "2015-01-01T06:00:00-08:00") if err != nil { panic(err) } example129Type.AppendType("Event") example129Type.AppendNameString("Going-Away Party for Jim") example129Type.SetStartTime(t1) example129Type.SetEndTime(t2) } const example130 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "latitude": 36.75, "longitude": 119.7667, "radius": 15, "units": "miles" }` var example130Type = &Place{} func init() { example130Type.AppendType("Place") example130Type.AppendNameString("Fresno Area") example130Type.SetLatitude(36.75) example130Type.SetLongitude(119.7667) example130Type.SetRadius(15) example130Type.SetUnitsUnitsValue("miles") } const example131 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/abc", "hreflang": "en", "mediaType": "text/html", "name": "Preview", "rel": ["canonical", "preview"] }` var example131Type = &Link{} func init() { u := MustParseURL("http://example.org/abc") example131Type.AppendType("Link") example131Type.SetHref(u) example131Type.SetHreflang("en") example131Type.SetMediaType("text/html") example131Type.AppendNameString("Preview") example131Type.AppendRel("canonical") example131Type.AppendRel("preview") } const example132 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Page 1 of Sally's notes", "type": "OrderedCollectionPage", "startIndex": 0, "orderedItems": [ { "type": "Note", "name": "Density of Water" }, { "type": "Note", "name": "Air Mattress Idea" } ] }` var example132Type = &OrderedCollectionPage{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Density of Water") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Air Mattress Idea") example132Type.AppendType("OrderedCollectionPage") example132Type.AppendSummaryString("Page 1 of Sally's notes") example132Type.SetStartIndex(0) example132Type.AppendOrderedItemsObject(note1) example132Type.AppendOrderedItemsObject(note2) } const example133 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Cane Sugar Processing", "type": "Note", "summary": "A simple note" }` var example133Type = &Note{} func init() { example133Type.AppendType("Note") example133Type.AppendNameString("Cane Sugar Processing") example133Type.AppendSummaryString("A simple note") } const example134 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Cane Sugar Processing", "type": "Note", "summaryMap": { "en": "A simple note", "es": "Una nota sencilla", "zh-Hans": "一段简单的笔记" } }` var example134Type = &Note{} func init() { example134Type.AppendType("Note") example134Type.AppendNameString("Cane Sugar Processing") example134Type.SetSummaryMap("en", "A simple note") example134Type.SetSummaryMap("es", "Una nota sencilla") example134Type.SetSummaryMap("zh-Hans", "一段简单的笔记") } const example135 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's notes", "type": "Collection", "totalItems": 2, "items": [ { "type": "Note", "name": "Which Staircase Should I Use" }, { "type": "Note", "name": "Something to Remember" } ] }` var example135Type = &Collection{} func init() { note1 := &Note{} note1.AppendType("Note") note1.AppendNameString("Which Staircase Should I Use") note2 := &Note{} note2.AppendType("Note") note2.AppendNameString("Something to Remember") example135Type.AppendType("Collection") example135Type.AppendSummaryString("Sally's notes") example135Type.SetTotalItems(2) example135Type.AppendItemsObject(note1) example135Type.AppendItemsObject(note2) } const example136 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "Fresno Area", "latitude": 36.75, "longitude": 119.7667, "radius": 15, "units": "miles" }` var example136Type = &Place{} func init() { example136Type.AppendType("Place") example136Type.AppendNameString("Fresno Area") example136Type.SetLatitude(36.75) example136Type.SetLongitude(119.7667) example136Type.SetRadius(15) example136Type.SetUnitsUnitsValue("miles") } const example137 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "Cranberry Sauce Idea", "type": "Note", "content": "Mush it up so it does not have the same shape as the can.", "updated": "2014-12-12T12:12:12Z" }` var example137Type = &Note{} func init() { t, err := time.Parse(time.RFC3339, "2014-12-12T12:12:12Z") if err != nil { panic(err) } example137Type.AppendType("Note") example137Type.AppendNameString("Cranberry Sauce Idea") example137Type.AppendContentString("Mush it up so it does not have the same shape as the can.") example137Type.SetUpdated(t) } const example138 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Link", "href": "http://example.org/image.png", "height": 100, "width": 100 }` var example138Type = &Link{} func init() { u := MustParseURL("http://example.org/image.png") example138Type.AppendType("Link") example138Type.SetHref(u) example138Type.SetHeight(100) example138Type.SetWidth(100) } const example139 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally is an acquaintance of John's", "type": "Relationship", "subject": { "type": "Person", "name": "Sally" }, "relationship": "http://purl.org/vocab/relationship/acquaintanceOf", "object": { "type": "Person", "name": "John" } }` var example139Type = &Relationship{} func init() { u := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf") subject := &Person{} subject.AppendType("Person") subject.AppendNameString("Sally") object := &Person{} object.AppendType("Person") object.AppendNameString("John") example139Type.AppendType("Relationship") example139Type.AppendSummaryString("Sally is an acquaintance of John's") example139Type.SetSubjectObject(subject) example139Type.AppendObject(object) example139Type.SetRelationshipIRI(u) } const example140 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally is an acquaintance of John's", "type": "Relationship", "subject": { "type": "Person", "name": "Sally" }, "relationship": "http://purl.org/vocab/relationship/acquaintanceOf", "object": { "type": "Person", "name": "John" } }` var example140Type = &Relationship{} func init() { u := MustParseURL("http://purl.org/vocab/relationship/acquaintanceOf") subject := &Person{} subject.AppendType("Person") subject.AppendNameString("Sally") object := &Person{} object.AppendType("Person") object.AppendNameString("John") example140Type.AppendType("Relationship") example140Type.AppendSummaryString("Sally is an acquaintance of John's") example140Type.SetSubjectObject(subject) example140Type.AppendObject(object) example140Type.SetRelationshipIRI(u) } const example141 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's profile", "type": "Profile", "describes": { "type": "Person", "name": "Sally" }, "url": "http://sally.example.org" }` var example141Type = &Profile{} func init() { u := MustParseURL("http://sally.example.org") person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") example141Type.AppendType("Profile") example141Type.AppendSummaryString("Sally's profile") example141Type.AppendUrlAnyURI(u) example141Type.SetDescribes(person) } const example142 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "This image has been deleted", "type": "Tombstone", "formerType": "Image", "url": "http://example.org/image/2" }` var example142Type = &Tombstone{} func init() { u := MustParseURL("http://example.org/image/2") example142Type.AppendType("Tombstone") example142Type.AppendSummaryString("This image has been deleted") example142Type.AppendFormerTypeString("Image") example142Type.AppendUrlAnyURI(u) } const example143 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "This image has been deleted", "type": "Tombstone", "deleted": "2016-05-03T00:00:00Z" }` var example143Type = &Tombstone{} func init() { t, err := time.Parse(time.RFC3339, "2016-05-03T00:00:00Z") if err != nil { panic(err) } example143Type.AppendType("Tombstone") example143Type.AppendSummaryString("This image has been deleted") example143Type.SetDeleted(t) } const example144 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Activities in Project XYZ", "type": "Collection", "items": [ { "summary": "Sally created a note", "type": "Create", "id": "http://activities.example.com/1", "actor": "http://sally.example.org", "object": { "summary": "A note", "type": "Note", "id": "http://notes.example.com/1", "content": "A note" }, "context": { "type": "http://example.org/Project", "name": "Project XYZ" }, "audience": { "type": "Group", "name": "Project XYZ Working Group" }, "to": "http://john.example.org" }, { "summary": "John liked Sally's note", "type": "Like", "id": "http://activities.example.com/1", "actor": "http://john.example.org", "object": "http://notes.example.com/1", "context": { "type": "http://example.org/Project", "name": "Project XYZ" }, "audience": { "type": "Group", "name": "Project XYZ Working Group" }, "to": "http://sally.example.org" } ] }` var example144Type = &Collection{} func init() { sally := MustParseURL("http://sally.example.org") john := MustParseURL("http://john.example.org") o := MustParseURL("http://notes.example.com/1") context := make(map[string]interface{}) context["type"] = "http://example.org/Project" context["name"] = "Project XYZ" audience := &Group{} audience.AppendType("Group") audience.AppendNameString("Project XYZ Working Group") note := &Note{} note.AppendType("Note") note.AppendSummaryString("A note") note.SetId(MustParseURL("http://notes.example.com/1")) note.AppendContentString("A note") create := &Create{} create.AppendType("Create") create.AppendSummaryString("Sally created a note") create.SetId(MustParseURL("http://activities.example.com/1")) create.AppendActorIRI(sally) create.AppendObject(note) create.SetUnknownContext(context) create.AppendAudienceObject(audience) create.AppendToIRI(john) like := &Like{} like.AppendType("Like") like.AppendSummaryString("John liked Sally's note") like.SetId(MustParseURL("http://activities.example.com/1")) like.AppendActorIRI(john) like.AppendObjectIRI(o) like.SetUnknownContext(context) like.AppendAudienceObject(audience) like.AppendToIRI(sally) example144Type.AppendType("Collection") example144Type.AppendSummaryString("Activities in Project XYZ") example144Type.AppendItemsObject(create) example144Type.AppendItemsObject(like) } const example145 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally's friends list", "type": "Collection", "items": [ { "summary": "Sally is influenced by Joe", "type": "Relationship", "subject": { "type": "Person", "name": "Sally" }, "relationship": "http://purl.org/vocab/relationship/influencedBy", "object": { "type": "Person", "name": "Joe" } }, { "summary": "Sally is a friend of Jane", "type": "Relationship", "subject": { "type": "Person", "name": "Sally" }, "relationship": "http://purl.org/vocab/relationship/friendOf", "object": { "type": "Person", "name": "Jane" } } ] }` var example145Type = &Collection{} func init() { friend := MustParseURL("http://purl.org/vocab/relationship/friendOf") influenced := MustParseURL("http://purl.org/vocab/relationship/influencedBy") sally := &Person{} sally.AppendType("Person") sally.AppendNameString("Sally") jane := &Person{} jane.AppendType("Person") jane.AppendNameString("Jane") joe := &Person{} joe.AppendType("Person") joe.AppendNameString("Joe") joeRel := &Relationship{} joeRel.AppendType("Relationship") joeRel.AppendSummaryString("Sally is influenced by Joe") joeRel.SetSubjectObject(sally) joeRel.AppendObject(joe) joeRel.SetRelationshipIRI(influenced) janeRel := &Relationship{} janeRel.AppendType("Relationship") janeRel.AppendSummaryString("Sally is a friend of Jane") janeRel.SetSubjectObject(sally) janeRel.AppendObject(jane) janeRel.SetRelationshipIRI(friend) example145Type.AppendType("Collection") example145Type.AppendSummaryString("Sally's friends list") example145Type.AppendItemsObject(joeRel) example145Type.AppendItemsObject(janeRel) } // NOTE: Added `Z` to `startTime` to make align to spec! const example146 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally became a friend of Matt", "type": "Create", "actor": "http://sally.example.org", "object": { "type": "Relationship", "subject": "http://sally.example.org", "relationship": "http://purl.org/vocab/relationship/friendOf", "object": "http://matt.example.org", "startTime": "2015-04-21T12:34:56Z" } }` var example146Type = &Create{} func init() { friend := MustParseURL("http://purl.org/vocab/relationship/friendOf") m := MustParseURL("http://matt.example.org") s := MustParseURL("http://sally.example.org") t, err := time.Parse(time.RFC3339, "2015-04-21T12:34:56Z") if err != nil { panic(err) } relationship := &Relationship{} relationship.AppendType("Relationship") relationship.SetSubjectIRI(s) relationship.SetRelationshipIRI(friend) relationship.AppendObjectIRI(m) relationship.SetStartTime(t) example146Type.AppendType("Create") example146Type.AppendSummaryString("Sally became a friend of Matt") example146Type.AppendActorIRI(s) example146Type.AppendObject(relationship) } const example147 = `{ "@context": "https://www.w3.org/ns/activitystreams", "id": "http://example.org/connection-requests/123", "summary": "Sally requested to be a friend of John", "type": "Offer", "actor": "acct:sally@example.org", "object": { "summary": "Sally and John's friendship", "id": "http://example.org/connections/123", "type": "Relationship", "subject": "acct:sally@example.org", "relationship": "http://purl.org/vocab/relationship/friendOf", "object": "acct:john@example.org" }, "target": "acct:john@example.org" }` var example147Type = &Offer{} func init() { friend := MustParseURL("http://purl.org/vocab/relationship/friendOf") s := MustParseURL("acct:sally@example.org") t := MustParseURL("acct:john@example.org") rel := &Relationship{} rel.AppendType("Relationship") rel.AppendSummaryString("Sally and John's friendship") rel.SetId(MustParseURL("http://example.org/connections/123")) rel.SetSubjectIRI(s) rel.AppendObjectIRI(t) rel.SetRelationshipIRI(friend) example147Type.AppendType("Offer") example147Type.AppendSummaryString("Sally requested to be a friend of John") example147Type.SetId(MustParseURL("http://example.org/connection-requests/123")) example147Type.AppendActorIRI(s) example147Type.AppendObject(rel) example147Type.AppendTargetIRI(t) } const example148 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally and John's relationship history", "type": "Collection", "items": [ { "summary": "John accepted Sally's friend request", "id": "http://example.org/activities/122", "type": "Accept", "actor": "acct:john@example.org", "object": "http://example.org/connection-requests/123", "inReplyTo": "http://example.org/connection-requests/123", "context": "http://example.org/connections/123", "result": [ "http://example.org/activities/123", "http://example.org/activities/124", "http://example.org/activities/125", "http://example.org/activities/126" ] }, { "summary": "John followed Sally", "id": "http://example.org/activities/123", "type": "Follow", "actor": "acct:john@example.org", "object": "acct:sally@example.org", "context": "http://example.org/connections/123" }, { "summary": "Sally followed John", "id": "http://example.org/activities/124", "type": "Follow", "actor": "acct:sally@example.org", "object": "acct:john@example.org", "context": "http://example.org/connections/123" }, { "summary": "John added Sally to his friends list", "id": "http://example.org/activities/125", "type": "Add", "actor": "acct:john@example.org", "object": "http://example.org/connections/123", "target": { "type": "Collection", "summary": "John's Connections" }, "context": "http://example.org/connections/123" }, { "summary": "Sally added John to her friends list", "id": "http://example.org/activities/126", "type": "Add", "actor": "acct:sally@example.org", "object": "http://example.org/connections/123", "target": { "type": "Collection", "summary": "Sally's Connections" }, "context": "http://example.org/connections/123" } ] }` var example148Type = &Collection{} func init() { john := MustParseURL("acct:john@example.org") sally := MustParseURL("acct:sally@example.org") req123 := MustParseURL("http://example.org/connection-requests/123") conn123 := MustParseURL("http://example.org/connections/123") a123 := MustParseURL("http://example.org/activities/123") a124 := MustParseURL("http://example.org/activities/124") a125 := MustParseURL("http://example.org/activities/125") a126 := MustParseURL("http://example.org/activities/126") jc := &Collection{} jc.AppendType("Collection") jc.AppendSummaryString("John's Connections") sc := &Collection{} sc.AppendType("Collection") sc.AppendSummaryString("Sally's Connections") o1 := &Accept{} o1.AppendType("Accept") o1.SetId(MustParseURL("http://example.org/activities/122")) o1.AppendSummaryString("John accepted Sally's friend request") o1.AppendObjectIRI(req123) o1.AppendInReplyToIRI(req123) o1.AppendContextIRI(conn123) o1.AppendResultIRI(a123) o1.AppendResultIRI(a124) o1.AppendResultIRI(a125) o1.AppendResultIRI(a126) o1.AppendActorIRI(john) o2 := &Follow{} o2.AppendType("Follow") o2.SetId(MustParseURL("http://example.org/activities/123")) o2.AppendActorIRI(john) o2.AppendObjectIRI(sally) o2.AppendContextIRI(conn123) o2.AppendSummaryString("John followed Sally") o3 := &Follow{} o3.AppendType("Follow") o3.SetId(MustParseURL("http://example.org/activities/124")) o3.AppendActorIRI(sally) o3.AppendObjectIRI(john) o3.AppendContextIRI(conn123) o3.AppendSummaryString("Sally followed John") o4 := &Add{} o4.AppendType("Add") o4.SetId(MustParseURL("http://example.org/activities/125")) o4.AppendSummaryString("John added Sally to his friends list") o4.AppendActorIRI(john) o4.AppendObjectIRI(conn123) o4.AppendContextIRI(conn123) o4.AppendTargetObject(jc) o5 := &Add{} o5.AppendType("Add") o5.SetId(MustParseURL("http://example.org/activities/126")) o5.AppendSummaryString("Sally added John to her friends list") o5.AppendActorIRI(sally) o5.AppendObjectIRI(conn123) o5.AppendContextIRI(conn123) o5.AppendTargetObject(sc) example148Type.AppendType("Collection") example148Type.AppendSummaryString("Sally and John's relationship history") example148Type.AppendItemsObject(o1) example148Type.AppendItemsObject(o2) example148Type.AppendItemsObject(o3) example148Type.AppendItemsObject(o4) example148Type.AppendItemsObject(o5) } const example149 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "San Francisco, CA" }` var example149Type = &Place{} func init() { example149Type.AppendType("Place") example149Type.AppendNameString("San Francisco, CA") } // NOTE: Un-stringified the longitude and latitude values. const example150 = `{ "@context": "https://www.w3.org/ns/activitystreams", "type": "Place", "name": "San Francisco, CA", "longitude": 122.4167, "latitude": 37.7833 }` var example150Type = &Place{} func init() { example150Type.AppendType("Place") example150Type.AppendNameString("San Francisco, CA") example150Type.SetLongitude(122.4167) example150Type.SetLatitude(37.7833) } const example151 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A question about robots", "id": "http://help.example.org/question/1", "type": "Question", "content": "I'd like to build a robot to feed my cat. Should I use Arduino or Raspberry Pi?" }` var example151Type = &Question{} func init() { example151Type.AppendType("Question") example151Type.AppendNameString("A question about robots") example151Type.SetId(MustParseURL("http://help.example.org/question/1")) example151Type.AppendContentString("I'd like to build a robot to feed my cat. Should I use Arduino or Raspberry Pi?") } const example152 = `{ "@context": "https://www.w3.org/ns/activitystreams", "id": "http://polls.example.org/question/1", "name": "A question about robots", "type": "Question", "content": "I'd like to build a robot to feed my cat. Which platform is best?", "oneOf": [ {"name": "arduino"}, {"name": "raspberry pi"} ] }` var example152Type = &Question{} func init() { ard := make(map[string]interface{}) ard["name"] = "arduino" ras := make(map[string]interface{}) ras["name"] = "raspberry pi" oneOf := []interface{}{ard, ras} example152Type.AppendType("Question") example152Type.AppendNameString("A question about robots") example152Type.SetId(MustParseURL("http://polls.example.org/question/1")) example152Type.AppendContentString("I'd like to build a robot to feed my cat. Which platform is best?") example152Type.SetUnknownOneOf(oneOf) } const example153 = `{ "@context": "https://www.w3.org/ns/activitystreams", "attributedTo": "http://sally.example.org", "inReplyTo": "http://polls.example.org/question/1", "name": "arduino" }` var example153Type = &Unknown{} func init() { example153Type.SetField("attributedTo", "http://sally.example.org") example153Type.SetField("inReplyTo", "http://polls.example.org/question/1") example153Type.SetField("name", "arduino") } const example154 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A question about robots", "id": "http://polls.example.org/question/1", "type": "Question", "content": "I'd like to build a robot to feed my cat. Which platform is best?", "oneOf": [ {"name": "arduino"}, {"name": "raspberry pi"} ], "replies": { "type": "Collection", "totalItems": 3, "items": [ { "attributedTo": "http://sally.example.org", "inReplyTo": "http://polls.example.org/question/1", "name": "arduino" }, { "attributedTo": "http://joe.example.org", "inReplyTo": "http://polls.example.org/question/1", "name": "arduino" }, { "attributedTo": "http://john.example.org", "inReplyTo": "http://polls.example.org/question/1", "name": "raspberry pi" } ] }, "result": { "type": "Note", "content": "Users are favoriting "arduino" by a 33% margin." } }` var example154Type = &Question{} func init() { ard := make(map[string]interface{}) ard["name"] = "arduino" ras := make(map[string]interface{}) ras["name"] = "raspberry pi" oneOf := []interface{}{ard, ras} one := make(map[string]interface{}) one["attributedTo"] = "http://sally.example.org" one["inReplyTo"] = "http://polls.example.org/question/1" one["name"] = "arduino" two := make(map[string]interface{}) two["attributedTo"] = "http://joe.example.org" two["inReplyTo"] = "http://polls.example.org/question/1" two["name"] = "arduino" three := make(map[string]interface{}) three["attributedTo"] = "http://john.example.org" three["inReplyTo"] = "http://polls.example.org/question/1" three["name"] = "raspberry pi" items := []interface{}{one, two, three} replies := &Collection{} replies.AppendType("Collection") replies.SetTotalItems(3) replies.SetUnknownItems(items) note := &Note{} note.AppendType("Note") note.AppendContentString("Users are favoriting "arduino" by a 33% margin.") example154Type.AppendType("Question") example154Type.AppendNameString("A question about robots") example154Type.SetId(MustParseURL("http://polls.example.org/question/1")) example154Type.AppendContentString("I'd like to build a robot to feed my cat. Which platform is best?") example154Type.SetUnknownOneOf(oneOf) example154Type.SetReplies(replies) example154Type.AppendResultObject(note) } const example155 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "History of John's note", "type": "Collection", "items": [ { "summary": "Sally liked John's note", "type": "Like", "actor": "http://sally.example.org", "id": "http://activities.example.com/1", "published": "2015-11-12T12:34:56Z", "object": { "summary": "John's note", "type": "Note", "id": "http://notes.example.com/1", "attributedTo": "http://john.example.org", "content": "My note" } }, { "summary": "Sally disliked John's note", "type": "Dislike", "actor": "http://sally.example.org", "id": "http://activities.example.com/2", "published": "2015-12-11T21:43:56Z", "object": { "summary": "John's note", "type": "Note", "id": "http://notes.example.com/1", "attributedTo": "http://john.example.org", "content": "My note" } } ] }` var example155Type = &Collection{} func init() { john := MustParseURL("http://john.example.org") sally := MustParseURL("http://sally.example.org") t1, err := time.Parse(time.RFC3339, "2015-11-12T12:34:56Z") if err != nil { panic(err) } t2, err := time.Parse(time.RFC3339, "2015-12-11T21:43:56Z") if err != nil { panic(err) } note := &Note{} note.AppendType("Note") note.AppendSummaryString("John's note") note.SetId(MustParseURL("http://notes.example.com/1")) note.AppendContentString("My note") note.AppendAttributedToIRI(john) like := &Like{} like.AppendType("Like") like.AppendSummaryString("Sally liked John's note") like.SetId(MustParseURL("http://activities.example.com/1")) like.AppendActorIRI(sally) like.SetPublished(t1) like.AppendObject(note) dislike := &Dislike{} dislike.AppendType("Dislike") dislike.AppendSummaryString("Sally disliked John's note") dislike.SetId(MustParseURL("http://activities.example.com/2")) dislike.AppendActorIRI(sally) dislike.SetPublished(t2) dislike.AppendObject(note) example155Type.AppendType("Collection") example155Type.AppendSummaryString("History of John's note") example155Type.AppendItemsObject(like) example155Type.AppendItemsObject(dislike) } const example156 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "History of John's note", "type": "Collection", "items": [ { "summary": "Sally liked John's note", "type": "Like", "id": "http://activities.example.com/1", "actor": "http://sally.example.org", "published": "2015-11-12T12:34:56Z", "object": { "summary": "John's note", "type": "Note", "id": "http://notes.example.com/1", "attributedTo": "http://john.example.org", "content": "My note" } }, { "summary": "Sally no longer likes John's note", "type": "Undo", "id": "http://activities.example.com/2", "actor": "http://sally.example.org", "published": "2015-12-11T21:43:56Z", "object": "http://activities.example.com/1" } ] }` var example156Type = &Collection{} func init() { john := MustParseURL("http://john.example.org") sally := MustParseURL("http://sally.example.org") a := MustParseURL("http://activities.example.com/1") t1, err := time.Parse(time.RFC3339, "2015-11-12T12:34:56Z") if err != nil { panic(err) } t2, err := time.Parse(time.RFC3339, "2015-12-11T21:43:56Z") if err != nil { panic(err) } note := &Note{} note.AppendType("Note") note.SetId(MustParseURL("http://notes.example.com/1")) note.AppendSummaryString("John's note") note.AppendAttributedToIRI(john) note.AppendContentString("My note") like := &Like{} like.AppendType("Like") like.SetId(MustParseURL("http://activities.example.com/1")) like.AppendSummaryString("Sally liked John's note") like.AppendActorIRI(sally) like.SetPublished(t1) like.AppendObject(note) undo := &Undo{} undo.AppendType("Undo") undo.SetId(MustParseURL("http://activities.example.com/2")) undo.AppendSummaryString("Sally no longer likes John's note") undo.AppendActorIRI(sally) undo.SetPublished(t2) undo.AppendObjectIRI(a) example156Type.AppendType("Collection") example156Type.AppendSummaryString("History of John's note") example156Type.AppendItemsObject(like) example156Type.AppendItemsObject(undo) } // NOTE: The `content` field has been inlined to keep within JSON spec. const example157 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A thank-you note", "type": "Note", "content": "Thank you @sally for all your hard work! #givingthanks", "to": { "name": "Sally", "type": "Person", "id": "http://sally.example.org" }, "tag": { "id": "http://example.org/tags/givingthanks", "name": "#givingthanks" } }` var example157Type = &Note{} func init() { tag := make(map[string]interface{}) tag["id"] = "http://example.org/tags/givingthanks" tag["name"] = "#givingthanks" person := &Person{} person.AppendType("Person") person.AppendNameString("Sally") person.SetId(MustParseURL("http://sally.example.org")) example157Type.AppendType("Note") example157Type.AppendNameString("A thank-you note") example157Type.AppendContentString("Thank you @sally for all your hard work! #givingthanks") example157Type.AppendToObject(person) example157Type.SetUnknownTag(tag) } const example158 = `{ "@context": "https://www.w3.org/ns/activitystreams", "name": "A thank-you note", "type": "Note", "content": "Thank you @sally for all your hard work! #givingthanks", "tag": [ { "type": "Mention", "href": "http://example.org/people/sally", "name": "@sally" }, { "id": "http://example.org/tags/givingthanks", "name": "#givingthanks" } ] }` var example158Type = &Note{} func init() { u := MustParseURL("http://example.org/people/sally") tag := make(map[string]interface{}) tag["id"] = "http://example.org/tags/givingthanks" tag["name"] = "#givingthanks" mention := &Mention{} mention.AppendType("Mention") mention.SetHref(u) mention.AppendNameString("@sally") example158Type.AppendType("Note") example158Type.AppendNameString("A thank-you note") example158Type.AppendContentString("Thank you @sally for all your hard work! #givingthanks") example158Type.AppendTagLink(mention) example158Type.SetUnknownTag(tag) } const example159 = `{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Sally moved the sales figures from Folder A to Folder B", "type": "Move", "actor": "http://sally.example.org", "object": { "type": "Document", "name": "sales figures" }, "origin": { "type": "Collection", "name": "Folder A" }, "target": { "type": "Collection", "name": "Folder B" } }` var example159Type = &Move{} func init() { sally := MustParseURL("http://sally.example.org") obj := &Document{} obj.AppendType("Document") obj.AppendNameString("sales figures") origin := &Collection{} origin.AppendType("Collection") origin.AppendNameString("Folder A") target := &Collection{} target.AppendType("Collection") target.AppendNameString("Folder B") example159Type.AppendType("Move") example159Type.AppendSummaryString("Sally moved the sales figures from Folder A to Folder B") example159Type.AppendActorIRI(sally) example159Type.AppendObject(obj) example159Type.AppendOriginObject(origin) example159Type.AppendTargetObject(target) }