snarfed / bridgy-fed

🌉 A bridge between decentralized social network protocols
https://fed.brid.gy
Creative Commons Zero v1.0 Universal
550 stars 29 forks source link

wm => AP: weird broken AS2 Create activity #487

Closed snarfed closed 1 year ago

snarfed commented 1 year ago

@tantek published a reply last night, https://tantek.com/2023/109/t1/ , and BF sent an odd broken Create AS2 activity that didn't work. From the log:

Sending AS2 object: {
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "id": "https://fed.brid.gy/r/https://tantek.com/2023/109/t1/#bridgy-fed-create",
  "actor": "https://fed.brid.gy/tantek.com",
  "object": "https://mastodon.social/users/john_fisherman/statuses/110224246899618915",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ]
}

No content, object is the inReplyTo, etc. The AS1 object we had earlier is fine:

{
  "objectType": "comment",
  "id": "https://tantek.com/2023/109/t1/",
  "published": "2023-04-19 01:22-0700",
  "updated": "2023-04-19 01:22-0700",
  "displayName": "@fredrocha.net (@john_fisherman@mastodon.social) saw your post ",
  "content": "<a class=\"auto-link\" href=\"https://fredrocha.net\">@fredrocha.net</a> (<a class=\"auto-link\" href=\"https://mastodon.social/@john_fisherman\">@john_fisherman@mastodon.social</a>) saw your post from the <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category auto-tag\">IndieWeb</span></a> stream. Beautiful photos on your site! <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/btconf\">#<span class=\"p-category auto-tag\">btconf</span></a> was great wasn\u2019t it?<br class=\"auto-break\"/><br class=\"auto-break\"/>My personal URL is <a class=\"auto-link\" href=\"https://tantek.com/\">https://tantek.com/</a>; and my <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/fediverse\">#<span class=\"p-category auto-tag\">fediverse</span></a> @ is <a class=\"auto-link\" href=\"https://tantek.com\">@tantek.com</a>. My Atom feed file is auto-discoverable by feed readers from my home page.<br class=\"auto-break\"/><br class=\"auto-break\"/>Feeding (so to speak) two discovery birds with one stonefruit<a href=\"#t5QS1_note-1\" id=\"t5QS1_ref-1\">\u00b9</a>.<br class=\"auto-break\"/><br class=\"auto-break\"/>Your personal website can be your fediverse address<a href=\"#t5QS1_note-2\" id=\"t5QS1_ref-2\">\u00b2</a>, each providing seamless discovery for the other.<br class=\"auto-break\"/><br class=\"auto-break\"/>As web developers we should be building &amp; developing our personal sites to exemplify the latest &amp; greatest of such practices, including using Mastodon/ActivityPub as yet another distribution mechanism (ala POSSE) for your existing personal websites rather than a separate profile/stream.<br class=\"auto-break\"/><br class=\"auto-break\"/>Discussed this with <a class=\"auto-link\" href=\"https://mastodon.social/@nebu\">@nebu@mastodon.social</a> and <a class=\"auto-link\" href=\"https://mastodon.social/@kadirtopal\">@kadirtopal@mastodon.social</a> just after the last talk <a class=\"auto-link\" href=\"https://beyondtellerrand.com\">@beyondtellerrand.com</a> (<a class=\"auto-link\" href=\"https://mastodon.social/@btconf\">@btconf@mastodon.social</a> <a class=\"auto-link h-cassis-username\" href=\"https://twitter.com/btconf\">@btconf</a>) yesterday, fitting conference closing thoughts complementing the heartfelt opening talk by <a class=\"auto-link\" href=\"https://localghost.dev\">@localghost.dev</a> (<a class=\"auto-link\" href=\"https://sophie.omg.lol/\">https://sophie.omg.lol/</a>; <a class=\"auto-link\" href=\"https://social.lol/@sophie\">@sophie@social.lol</a>)<a href=\"#t5QS1_note-3\" id=\"t5QS1_ref-3\">\u00b3</a>.<br class=\"auto-break\"/><br class=\"auto-break\"/>Glossary<br class=\"auto-break\"/><br class=\"auto-break\"/>ActivityPub<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/ActivityPub\">https://indieweb.org/ActivityPub</a><br class=\"auto-break\"/>feed file<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/feed_file\">https://indieweb.org/feed_file</a><br class=\"auto-break\"/>POSSE<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/POSSE\">https://indieweb.org/POSSE</a><br class=\"auto-break\"/><br class=\"auto-break\"/>References<br class=\"auto-break\"/><br class=\"auto-break\"/><a href=\"#t5QS1_ref-1\" id=\"t5QS1_note-1\">\u00b9</a> <a class=\"auto-link\" href=\"https://tantek.com/2020/147/t2/replace-violent-metaphors\">https://tantek.com/2020/147/t2/replace-violent-metaphors</a><br class=\"auto-break\"/><a href=\"#t5QS1_ref-2\" id=\"t5QS1_note-2\">\u00b2</a> <a class=\"auto-link\" href=\"https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb\">https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb</a><br class=\"auto-break\"/><a href=\"#t5QS1_ref-3\" id=\"t5QS1_note-3\">\u00b3</a> <a class=\"auto-link\" href=\"https://tantek.com/2023/107/t1/beyond-tellerand-talk-love-personal-website\">https://tantek.com/2023/107/t1/beyond-tellerand-talk-love-personal-website</a>;",
  "url": "https://tantek.com/2023/109/t1/",
  "tags": [{
      "objectType": "hashtag",
      "displayName": "IndieWeb"
    }, {
      "objectType": "hashtag",
      "displayName": "btconf"
    }, {
      "objectType": "hashtag",
      "displayName": "fediverse"
    }],
  "inReplyTo": [
    "https://mastodon.social/@john_fisherman/110224246899618915"
  ],
  "author": {
    "objectType": "person",
    "displayName": "Tantek \u00c7elik",
    "url": "https://tantek.com/",
    "image": [{
        "url": "https://tantek.com/logo.jpg",
        "displayName": "Tantek \u00c7elik"
      }]
  }
}

I ran activitypub.postprocess_as2(as2.from_as1(a1))) on that AS1 object, and it turned out fine, below. So what happened?!?

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Note",
  "id": "https://fed.brid.gy/r/https://tantek.com/2023/109/t1/",
  "url": "https://fed.brid.gy/r/https://tantek.com/2023/109/t1/",
  "published": "2023-04-19 01:22-0700",
  "updated": "2023-04-19 01:22-0700",
  "content": "<a class=\"auto-link\" href=\"https://fredrocha.net\">@fredrocha.net</a> (<a class=\"auto-link\" href=\"https://mastodon.social/@john_fisherman\">@john_fisherman@mastodon.social</a>) saw your post from the <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category auto-tag\">IndieWeb</span></a> stream. Beautiful photos on your site! <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/btconf\">#<span class=\"p-category auto-tag\">btconf</span></a> was great wasn\u2019t it?<br class=\"auto-break\"/><br class=\"auto-break\"/>My personal URL is <a class=\"auto-link\" href=\"https://tantek.com/\">https://tantek.com/</a>; and my <a class=\"auto-link-hashtag\" href=\"https://indieweb.social/tags/fediverse\">#<span class=\"p-category auto-tag\">fediverse</span></a> @ is <a class=\"auto-link\" href=\"https://tantek.com\">@tantek.com</a>. My Atom feed file is auto-discoverable by feed readers from my home page.<br class=\"auto-break\"/><br class=\"auto-break\"/>Feeding (so to speak) two discovery birds with one stonefruit<a href=\"#t5QS1_note-1\" id=\"t5QS1_ref-1\">\u00b9</a>.<br class=\"auto-break\"/><br class=\"auto-break\"/>Your personal website can be your fediverse address<a href=\"#t5QS1_note-2\" id=\"t5QS1_ref-2\">\u00b2</a>, each providing seamless discovery for the other.<br class=\"auto-break\"/><br class=\"auto-break\"/>As web developers we should be building &amp; developing our personal sites to exemplify the latest &amp; greatest of such practices, including using Mastodon/ActivityPub as yet another distribution mechanism (ala POSSE) for your existing personal websites rather than a separate profile/stream.<br class=\"auto-break\"/><br class=\"auto-break\"/>Discussed this with <a class=\"auto-link\" href=\"https://mastodon.social/@nebu\">@nebu@mastodon.social</a> and <a class=\"auto-link\" href=\"https://mastodon.social/@kadirtopal\">@kadirtopal@mastodon.social</a> just after the last talk <a class=\"auto-link\" href=\"https://beyondtellerrand.com\">@beyondtellerrand.com</a> (<a class=\"auto-link\" href=\"https://mastodon.social/@btconf\">@btconf@mastodon.social</a> <a class=\"auto-link h-cassis-username\" href=\"https://twitter.com/btconf\">@btconf</a>) yesterday, fitting conference closing thoughts complementing the heartfelt opening talk by <a class=\"auto-link\" href=\"https://localghost.dev\">@localghost.dev</a> (<a class=\"auto-link\" href=\"https://sophie.omg.lol/\">https://sophie.omg.lol/</a>; <a class=\"auto-link\" href=\"https://social.lol/@sophie\">@sophie@social.lol</a>)<a href=\"#t5QS1_note-3\" id=\"t5QS1_ref-3\">\u00b3</a>.<br class=\"auto-break\"/><br class=\"auto-break\"/>Glossary<br class=\"auto-break\"/><br class=\"auto-break\"/>ActivityPub<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/ActivityPub\">https://indieweb.org/ActivityPub</a><br class=\"auto-break\"/>feed file<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/feed_file\">https://indieweb.org/feed_file</a><br class=\"auto-break\"/>POSSE<br class=\"auto-break\"/>\u00a0<a class=\"auto-link\" href=\"https://indieweb.org/POSSE\">https://indieweb.org/POSSE</a><br class=\"auto-break\"/><br class=\"auto-break\"/>References<br class=\"auto-break\"/><br class=\"auto-break\"/><a href=\"#t5QS1_ref-1\" id=\"t5QS1_note-1\">\u00b9</a> <a class=\"auto-link\" href=\"https://tantek.com/2020/147/t2/replace-violent-metaphors\">https://tantek.com/2020/147/t2/replace-violent-metaphors</a><br class=\"auto-break\"/><a href=\"#t5QS1_ref-2\" id=\"t5QS1_note-2\">\u00b2</a> <a class=\"auto-link\" href=\"https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb\">https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb</a><br class=\"auto-break\"/><a href=\"#t5QS1_ref-3\" id=\"t5QS1_note-3\">\u00b3</a> <a class=\"auto-link\" href=\"https://tantek.com/2023/107/t1/beyond-tellerand-talk-love-personal-website\">https://tantek.com/2023/107/t1/beyond-tellerand-talk-love-personal-website</a>;",
  "name": "@fredrocha.net (@john_fisherman@mastodon.social) saw your post from the #IndieWeb stream. Beautiful photos on your site! #btconf was great wasn\u2019t it?\n\nMy personal URL is https://tantek.com/ and my #fediverse @ is @tantek.com. My Atom feed file is auto-discoverable by feed readers from my home page.\n\nFeeding (so to speak) two discovery birds with one stonefruit\u00b9.\n\nYour personal website can be your fediverse address\u00b2, each providing seamless discovery for the other.\n\nAs web developers we should be building & developing our personal sites to exemplify the latest & greatest of such practices, including using Mastodon/ActivityPub as yet another distribution mechanism (ala POSSE) for your existing personal websites rather than a separate profile/stream.\n\nDiscussed this with @nebu@mastodon.social and @kadirtopal@mastodon.social just after the last talk @beyondtellerrand.com (@btconf@mastodon.social @btconf) yesterday, fitting conference closing thoughts complementing the heartfelt opening talk by @localghost.dev (https://sophie.omg.lol/ @sophie@social.lol)\u00b3.\n\nGlossary\n\nActivityPub\n\u00a0https://indieweb.org/ActivityPub\nfeed file\n\u00a0https://indieweb.org/feed_file\nPOSSE\n\u00a0https://indieweb.org/POSSE\n\nReferences\n\n\u00b9 https://tantek.com/2020/147/t2/replace-violent-metaphors\n\u00b2 https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb\n\u00b3 https://tantek.com/2023/107/t1/beyond-tellerand-talk-love-personal-website",
  "attributedTo": {
    "url": "https://fed.brid.gy/r/https://tantek.com/",
    "image": {
      "url": "https://tantek.com/logo.jpg",
      "type": "Image",
      "name": "Tantek \u00c7elik"
    },
    "type": "Person",
    "name": "Tantek \u00c7elik",
    "icon": {
      "url": "https://tantek.com/logo.jpg",
      "type": "Image",
      "name": "Tantek \u00c7elik"
    },
    "id": "https://fed.brid.gy/tantek.com",
    "preferredUsername": "tantek.com"
  },
  "inReplyTo": "https://mastodon.social/@john_fisherman/110224246899618915",
  "tag": [{
      "type": "Hashtag",
      "name": "#IndieWeb",
      "href": "https://fed.brid.gy/hashtag/IndieWeb"
    }, {
      "type": "Hashtag",
      "name": "#btconf",
      "href": "https://fed.brid.gy/hashtag/btconf"
    }, {
      "type": "Hashtag",
      "name": "#fediverse",
      "href": "https://fed.brid.gy/hashtag/fediverse"
    }],
  "to": ["https://www.w3.org/ns/activitystreams#Public"]
}
snarfed commented 1 year ago

Tentatively closing, I haven't been able to reproduce this, and the code is getting significantly overhauled in #512.