9.1 KiB
Using ActivityPub
user=> (require '[clj-activitypub.core :as activitypub]) nil user=> (require '[clj-activitypub.webfinger :as webfinger]) nil user=> (require '[clojure.walk :refer [keywordize-keys]]) nil user=> (require '[clojure.pprint :refer [pprint]]) nil user=> (def base-domain "mastodon.scot") #'user/base-domain user=> (def account-handle "@simon_brooke@mastodon.scot") #'user/account-handle user=> (in-ns 'user) #object[clojure.lang.Namespace 0x525575 "user"] user=> (activitypub/parse-account account-handle ) {:domain "mastodon.scot", :username "simon_brooke"} user=> (map *1 [:domain :username]) ("mastodon.scot" "simon_brooke") user=> (apply webfinger/fetch-user-id *1) "https://mastodon.scot/users/simon_brooke" user=> (activitypub/fetch-user *1) {"followers" "https://mastodon.scot/users/simon_brooke/followers", "inbox" "https://mastodon.scot/users/simon_brooke/inbox", "url" "https://mastodon.scot/@simon_brooke", "@context" ["https://www.w3.org/ns/activitystreams" "https://w3id.org/security/v1" {"identityKey" {"@type" "@id", "@id" "toot:identityKey"}, "EncryptedMessage" "toot:EncryptedMessage", "Ed25519Key" "toot:Ed25519Key", "devices" {"@type" "@id", "@id" "toot:devices"}, "manuallyApprovesFollowers" "as:manuallyApprovesFollowers", "schema" "http://schema.org#", "PropertyValue" "schema:PropertyValue", "Curve25519Key" "toot:Curve25519Key", "claim" {"@type" "@id", "@id" "toot:claim"}, "value" "schema:value", "Hashtag" "as:Hashtag", "movedTo" {"@id" "as:movedTo", "@type" "@id"}, "discoverable" "toot:discoverable", "messageType" "toot:messageType", "messageFranking" "toot:messageFranking", "cipherText" "toot:cipherText", "toot" "http://joinmastodon.org/ns#", "alsoKnownAs" {"@id" "as:alsoKnownAs", "@type" "@id"}, "featured" {"@id" "toot:featured", "@type" "@id"}, "featuredTags" {"@id" "toot:featuredTags", "@type" "@id"}, "Ed25519Signature" "toot:Ed25519Signature", "focalPoint" {"@container" "@list", "@id" "toot:focalPoint"}, "fingerprintKey" {"@type" "@id", "@id" "toot:fingerprintKey"}, "Device" "toot:Device", "publicKeyBase64" "toot:publicKeyBase64", "deviceId" "toot:deviceId", "suspended" "toot:suspended"}], "devices" "https://mastodon.scot/users/simon_brooke/collections/devices", "manuallyApprovesFollowers" false, "image" {"type" "Image", "mediaType" "image/jpeg", "url" "https://media.mastodon.scot/mastodon-scot-public/accounts/headers/109/252/274/874/045/781/original/e1f1823c4361fa27.jpg"}, "endpoints" {"sharedInbox" "https://mastodon.scot/inbox"}, "id" "https://mastodon.scot/users/simon_brooke", "publicKey" {"id" "https://mastodon.scot/users/simon_brooke#main-key", "owner" "https://mastodon.scot/users/simon_brooke", "publicKeyPem" "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2/6GgLJgJlPhhqFm1tUQ\noSLnWxhDwq4HlZIHrBsVjkSvUAnHKqq42Q/hta+fkWB8rmTFpmjLXDj/Fi0uejvT\nBc+KrLwfX/yR8+G87afGCRS3CaumoLJ7zkBIlsFzIKMoIke1D3QuHX95yGGXs+hp\nmyxt/+CXRyZjK7u9NG7SMRUlpwvOlpD12Aei35Nb8NSr03JvY8/WVMIbWrecyI0b\nAlwj6axxHx7J15Yo+aEtKzZ2OFKXf+sh0QF9BEnYcmVKYlR6kiOglLFHKdCBUSYi\ni9Flv00TydqlGvR5fpShBqORiy0M/FVtNXlz2sNBEsGB2meipkjh+cRLzTbYo4KL\nJwIDAQAB\n-----END PUBLIC KEY-----\n"}, "summary" "
Anarcho-syndicalist, autistic, crofter, cyclist, depressive, entrepreneur, geek, Zapatista. Politics & environment, especially <a href="https://mastodon.scot/tags/LandReform" class="mention hashtag" rel="tag">#LandReform. he/him.
Twitter: <span class="h-card"><a href="https://mastodon.scot/@simon_brooke" class="u-url mention">@simon_brooke
GitHub: simon-brooke
FetLife: Simon_Brooke
Credo: Life is harsh. What we can do - and what we should do - is strive to make it less harsh for the people around us.
", "attachment" [{"type" "PropertyValue", "name" "Home Page", "value" "<a href="https://www.journeyman.cc/~simon/" target="_blank" rel="nofollow noopener noreferrer me"><span class="invisible">https://www.<span class="">journeyman.cc/~simon/<span class="invisible">"}], "name" "Simon Brooke", "tag" [{"type" "Hashtag", "href" "https://mastodon.scot/tags/landreform", "name" "#landreform"}], "published" "2022-10-29T00:00:00Z", "preferredUsername" "simon_brooke", "discoverable" true, "alsoKnownAs" ["https://mastodon.social/users/simon_brooke"], "featured" "https://mastodon.scot/users/simon_brooke/collections/featured", "featuredTags" "https://mastodon.scot/users/simon_brooke/collections/tags", "type" "Person", "outbox" "https://mastodon.scot/users/simon_brooke/outbox", "following" "https://mastodon.scot/users/simon_brooke/following", "icon" {"type" "Image", "mediaType" "image/png", "url" "https://media.mastodon.scot/mastodon-scot-public/accounts/avatars/109/252/274/874/045/781/original/172e8f7530627e87.png"}} user=> (def sb (keywordize-keys *1)) #'user/sb user=> (:outbox sb) "https://mastodon.scot/users/simon_brooke/outbox" user=> (require '[clojure.data.json :as json]) nil user=> (slurp (:outbox sb)) Execution error (IOException) at sun.net.www.protocol.http.HttpURLConnection/getInputStream0 (HttpURLConnection.java:1894). Server returned HTTP response code: 403 for URL: https://mastodon.scot/users/simon_brooke/outbox user=> (pprint sb) {:inbox "https://mastodon.scot/users/simon_brooke/inbox", :name "Simon Brooke", :@context ["https://www.w3.org/ns/activitystreams" "https://w3id.org/security/v1" {:schema "http://schema.org#", :messageType "toot:messageType", :messageFranking "toot:messageFranking", :identityKey {:@type "@id", :@id "toot:identityKey"}, :Hashtag "as:Hashtag", :deviceId "toot:deviceId", :publicKeyBase64 "toot:publicKeyBase64", :value "schema:value", :Ed25519Key "toot:Ed25519Key", :featured {:@id "toot:featured", :@type "@id"}, :Curve25519Key "toot:Curve25519Key", :discoverable "toot:discoverable", :focalPoint {:@container "@list", :@id "toot:focalPoint"}, :suspended "toot:suspended", :fingerprintKey {:@type "@id", :@id "toot:fingerprintKey"}, :Ed25519Signature "toot:Ed25519Signature", :cipherText "toot:cipherText", :EncryptedMessage "toot:EncryptedMessage", :alsoKnownAs {:@id "as:alsoKnownAs", :@type "@id"}, :featuredTags {:@id "toot:featuredTags", :@type "@id"}, :devices {:@type "@id", :@id "toot:devices"}, :toot "http://joinmastodon.org/ns#", :movedTo {:@id "as:movedTo", :@type "@id"}, :Device "toot:Device", :PropertyValue "schema:PropertyValue", :manuallyApprovesFollowers "as:manuallyApprovesFollowers", :claim {:@type "@id", :@id "toot:claim"}}], :featured "https://mastodon.scot/users/simon_brooke/collections/featured", :type "Person", :discoverable true, :icon {:type "Image", :mediaType "image/png", :url "https://media.mastodon.scot/mastodon-scot-public/accounts/avatars/109/252/274/874/045/781/original/172e8f7530627e87.png"}, :following "https://mastodon.scot/users/simon_brooke/following", :summary "Anarcho-syndicalist, autistic, crofter, cyclist, depressive, entrepreneur, geek, Zapatista. Politics & environment, especially <a href="https://mastodon.scot/tags/LandReform" class="mention hashtag" rel="tag">#LandReform. he/him.
Twitter: <span class="h-card"><a href="https://mastodon.scot/@simon_brooke" class="u-url mention">@simon_brooke
GitHub: simon-brooke
FetLife: Simon_Brooke
Credo: Life is harsh. What we can do - and what we should do - is strive to make it less harsh for the people around us.
", :publicKey {:id "https://mastodon.scot/users/simon_brooke#main-key", :owner "https://mastodon.scot/users/simon_brooke", :publicKeyPem "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2/6GgLJgJlPhhqFm1tUQ\noSLnWxhDwq4HlZIHrBsVjkSvUAnHKqq42Q/hta+fkWB8rmTFpmjLXDj/Fi0uejvT\nBc+KrLwfX/yR8+G87afGCRS3CaumoLJ7zkBIlsFzIKMoIke1D3QuHX95yGGXs+hp\nmyxt/+CXRyZjK7u9NG7SMRUlpwvOlpD12Aei35Nb8NSr03JvY8/WVMIbWrecyI0b\nAlwj6axxHx7J15Yo+aEtKzZ2OFKXf+sh0QF9BEnYcmVKYlR6kiOglLFHKdCBUSYi\ni9Flv00TydqlGvR5fpShBqORiy0M/FVtNXlz2sNBEsGB2meipkjh+cRLzTbYo4KL\nJwIDAQAB\n-----END PUBLIC KEY-----\n"}, :endpoints {:sharedInbox "https://mastodon.scot/inbox"}, :preferredUsername "simon_brooke", :id "https://mastodon.scot/users/simon_brooke", :alsoKnownAs ["https://mastodon.social/users/simon_brooke"], :outbox "https://mastodon.scot/users/simon_brooke/outbox", :url "https://mastodon.scot/@simon_brooke", :featuredTags "https://mastodon.scot/users/simon_brooke/collections/tags", :devices "https://mastodon.scot/users/simon_brooke/collections/devices", :image {:type "Image", :mediaType "image/jpeg", :url "https://media.mastodon.scot/mastodon-scot-public/accounts/headers/109/252/274/874/045/781/original/e1f1823c4361fa27.jpg"}, :tag [{:type "Hashtag", :href "https://mastodon.scot/tags/landreform", :name "#landreform"}], :followers "https://mastodon.scot/users/simon_brooke/followers", :published "2022-10-29T00:00:00Z", :manuallyApprovesFollowers false, :attachment [{:type "PropertyValue", :name "Home Page", :value "<a href="https://www.journeyman.cc/~simon/" target="_blank" rel="nofollow noopener noreferrer me"><span class="invisible">https://www.<span class="">journeyman.cc/~simon/<span class="invisible">"}]}