ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "ostatus": "http://ostatus.org#", "atomUri": "ostatus:atomUri", "inReplyToAtomUri": "ostatus:inReplyToAtomUri", "conversation": "ostatus:conversation", "sensitive": "as:sensitive", "toot": "http://joinmastodon.org/ns#", "votersCount": "toot:votersCount", "Hashtag": "as:Hashtag", "Emoji": "toot:Emoji", "focalPoint": { "@container": "@list", "@id": "toot:focalPoint" } } ], "id": "https://metalhead.club/users/mariusor/outbox?min_id=0&page=true", "type": "OrderedCollectionPage", "next": "https://metalhead.club/users/mariusor/outbox?max_id=101211445698393677&page=true", "prev": "https://metalhead.club/users/mariusor/outbox?min_id=101240865708415687&page=true", "partOf": "https://metalhead.club/users/mariusor/outbox", "orderedItems": [ { "id": "https://metalhead.club/users/mariusor/statuses/101240865708415687/activity", "type": "Announce", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-14T18:43:34Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://writing.exchange/users/matt", "https://metalhead.club/users/mariusor/followers" ], "object": "https://writing.exchange/users/matt/statuses/101240509816608932" }, { "id": "https://metalhead.club/users/mariusor/statuses/101239681134316918/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-14T13:42:19Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101239681134316918", "type": "Note", "summary": null, "inReplyTo": null, "published": "2018-12-14T13:42:19Z", "url": "https://metalhead.club/@mariusor/101239681134316918", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101239681134316918", "inReplyToAtomUri": null, "conversation": "tag:mastodon.technology,2018-12-14:objectId=11348101:objectType=Conversation", "content": "<p>@cj@mastodon.technology come on man, who doesn&#39;t like a surprise dick pick in their inbox once in a while.</p>", "contentMap": { "en": "<p>@cj@mastodon.technology come on man, who doesn&#39;t like a surprise dick pick in their inbox once in a while.</p>" }, "attachment": [], "tag": [], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101239681134316918/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101239681134316918/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101239681134316918/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101239681134316918/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101239681134316918/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101238653725425473/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-14T09:21:02Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/dansup" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101238653725425473", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/dansup/statuses/101238618404770954", "published": "2018-12-14T09:21:02Z", "url": "https://metalhead.club/@mariusor/101238653725425473", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/dansup" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101238653725425473", "inReplyToAtomUri": "https://mastodon.social/users/dansup/statuses/101238618404770954", "conversation": "tag:mastodon.social,2018-12-14:objectId=71439881:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@dansup\" class=\"u-url mention\">@<span>dansup</span></a></span> I thought you already learned the lesson for setting short deadlines on yourself. Please don&#39;t do that, it will set you for a big dissapointment if you can&#39;t manage to keep it, and it would lead you to burn out if you push yourself too hard to try to keep it. <br />A big project like Pixelfed is an endurance race, not a sprint.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@dansup\" class=\"u-url mention\">@<span>dansup</span></a></span> I thought you already learned the lesson for setting short deadlines on yourself. Please don&#39;t do that, it will set you for a big dissapointment if you can&#39;t manage to keep it, and it would lead you to burn out if you push yourself too hard to try to keep it. <br />A big project like Pixelfed is an endurance race, not a sprint.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/dansup", "name": "@dansup@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101238653725425473/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101238653725425473/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101238653725425473/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101238653725425473/likes", "type": "Collection", "totalItems": 2 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101238653725425473/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101235189317092059/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-13T18:39:59Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101235189317092059", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101235175339965702", "published": "2018-12-13T18:39:59Z", "url": "https://metalhead.club/@mariusor/101235189317092059", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101235189317092059", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101235175339965702", "conversation": "tag:mastodon.social,2018-12-13:objectId=71268959:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> @cj@mastodon.technology I wouldn&#39;t worry about getting it 100% correctly. AP is still a young spec and as the ecosystem will grow, the apps and libraries will mature into something more unified. Or at least that&#39;s what I hope. :D</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> @cj@mastodon.technology I wouldn&#39;t worry about getting it 100% correctly. AP is still a young spec and as the ecosystem will grow, the apps and libraries will mature into something more unified. Or at least that&#39;s what I hope. :D</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101235189317092059/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101235189317092059/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101235189317092059/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101235189317092059/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101235189317092059/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101235115597227419/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-13T18:21:14Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101235115597227419", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101234930258839853", "published": "2018-12-13T18:21:14Z", "url": "https://metalhead.club/@mariusor/101235115597227419", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101235115597227419", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101234930258839853", "conversation": "tag:mastodon.social,2018-12-13:objectId=71268959:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> taking what @cj@mastodon.technology said a bit furher, I consider that a good AP implementation takes what it receives as IDs and if it&#39;s something relevant to it, does another request and then it handles it in accordance with the content it receives. I don&#39;t find the case where this content is actual binary data, too different than having to check for different AP object types. <a href=\"https://metalhead.club/tags/my2c\" class=\"mention hashtag\" rel=\"tag\">#<span>my2c</span></a></p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> taking what @cj@mastodon.technology said a bit furher, I consider that a good AP implementation takes what it receives as IDs and if it&#39;s something relevant to it, does another request and then it handles it in accordance with the content it receives. I don&#39;t find the case where this content is actual binary data, too different than having to check for different AP object types. <a href=\"https://metalhead.club/tags/my2c\" class=\"mention hashtag\" rel=\"tag\">#<span>my2c</span></a></p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" }, { "type": "Hashtag", "href": "https://metalhead.club/tags/my2c", "name": "#my2c" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101235115597227419/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101235115597227419/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101235115597227419/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101235115597227419/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101235115597227419/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101234540807169873/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-13T15:55:04Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101234540807169873", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101234497082375063", "published": "2018-12-13T15:55:04Z", "url": "https://metalhead.club/@mariusor/101234540807169873", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101234540807169873", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101234497082375063", "conversation": "tag:mastodon.social,2018-12-13:objectId=71268959:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> I would consider that to be implementation dependent, and I would do it depending on the content type I&#39;m serving. If the client requests an activitypub json content I&#39;ll give him the Link object referencable URI. If it doesn&#39;t, I&#39;d serve the href. :shrug: </p><p>But to be honest I don&#39;t try to implement the examples in the spec. :D</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> I would consider that to be implementation dependent, and I would do it depending on the content type I&#39;m serving. If the client requests an activitypub json content I&#39;ll give him the Link object referencable URI. If it doesn&#39;t, I&#39;d serve the href. :shrug: </p><p>But to be honest I don&#39;t try to implement the examples in the spec. :D</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101234540807169873/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101234540807169873/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101234540807169873/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101234540807169873/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101234540807169873/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101234488557807954/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-13T15:41:46Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101234488557807954", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101234475022179803", "published": "2018-12-13T15:41:46Z", "url": "https://metalhead.club/@mariusor/101234488557807954", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101234488557807954", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101234475022179803", "conversation": "tag:mastodon.social,2018-12-13:objectId=71268959:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> The AP spec says that the Object IDs MUST be dereferencable URIs or null for transient objects. This is a slight deviation from JSON-LD spec which doesn&#39;t use the MUST keyword AFAIR.</p><p><a href=\"https://www.w3.org/TR/activitypub/#obj-id\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://www.</span><span class=\"\">w3.org/TR/activitypub/#obj-id</span><span class=\"invisible\"></span></a></p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> The AP spec says that the Object IDs MUST be dereferencable URIs or null for transient objects. This is a slight deviation from JSON-LD spec which doesn&#39;t use the MUST keyword AFAIR.</p><p><a href=\"https://www.w3.org/TR/activitypub/#obj-id\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://www.</span><span class=\"\">w3.org/TR/activitypub/#obj-id</span><span class=\"invisible\"></span></a></p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101234488557807954/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101234488557807954/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101234488557807954/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101234488557807954/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101234488557807954/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101232564222968480/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-13T07:32:24Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://functional.cafe/users/ivan" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101232564222968480", "type": "Note", "summary": null, "inReplyTo": "https://functional.cafe/users/ivan/statuses/101232543502365906", "published": "2018-12-13T07:32:24Z", "url": "https://metalhead.club/@mariusor/101232564222968480", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://functional.cafe/users/ivan" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101232564222968480", "inReplyToAtomUri": "https://functional.cafe/users/ivan/statuses/101232543502365906", "conversation": "tag:functional.cafe,2018-12-09:objectId=3008168:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://functional.cafe/@ivan\" class=\"u-url mention\">@<span>ivan</span></a></span> I just installed the Sailfish X demo on Xperia XA2 and it is pretty nice. It&#39;s missing the android compatibility layer (good riddance), exchange client (who ever uses that :D), but otherwise working fine. </p><p>I&#39;m thinking I might not even need the for pay version. :) </p><p>The only way Sailfish sucks for me is that they don&#39;t push for full libpurple IM support out of the box.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://functional.cafe/@ivan\" class=\"u-url mention\">@<span>ivan</span></a></span> I just installed the Sailfish X demo on Xperia XA2 and it is pretty nice. It&#39;s missing the android compatibility layer (good riddance), exchange client (who ever uses that :D), but otherwise working fine. </p><p>I&#39;m thinking I might not even need the for pay version. :) </p><p>The only way Sailfish sucks for me is that they don&#39;t push for full libpurple IM support out of the box.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://functional.cafe/users/ivan", "name": "@ivan@functional.cafe" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101232564222968480/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101232564222968480/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101232564222968480/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101232564222968480/likes", "type": "Collection", "totalItems": 1 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101232564222968480/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101229440431007581/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-12T18:17:58Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://functional.cafe/users/ivan" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101229440431007581", "type": "Note", "summary": null, "inReplyTo": "https://functional.cafe/users/ivan/statuses/101212898724218805", "published": "2018-12-12T18:17:58Z", "url": "https://metalhead.club/@mariusor/101229440431007581", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://functional.cafe/users/ivan" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101229440431007581", "inReplyToAtomUri": "https://functional.cafe/users/ivan/statuses/101212898724218805", "conversation": "tag:functional.cafe,2018-12-09:objectId=3008168:objectType=Conversation", "content": "<p>Hi <span class=\"h-card\" translate=\"no\"><a href=\"https://functional.cafe/@ivan\" class=\"u-url mention\">@<span>ivan</span></a></span>, what stops you from using Sailfish OS?</p>", "contentMap": { "en": "<p>Hi <span class=\"h-card\" translate=\"no\"><a href=\"https://functional.cafe/@ivan\" class=\"u-url mention\">@<span>ivan</span></a></span>, what stops you from using Sailfish OS?</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://functional.cafe/users/ivan", "name": "@ivan@functional.cafe" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101229440431007581/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101229440431007581/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101229440431007581/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101229440431007581/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101229440431007581/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101228861765187708/activity", "type": "Announce", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-12T15:50:48Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://mastodon.eliotberriot.com/users/funkwhale", "https://metalhead.club/users/mariusor/followers" ], "object": "https://mastodon.eliotberriot.com/users/funkwhale/statuses/101228683027855099" }, { "id": "https://metalhead.club/users/mariusor/statuses/101227595746048852/activity", "type": "Announce", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-12T10:28:50Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://mastodon.social/users/bagder", "https://metalhead.club/users/mariusor/followers" ], "object": "https://mastodon.social/users/bagder/statuses/101227569654904252" }, { "id": "https://metalhead.club/users/mariusor/statuses/101223474144804909/activity", "type": "Announce", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-11T17:00:40Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://cmpwn.com/users/sir", "https://metalhead.club/users/mariusor/followers" ], "object": "https://cmpwn.com/users/sir/statuses/101223224475864363" }, { "id": "https://metalhead.club/users/mariusor/statuses/101222144088264614/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-11T11:22:25Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101222144088264614", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101222134196246818", "published": "2018-12-11T11:22:25Z", "url": "https://metalhead.club/@mariusor/101222144088264614", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101222144088264614", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101222134196246818", "conversation": "tag:mastodon.social,2018-12-11:objectId=70714032:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> somehow I don&#39;t think that &quot;generic library&quot; and postgresql belong together very well. :))</p><p>I fully agree that the generation of local keys is not something destined for a library, but a client implementation.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> somehow I don&#39;t think that &quot;generic library&quot; and postgresql belong together very well. :))</p><p>I fully agree that the generation of local keys is not something destined for a library, but a client implementation.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101222144088264614/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101222144088264614/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101222144088264614/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101222144088264614/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101222144088264614/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101222064469829975/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-11T11:02:10Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101222064469829975", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101222055773994267", "published": "2018-12-11T11:02:10Z", "url": "https://metalhead.club/@mariusor/101222064469829975", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101222064469829975", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101222055773994267", "conversation": "tag:mastodon.social,2018-12-11:objectId=70714032:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> that&#39;s true, I am using a different algorithm for locally generated objects, basically still a hash, but over different elements. In the case of actors, I use the actor name, in the case of Article/Note/etc I use the content, etc... </p><p>I&#39;m not sure I like having the logic split like that, but it&#39;s the best idea I had so far.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> that&#39;s true, I am using a different algorithm for locally generated objects, basically still a hash, but over different elements. In the case of actors, I use the actor name, in the case of Article/Note/etc I use the content, etc... </p><p>I&#39;m not sure I like having the logic split like that, but it&#39;s the best idea I had so far.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101222064469829975/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101222064469829975/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101222064469829975/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101222064469829975/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101222064469829975/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101222011025835927/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-11T10:48:34Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101222011025835927", "type": "Note", "summary": null, "inReplyTo": "https://metalhead.club/users/mariusor/statuses/101222007591075697", "published": "2018-12-11T10:48:34Z", "url": "https://metalhead.club/@mariusor/101222011025835927", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101222011025835927", "inReplyToAtomUri": "https://metalhead.club/users/mariusor/statuses/101222007591075697", "conversation": "tag:mastodon.social,2018-12-11:objectId=70714032:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> same hash is used as a path element in an ltree column to store the activity&#39;s ancestors.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> same hash is used as a path element in an ltree column to store the activity&#39;s ancestors.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101222011025835927/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101222011025835927/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101222011025835927/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101222011025835927/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101222011025835927/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101222007591075697/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-11T10:47:42Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101222007591075697", "type": "Note", "summary": null, "inReplyTo": "https://mastodon.social/users/alexcastano/statuses/101221809154423257", "published": "2018-12-11T10:47:42Z", "url": "https://metalhead.club/@mariusor/101222007591075697", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://mastodon.social/users/alexcastano" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101222007591075697", "inReplyToAtomUri": "https://mastodon.social/users/alexcastano/statuses/101221809154423257", "conversation": "tag:mastodon.social,2018-12-11:objectId=70714032:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> I am using a simple hashing function over the activitypub object id for the local unique key in postgresql instead of UUIDS. I think this ensures more flexibility as you can search on that key even if you don&#39;t have it by default.</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://mastodon.social/@alexcastano\" class=\"u-url mention\">@<span>alexcastano</span></a></span> I am using a simple hashing function over the activitypub object id for the local unique key in postgresql instead of UUIDS. I think this ensures more flexibility as you can search on that key even if you don&#39;t have it by default.</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://mastodon.social/users/alexcastano", "name": "@alexcastano@mastodon.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101222007591075697/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101222007591075697/replies?min_id=101222011025835927&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101222007591075697/replies", "items": [ "https://metalhead.club/users/mariusor/statuses/101222011025835927" ] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101222007591075697/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101222007591075697/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101218425453451588/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-10T19:36:43Z", "to": [ "https://metalhead.club/users/mariusor/followers" ], "cc": [ "https://www.w3.org/ns/activitystreams#Public" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101218425453451588", "type": "Note", "summary": "Food, vulgarité", "inReplyTo": null, "published": "2018-12-10T19:36:43Z", "url": "https://metalhead.club/@mariusor/101218425453451588", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://metalhead.club/users/mariusor/followers" ], "cc": [ "https://www.w3.org/ns/activitystreams#Public" ], "sensitive": true, "atomUri": "https://metalhead.club/users/mariusor/statuses/101218425453451588", "inReplyToAtomUri": null, "conversation": "tag:mastodon.eliotberriot.com,2018-12-10:objectId=1176587:objectType=Conversation", "content": "<p>@eliotberriot@mastodon.eliotberriot.com </p><p>maybe the vegan dishes are so popular that they&#39;re sold out. :)</p>", "contentMap": { "en": "<p>@eliotberriot@mastodon.eliotberriot.com </p><p>maybe the vegan dishes are so popular that they&#39;re sold out. :)</p>" }, "attachment": [], "tag": [], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101218425453451588/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101218425453451588/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101218425453451588/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101218425453451588/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101218425453451588/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101218243817717713/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-10T18:50:31Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101218243817717713", "type": "Note", "summary": null, "inReplyTo": null, "published": "2018-12-10T18:50:31Z", "url": "https://metalhead.club/@mariusor/101218243817717713", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101218243817717713", "inReplyToAtomUri": null, "conversation": "tag:mastodon.technology,2018-12-10:objectId=11179792:objectType=Conversation", "content": "<p>@jdormit@mastodon.technology @cj@mastodon.technology I&#39;m also percolating a similar idea about a unified federated identity server, but I got nothing more at the moment. Would love to be kept in the loop for any discussions.</p>", "contentMap": { "en": "<p>@jdormit@mastodon.technology @cj@mastodon.technology I&#39;m also percolating a similar idea about a unified federated identity server, but I got nothing more at the moment. Would love to be kept in the loop for any discussions.</p>" }, "attachment": [], "tag": [], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101218243817717713/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101218243817717713/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101218243817717713/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101218243817717713/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101218243817717713/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101218164919991657/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-10T18:30:27Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101218164919991657", "type": "Note", "summary": null, "inReplyTo": null, "published": "2018-12-10T18:30:27Z", "url": "https://metalhead.club/@mariusor/101218164919991657", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101218164919991657", "inReplyToAtomUri": null, "conversation": "tag:metalhead.club,2018-12-10:objectId=2449181:objectType=Conversation", "content": "<p>In a bit of good news, it appears my svg fill: currentColor bug might get fixed for Firefox 65. :firefox: </p><p><a href=\"https://metalhead.club/tags/firefox\" class=\"mention hashtag\" rel=\"tag\">#<span>firefox</span></a> <a href=\"https://metalhead.club/tags/bug\" class=\"mention hashtag\" rel=\"tag\">#<span>bug</span></a></p>", "contentMap": { "en": "<p>In a bit of good news, it appears my svg fill: currentColor bug might get fixed for Firefox 65. :firefox: </p><p><a href=\"https://metalhead.club/tags/firefox\" class=\"mention hashtag\" rel=\"tag\">#<span>firefox</span></a> <a href=\"https://metalhead.club/tags/bug\" class=\"mention hashtag\" rel=\"tag\">#<span>bug</span></a></p>" }, "attachment": [], "tag": [ { "type": "Hashtag", "href": "https://metalhead.club/tags/firefox", "name": "#firefox" }, { "type": "Hashtag", "href": "https://metalhead.club/tags/bug", "name": "#bug" }, { "id": "https://metalhead.club/emojis/230899", "type": "Emoji", "name": ":firefox:", "updated": "2023-01-29T14:04:02Z", "icon": { "type": "Image", "mediaType": "image/png", "url": "https://media.metalhead.club/custom_emojis/images/000/230/899/original/677849b16a0fb89d.png" } } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101218164919991657/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101218164919991657/replies?min_id=101268330410665258&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101218164919991657/replies", "items": [ "https://metalhead.club/users/mariusor/statuses/101268330410665258" ] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101218164919991657/likes", "type": "Collection", "totalItems": 0 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101218164919991657/shares", "type": "Collection", "totalItems": 0 } } }, { "id": "https://metalhead.club/users/mariusor/statuses/101211445698393677/activity", "type": "Create", "actor": "https://metalhead.club/users/mariusor", "published": "2018-12-09T14:01:40Z", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://playvicious.social/users/jalcine" ], "object": { "id": "https://metalhead.club/users/mariusor/statuses/101211445698393677", "type": "Note", "summary": null, "inReplyTo": "https://playvicious.social/users/jalcine/statuses/101206920176993821", "published": "2018-12-09T14:01:40Z", "url": "https://metalhead.club/@mariusor/101211445698393677", "attributedTo": "https://metalhead.club/users/mariusor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://metalhead.club/users/mariusor/followers", "https://playvicious.social/users/jalcine" ], "sensitive": false, "atomUri": "https://metalhead.club/users/mariusor/statuses/101211445698393677", "inReplyToAtomUri": "https://playvicious.social/users/jalcine/statuses/101206920176993821", "conversation": "tag:playvicious.social,2018-12-08:objectId=3288943:objectType=Conversation", "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://playvicious.social/@jalcine\" class=\"u-url mention\">@<span>jalcine</span></a></span> I &quot;solved&quot; this issue in go, by having an interface which can refer to ObjectID/IRI elements the same way as a full Object. It makes it hell to typecast in the places where you actually need the objects, but oh well...</p>", "contentMap": { "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://playvicious.social/@jalcine\" class=\"u-url mention\">@<span>jalcine</span></a></span> I &quot;solved&quot; this issue in go, by having an interface which can refer to ObjectID/IRI elements the same way as a full Object. It makes it hell to typecast in the places where you actually need the objects, but oh well...</p>" }, "attachment": [], "tag": [ { "type": "Mention", "href": "https://playvicious.social/users/jalcine", "name": "@jalcine@playvicious.social" } ], "replies": { "id": "https://metalhead.club/users/mariusor/statuses/101211445698393677/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://metalhead.club/users/mariusor/statuses/101211445698393677/replies?only_other_accounts=true&page=true", "partOf": "https://metalhead.club/users/mariusor/statuses/101211445698393677/replies", "items": [] } }, "likes": { "id": "https://metalhead.club/users/mariusor/statuses/101211445698393677/likes", "type": "Collection", "totalItems": 1 }, "shares": { "id": "https://metalhead.club/users/mariusor/statuses/101211445698393677/shares", "type": "Collection", "totalItems": 0 } } } ] }