freamon

joined 1 year ago
MODERATOR OF
[–] freamon 8 points 9 months ago

I've seen this happen occasionally, but it doesn't always look great, and relies on them having heard of Lemmy in the first place, obvs.

[–] freamon 4 points 9 months ago (3 children)

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.

[–] freamon 5 points 9 months ago (1 children)

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.

[–] freamon 1 points 9 months ago

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"
}
[–] freamon 1 points 9 months ago (1 children)

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.

[–] freamon 1 points 9 months ago

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"
  ]
}
[–] freamon 1 points 9 months ago (1 children)

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"
  ]
}
[–] freamon 1 points 9 months ago (2 children)

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": "@[email protected]",
        "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": "@[email protected]",
      "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)

[–] freamon 1 points 9 months ago

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"
}
[–] freamon 1 points 9 months ago

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'

[–] freamon 1 points 9 months ago (1 children)

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"
}
[–] freamon 1 points 9 months ago

freamon changes his mind. He doesn't want to subscribe anymore

{
  "@context": [
    "https://join-lemmy.org/context.json",
    "https://www.w3.org/ns/activitystreams"
  ],
  "actor": "https://local.com/u/freamon",
  "to": [
    "https://remote.com/c/interesting"
  ],
  "object": {
    "actor": "https://local.com/u/freamon",
    "to": [
      "https://remote.com/c/interesting"
    ],
    "object": "https://remote.com/c/interesting",
    "type": "Follow",
    "id": "https://local.com/activities/follow/c934a27e-0dad-4641-85f5-a83e04d672a4"
  },
  "type": "Undo",
  "id": "https://local.com/activities/undo/a9047cfc-ed0e-49c2-86da-9a0b3dbdc463"
}

Note 1: lemmy expects these 'id' fields to be unique, so the encapulated 'Follow' isn't the same as the one that was sent.
Note 2: lemmy also sends a Undo/Follow if you block a community

view more: ‹ prev next ›