Avatar

freamon

freamon@endlesstalk.org
Joined
10 posts • 56 comments

aka freamon@lemmy.world, freamon@feddit.nl, and any username from lemmon.website

This account is currently parked, and I’m using https://piefed.social/u/andrew_s

Direct message

Observation, mostly. Also guesswork and trial-and-error, because I never realised these were all in the docs.

The comments in here are from me running lemmy in a VM, and subscribing to a fake community on a VPS (you can mimic a community with a webfinger response and a bunch of static files). The activities sent by lemmy just went to a basic server, that dumped out the JSON files it received.

I mostly made this post so I could point to something when posting about a Ruby script that can be used to interact with lemmy from the command line. This provides the opportunity to learn about ActivityPub, separate from the more complicated applications that currently implement it.

permalink
report
parent
reply

Oh. I feel daft now. That’s some nice, comprehensive documentation, that I hadn’t seen before. I’ll edit this post to point to it, and I guess people can maybe use it if they want to comment about a particular activity.

permalink
report
parent
reply

freamon uses his new-found powers to edit the sidebar

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/update/20f7397d-f124-45aa-a1b2-b8366c17f6db",
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "object": {
    "type": "Group",
    "id": "https://remote.com/c/interesting",
    "preferredUsername": "interesting",
    "inbox": "https://remote.com/c/interesting/inbox",
    "followers": "https://remote.com/c/interesting/followers",
    "publicKey": {
      "id": "https://remote.com/c/interesting#main-key",
      "owner": "https://remote.com/c/interesting",
      "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAovFqf5abQp7EpeiwTku9\nUkp5nzFIk6ny/89hfMOrZigJR5RUG44J+TFnT8mHompvViDSQXP4qwJ8bVqQySpU\nIXzm4pKy1ykmuh+Ez0yS3/VaUHLYYi8vXhq5yMc70lIBsZ36KnBspFQBNW7ToHMI\nJia9du/2shxq1huApgpUFbVq/I4FLHQSKYVStCxWkJhTakNxvBLvVBroFF8Izwur\n/d79mTV40scCJX/HkgFqlxFYmmrc1/M2P2Ci3VS5u0oebBHwivvm6QTOVCHIIIgc\n7JM1eo/TdJ0QNkSE6YqSAEbSF1M1KODUPmfvyVrOuUCNJ2V64anD2b6tWCIyHlDN\nvwIDAQAB\n-----END PUBLIC KEY-----\n"
    },
    "name": "An Interesting Community",
    "summary": "<h4>An interesting community</h4>\n",
    "source": {
      "content": "#### An interesting community",
      "mediaType": "text/markdown"
    },
    "sensitive": false,
    "attributedTo": "https://remote.com/c/interesting/moderators",
    "postingRestrictedToMods": false,
    "outbox": "https://remote.com/c/interesting/outbox",
    "endpoints": {
      "sharedInbox": "https://remote.com/inbox"
    },
    "featured": "https://remote.com/c/interesting/featured",
    "language": [
      {
        "identifier": "und",
        "name": "Undetermined"
      },
      {
        "identifier": "en",
        "name": "English"
      }
    ],
    "published": "2024-01-01T17:22:16Z",
    "updated": "2024-02-13T22:05:25.819020Z"
  },
  "cc": [
    "https://remote.com/c/interesting"
  ],
  "type": "Update",
  "audience": "https://remote.com/c/interesting"
}
permalink
report
parent
reply

The community mod at remote.com decides to make freamon a moderator

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "actor": "https://remote.com/u/mod",
  "to": "https://www.w3.org/ns/activitystreams#Public",
  "object": "https://local.com/u/freamon",
  "target": "https://remote.com/c/interesting/moderators",
  "cc": "https://remote.com/c/interesting",
  "type": "Add",
  "id": "https://remote.com/activities/add/390751ec-9b21-4585-875f-2fb088c69c5a",
  "audience": "https://remote.com/c/interesting"
}

Replies to this comment are all moderator actions.

permalink
report
reply

freamon changes his mind again, and undoes the delete

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/undo/91bd96a3-9fb8-4dde-acfb-3d7ee682a41a",
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "object": {
    "actor": "https://local.com/u/freamon",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "object": "https://local.com/comment/1",
    "type": "Delete",
    "id": "https://local.com/activities/delete/55f2f17e-6c5d-44f2-ae53-e65c8496dfc3",
    "audience": "https://remote.com/c/interesting",
    "cc": [
      "https://remote.com/c/interesting"
    ]
  },
  "type": "Undo",
  "audience": "https://remote.com/c/interesting",
  "cc": [
    "https://remote.com/c/interesting"
  ]
}
permalink
report
parent
reply

freamon regrets his comment, and deletes it.

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/delete/c08be088-fd16-47fe-a286-3e0c24abc15b",
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "object": "https://local.com/comment/1",
  "type": "Delete",
  "audience": "https://remote.com/c/interesting",
  "cc": [
    "https://remote.com/c/interesting"
  ]
}
permalink
report
parent
reply

freamon replies to his own post, with an inline link to the same image, and an emoji

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/create/c394a258-eac5-4555-8b98-823002cbb88c",
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "object": {
    "type": "Note",
    "id": "https://local.com/comment/1",
    "attributedTo": "https://local.com/u/freamon",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "cc": [
      "https://remote.com/c/interesting",
      "https://local.com/u/freamon"
    ],
    "content": "<p>Comment text<br />\n<img src=\"https://i.imgur.com/T7Z3vUU.jpeg\" alt=\"\" /></p>\n<p>😜</p>\n",
    "inReplyTo": "https://local.com/post/3",
    "mediaType": "text/html",
    "source": {
      "content": "Comment text              \n![](https://i.imgur.com/T7Z3vUU.jpeg)\n\n 😜 ",
      "mediaType": "text/markdown"
    },
    "published": "2024-02-13T21:48:18.776300Z",
    "tag": [
      {
        "href": "https://local.com/u/freamon",
        "name": "@admin@local.com",
        "type": "Mention"
      }
    ],
    "distinguished": false,
    "audience": "https://remote.com/c/interesting"
  },
  "cc": [
    "https://remote.com/c/interesting",
    "https://local.com/u/freamon"
  ],
  "tag": [
    {
      "href": "https://local.com/u/freamon",
      "name": "@freamon@local.com",
      "type": "Mention"
    }
  ],
  "type": "Create",
  "audience": "https://remote.com/c/interesting"
}

Note 1: lemmy uses ‘Page’ for a post, and ‘Note’ for a comment, whereas mastodon uses ‘Note’ for both, with ‘inReplyTo’ distinguishing between the two.
Note 2: this is sent to the main community at remote.com, and also to the post’s author (it would appear in his inbox if they weren’t the same person)

permalink
report
reply

freamon creates a post in the interesting community. He adds a title, a body, links to an image, and tags it as in English.

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/create/37f46c10-9fc2-4228-b8ea-3803eb911485",
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "object": {
    "type": "Page",
    "id": "https://local.com/post/3",
    "attributedTo": "https://local.com/u/freamon",
    "to": [
      "https://remote.com/c/interesting",
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "name": "Title Text",
    "cc": [],
    "content": "<p>Body Text</p>\n",
    "mediaType": "text/html",
    "source": {
      "content": "Body Text",
      "mediaType": "text/markdown"
    },
    "attachment": [
      {
        "href": "https://i.imgur.com/T7Z3vUU.jpeg",
        "type": "Link"
      }
    ],
    "commentsEnabled": true,
    "sensitive": false,
    "published": "2024-02-13T21:46:05.705099Z",
    "language": {
      "identifier": "en",
      "name": "English"
    },
    "audience": "https://remote.com/c/interesting"
  },
  "cc": [
    "https://remote.com/c/interesting"
  ],
  "type": "Create",
  "audience": "https://remote.com/c/interesting"
}
permalink
report
reply

freamon changes his mind about post 2, and undoes his downvote

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/undo/e677b1ba-caaf-4a2f-9472-681705f337a3",
  "actor": "https://local.com/u/freamon",
  "object": {
    "actor": "https://local.com/u/freamon",
    "object": "https://remote.com/post/2",
    "type": "Like",
    "id": "https://local.com/activities/like/70edfad8-dcbb-42cd-8fd2-f674844b8801",
    "audience": "https://remote.com/c/interesting"
  },
  "type": "Undo",
  "audience": "https://remote.com/c/interesting"
}

Note: due the expection of unique ‘id’ fields, the encapsulated object isn’t the same, so this is probably best read as ‘undo vote’

permalink
report
parent
reply

The interesting community came with 2 posts. freamon upvotes post 1, and downvotes post 2

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/like/16e6a46e-b80b-4d13-8258-2f724c53ed1c",
  "actor": "https://local.com/u/freamon",
  "object": "https://remote.com/post/1",
  "type": "Like",
  "audience": "https://remote.com/c/interesting"
}
{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "id": "https://local.com/activities/dislike/576f119f-5aa5-4f5e-ba48-a79b26f0fae3",
  "actor": "https://local.com/u/freamon",
  "object": "https://remote.com/post/2",
  "type": "Dislike",
  "audience": "https://remote.com/c/interesting"
}
permalink
report
reply