Skip to content

RSS Feed updates

given: An RSS Feed

given: A new user called "alice"

given: The RSS feed actor uri is determined

when: The page for the RSS feed is opened

then: an acct URI is displayed

then: this acct URI can be resolved via webfinger

given: The actor uri is retrieved as "rss"

receive.alice
{
  "action": "fetch_result",
  "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
  "data": {
    "@context": [
      "https://www.w3.org/ns/activitystreams",
      "https://w3id.org/security/v1"
    ],
    "followers": "http://rss/followers/gxtdcQ54zV2VxgFru9aTLA",
    "following": "http://rss/following/rr-GwA505_HcAJxCEKlIBA",
    "icon": {
      "type": "Image",
      "url": "http://rss/logo.png"
    },
    "id": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
    "inbox": "http://rss/inbox/bEJUhG_3skjCnsE38ztIOg",
    "name": "test rss",
    "outbox": "http://rss/outbox/2zZDMfAxt3YNyx1YAESngg",
    "preferredUsername": "TestRss",
    "publicKey": {
      "id": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA#legacy-key-1",
      "owner": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
      "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqOl7gt1yrsjJYwloX5kl\nqr/yURBrOVNVQ6PRYNYVcgLqQ9RmVyXafBOioHkBAfzxsBKH2b8WmMUcYfRrMxpo\n1drPsVmhAtRqN6V0DaqI/J6REt+q7mdDAjo6d3wCn+20jalVkXHtmqH2yJ6BlYNc\n0m9k78+x3Se706b5zt1FXl1m4vITchBQ+E56EIxCoHBGeaXal/9BM67WxGGFGPJs\nNaXRJBsd6pUd7qwhy2PujgZW0W3b14gxRGaltOFvrNjarXby5TLz3HwgBSeoxEAV\n7ut1HzS1+2iHopkmIcZ+P8JMvkjQmDSBPQe2p3lSxEq1fqpROB1amGChpV+Nlfyd\naQIDAQAB\n-----END PUBLIC KEY-----\n"
    },
    "type": "Service",
    "url": "1"
  }
}

given: "alice" follows "rss"

when: "alice" sends "rss" a Follow Activity

outgoing.Follow
{
  "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
    "to": [
      "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA"
    ],
    "id": "follow:80a18e69-a4d5-4f9c-87c5-ca95e6ce31ef",
    "published": "2024-10-21T17:25:49Z",
    "object": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA"
  },
  "activity_type": "Follow"
}
incoming.Follow
{
  "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
    "to": [
      "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA"
    ],
    "id": "follow:80a18e69-a4d5-4f9c-87c5-ca95e6ce31ef",
    "published": "2024-10-21T17:25:49Z",
    "object": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA"
  },
  "activity_type": "Follow"
}
outgoing.Accept
{
  "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
    "to": [
      "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA"
    ],
    "published": "2024-10-21T17:25:49Z",
    "object": "follow:80a18e69-a4d5-4f9c-87c5-ca95e6ce31ef"
  },
  "activity_type": "Accept"
}
incoming.Accept
{
  "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
    "to": [
      "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA"
    ],
    "published": "2024-10-21T17:25:49Z",
    "object": "follow:80a18e69-a4d5-4f9c-87c5-ca95e6ce31ef"
  },
  "activity_type": "Accept"
}

when: the RSS Feed updates with subtitle "new entry"

when: The RSS updater runs

outgoing.Create
{
  "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Create",
    "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "cc": [
      "http://rss/followers/gxtdcQ54zV2VxgFru9aTLA"
    ],
    "published": "2024-10-21T17:25:49Z",
    "object": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "attributedTo": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://rss/followers/gxtdcQ54zV2VxgFru9aTLA"
      ],
      "published": "2024-10-21T17:25:49Z",
      "url": "2",
      "summary": "title",
      "content": "new entry",
      "id": "http://rss/objects/0192b01d-1853-7ace-b201-4e0756c36c2f"
    },
    "id": "http://rss/objects/0192b01d-1853-7ace-b201-4e0756c36c2f#create"
  },
  "activity_type": "Create"
}
incoming.Create
{
  "actor": "http://abel/actor/hSKi5BXPMe61Omc1YCm3FA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Create",
    "actor": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "cc": [
      "http://rss/followers/gxtdcQ54zV2VxgFru9aTLA"
    ],
    "published": "2024-10-21T17:25:49Z",
    "object": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "attributedTo": "http://rss/actor/li1w7bI6I6AP9Uh2nKutuA",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "cc": [
        "http://rss/followers/gxtdcQ54zV2VxgFru9aTLA"
      ],
      "published": "2024-10-21T17:25:49Z",
      "url": "2",
      "summary": "title",
      "content": "new entry",
      "id": "http://rss/objects/0192b01d-1853-7ace-b201-4e0756c36c2f"
    },
    "id": "http://rss/objects/0192b01d-1853-7ace-b201-4e0756c36c2f#create"
  },
  "activity_type": "Create"
}

then: "alice" receives a message saying "new entry"