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", "https://ublog.kimapr.net/schemas/litepub-0.1.jsonld", { "@language": "und" } ], "actor": "https://ublog.kimapr.net/users/kimapr", "attachment": [], "attributedTo": "https://ublog.kimapr.net/users/kimapr", "cc": [ "https://ublog.kimapr.net/users/kimapr/followers" ], "content": "<p>Updated my userscript for the latest akkoma shenanigans </p><pre><code>// ==UserScript==\n// @name Akkoma MFM bomb fix also remove some of the stupid ellipses\n// @version 1\n// @grant none\n// ==/UserScript==\n\nif ((document.querySelector(&quot;noscript&quot;)??{}).innerText == &quot;To use Akkoma, please enable JavaScript.&quot;) {\n let style = document.createElement(&quot;style&quot;);\n style.textContent=`\n._mfm_x2_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x4_ {\n font-size:100%;\n}\n\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name, .user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n white-space: unset;\n}\n\n`\n document.head.append(style);\n}\n\ndocument.addEventListener(&quot;DOMContentLoaded&quot;,_=&gt;{\n try {\n [...document.styleSheets]\n .map(e=&gt;{try{return e.cssRules}catch{}}).filter(e=&gt;e).map(e=&gt;[...e])\n .flat()\n .filter(e=&gt;e.selectorText==&quot;.user-info.-compact .container&quot;)\n [0].style.gridTemplateAreas=&quot;&quot;;\n } catch {}\n})\n</code></pre>", "contentMap": { "en": "<p>Updated my userscript for the latest akkoma shenanigans </p><pre><code>// ==UserScript==\n// @name Akkoma MFM bomb fix also remove some of the stupid ellipses\n// @version 1\n// @grant none\n// ==/UserScript==\n\nif ((document.querySelector(&quot;noscript&quot;)??{}).innerText == &quot;To use Akkoma, please enable JavaScript.&quot;) {\n let style = document.createElement(&quot;style&quot;);\n style.textContent=`\n._mfm_x2_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x2_ ._mfm_x4_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x3_ ._mfm_x4_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x2_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x3_ ._mfm_x4_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x2_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x3_,\n._mfm_x4_ ._mfm_x4_ ._mfm_x4_ {\n font-size:100%;\n}\n\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name, .user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\n white-space: unset;\n}\n\n`\n document.head.append(style);\n}\n\ndocument.addEventListener(&quot;DOMContentLoaded&quot;,_=&gt;{\n try {\n [...document.styleSheets]\n .map(e=&gt;{try{return e.cssRules}catch{}}).filter(e=&gt;e).map(e=&gt;[...e])\n .flat()\n .filter(e=&gt;e.selectorText==&quot;.user-info.-compact .container&quot;)\n [0].style.gridTemplateAreas=&quot;&quot;;\n } catch {}\n})\n</code></pre>" }, "context": "https://ublog.kimapr.net/contexts/bb70197d-c592-4c8d-a72a-a740e44f59cf", "conversation": "https://ublog.kimapr.net/contexts/bb70197d-c592-4c8d-a72a-a740e44f59cf", "id": "https://ublog.kimapr.net/objects/cd4607b8-18d4-4b9f-88f3-0841e60ea957", "published": "2025-04-04T19:59:38.683351Z", "repliesCount": 1, "sensitive": true, "source": { "content": "Updated my userscript for the latest akkoma shenanigans \r\n```\r\n// ==UserScript==\r\n// @name Akkoma MFM bomb fix also remove some of the stupid ellipses\r\n// @version 1\r\n// @grant none\r\n// ==/UserScript==\r\n\r\nif ((document.querySelector(\"noscript\")??{}).innerText == \"To use Akkoma, please enable JavaScript.\") {\r\n let style = document.createElement(\"style\");\r\n style.textContent=`\r\n._mfm_x2_ ._mfm_x2_ ._mfm_x2_,\r\n._mfm_x2_ ._mfm_x2_ ._mfm_x3_,\r\n._mfm_x2_ ._mfm_x2_ ._mfm_x4_,\r\n._mfm_x2_ ._mfm_x3_ ._mfm_x2_,\r\n._mfm_x2_ ._mfm_x3_ ._mfm_x3_,\r\n._mfm_x2_ ._mfm_x3_ ._mfm_x4_,\r\n._mfm_x2_ ._mfm_x4_ ._mfm_x2_,\r\n._mfm_x2_ ._mfm_x4_ ._mfm_x3_,\r\n._mfm_x2_ ._mfm_x4_ ._mfm_x4_,\r\n._mfm_x3_ ._mfm_x2_ ._mfm_x2_,\r\n._mfm_x3_ ._mfm_x2_ ._mfm_x3_,\r\n._mfm_x3_ ._mfm_x2_ ._mfm_x4_,\r\n._mfm_x3_ ._mfm_x3_ ._mfm_x2_,\r\n._mfm_x3_ ._mfm_x3_ ._mfm_x3_,\r\n._mfm_x3_ ._mfm_x3_ ._mfm_x4_,\r\n._mfm_x3_ ._mfm_x4_ ._mfm_x2_,\r\n._mfm_x3_ ._mfm_x4_ ._mfm_x3_,\r\n._mfm_x3_ ._mfm_x4_ ._mfm_x4_,\r\n._mfm_x4_ ._mfm_x2_ ._mfm_x2_,\r\n._mfm_x4_ ._mfm_x2_ ._mfm_x3_,\r\n._mfm_x4_ ._mfm_x2_ ._mfm_x4_,\r\n._mfm_x4_ ._mfm_x3_ ._mfm_x2_,\r\n._mfm_x4_ ._mfm_x3_ ._mfm_x3_,\r\n._mfm_x4_ ._mfm_x3_ ._mfm_x4_,\r\n._mfm_x4_ ._mfm_x4_ ._mfm_x2_,\r\n._mfm_x4_ ._mfm_x4_ ._mfm_x3_,\r\n._mfm_x4_ ._mfm_x4_ ._mfm_x4_ {\r\n font-size:100%;\r\n}\r\n\r\n.user-profile .user-profile-fields .user-profile-field .user-profile-field-name, .user-profile .user-profile-fields .user-profile-field .user-profile-field-value {\r\n white-space: unset;\r\n}\r\n\r\n`\r\n document.head.append(style);\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\",_=>{\r\n try {\r\n [...document.styleSheets]\r\n .map(e=>{try{return e.cssRules}catch{}}).filter(e=>e).map(e=>[...e])\r\n .flat()\r\n .filter(e=>e.selectorText==\".user-info.-compact .container\")\r\n [0].style.gridTemplateAreas=\"\";\r\n } catch {}\r\n})\r\n```", "mediaType": "text/markdown" }, "summary": "javascript code", "tag": [], "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "type": "Note" }