From f15b2f3ac26c7dd495449d0456273d5f005332ab Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 1 Jul 2022 11:49:26 +0100 Subject: [PATCH 1/3] Shared inbox image --- .../activitypub-tutorial-shared-inbox.png | Bin 0 -> 27429 bytes specification/activitypub.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 specification/activitypub-tutorial-shared-inbox.png diff --git a/specification/activitypub-tutorial-shared-inbox.png b/specification/activitypub-tutorial-shared-inbox.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c5dbcd8073a1903913dee3388838d7056e5cf7 GIT binary patch literal 27429 zcmeFZWmKHa(k?u>y9IZ5cZc9GxVyW%JAq)q9fAb6;O>?n3GVLh4rlUgdG}uD{MqaK z-hX>$aj%)~s;j!B>+Y%<<`Ym+3JD$$9smF!$w*76007_`000;kEHr3@EVx1h0Kla5 zQPXl$G4>>Ja&fePG54~z006v}sxqxp@%dfC-%YU$z)N~+2|n+8!5DOP zBd8n&`0#mDoYJW$N>Z^0e>g*>^?W-Pu6ai3a%n!PpVjc8&8=B+jSr9 z04>Gjd2$zm^wTFMq}-YNEGH-6hWDOs%}W#<*rR@SK!Cf3TjR{ja_HNal)TA+QH@us z!Pm?xg6_y7!w|gyp|`tRrKiB86r88PHWvrsA3Mx7&sbZQlHC%9!uMw$>$!`ABjLcb z^OAs%3Q9Zk8;N$yW;Cvd1N`<8(kvNNY@de4SY-EifLf&%mmft6Zij+c7Cl)`5&J zEXmYw)Um0my5rNaY1O8$YMS%G7rcYC(qZnroAV_OwMCu~c(~aJVztP&-m`W{)way? zkCS|??66Bw*VOfoCG=d{7-nieYkDT4CXhYcG5wb9vvg>wCwofedEKb%(0O{tA7F8s zHP`L`E;`r8ZF^}h3p1Cey*;ZFm`w(&D9=l7{A*Was6s_VRBHEUbAqedUNZYSxxR6t zWTs0~DBDNqYq(zy4~hIZ!no>tZ%W>-obQy5m+Rx%sz+}uu7Q)w=k-mJ;>YGE)8X*t zN^Zo%pBIL7+Fj~c;In8dPRGY+q=7{SQ&vAQnY1&PJtqiM4xJ~w9}}pCK$dl{vyJ>?d*yb^KYFe@QV9mDe528VTsh$Udm2^#7VE?oW8ADEUV5gN0zHDD`oh= z#xKa4@$SQ|F88$e%J*d1yp2S(sn*Nui$heh6qV;|%}_35;9R2~(ZmZCFgJbO?+0)D z5M&6<8C#`-b7!;`(SD5Zy-DGmhsI-K565!r+rz(q zN%fJ#&9D&~XbkpgcPDqNmDZ-kp{q~4%78=ATG|qon+mm_XMdq}Rovp@C7gAA7I0RH zd^5j5ZXZA39P=D+J16M)_-RJ&b#d33Dd~EMI~L%VL#ip)k;UY0d#i` z3`Q~kGy9AtI_p&lPmif~-KE^yc-@a9l;Iu+*|JX2yT33b`L3G5&^Fp7hq=026VPPHBp3)P*2s(`~8=9JDU{W)Ee@1~k{DYO4z6O$GT&@lBDOO`~}EaMiEBZMPHYdFlGhF78?wq~xQ?HM@+ zt&}yEl2@R{<@f0#qbPoim+%30Q!R#%l7#TPX{43MmUNLw#`F(XKK|_F-ageJt|z}- zZ~WHS>`=YhsU>R^1E709FubHwf_yFMRj{1_g1M~lR$slO=VdJ{CH#@diyjC~Lb&5J zQwz`_w}}ft1``6;nJ=pg(h1|1f%-DB=nSki@hZ#F?D0o8n(Qy~VKSFaR?c9;iC#Ae z<(@m7LCgy4A^B3uKJS+h1Ib0TglX3brV-XrstF62_%M)d*3K|u*Ux>0Q7DD*Ny0#E zgawiJF5@E-p-DoSd{6$OMzU`tM&Vb4Tt3;L!(mjp|4^By2jwK;lsDrDx82dm zxX$FmJq5+Slyi7gl+ zBpk&j&}_^*I45!l%G`oML-?F^p^S}e#n3Hv5KYi4%0WPquiH=J#&?;T%`OM2aV22b z73Oh2#!yNS6OS=|`{4A@#DO8%yTZ?6vvQfiEx{}X$feX$5yoEUg4rZI$ORfB>7XPd z1gDF56y+H6nDx5{x$@DRlg5F^YC4R_U<$&_*9QGk7Az;50zdd7=qff_KZ&GeRJz$E zZ;5hGD-?gSSVM}|f>9|}o|x3g=HiOpr-qzPK_F5f;(Y*)E}v#{D`PY2P#mX}huaz^ z`|;R^;&|;w9N#?EPO$N4ae8(rR#p+61ja6+3~lWq+No7_DDL)b+S=O4*AIE%P3^}xk@en&puQmq4 zS2LC`umugDd%gm#om7X)2t|AGcKSpH#h@Ka z{Q7zi;p54~hs!7aEOCT&g=(RivyiR+LRDQ|W!K<*03Ig;X08w{hHoVw#N^44os8oX zEzlFyGa(A+&B0nu-_v2f5l*l}({&FCOWQW3`avi?)r`znex(Cp42GgJ_5*scjla8q z|04=_a0ul<-q!K8CN3lo#N%uNEOav)(dZ2om8SR%6q?N50Tug-c zaUY?yOBk6x+8_(UH))~#Y=;BB!6wA0W$31vTMIxRs#g$WlR$Y;8`8ip%ia1s2Vpa# zLU_u7Afs1(9La4sxgqoGN9nC4$hP3>U%5}Up$sLaH8h#PB%}~kPik-{F+a0tb}GNp zrzK@_UKO+D+GmdD1`cVk60(%Y6SriwlQg8t+99xhUP9V+ZciI_vb3a{V)J=;sfr9| zXBtB{b&^rHhaR$o4{B+n6J}-^M`Q@UHsLE1$8_Bpf6V6eT4kKcZ29m*AMJ*#N=$O; z#CkC#vO$s1(#!VC+A4lUV>Q9(>)l>GO`-@)3+m^S^g{Wy2~F-NpHlr=cO!;_ zXkHPXuXmc?A_sdb^$Rse^kzim^lxy?bU9pbahVXx$%TXNf*!M{_%(j3DOtm(v1-dX znPd{FCkr}_hmbOcf!lb0a@}wJZW?!Q_hAg*OZpWV+++5x^?Ti26TchtR-mujyBC-e zSnZgJkz_+`a8YpK9P)#t_fU3$Nf5r31XTrFqN0}`8ETF*%L|dgwFybj7Q^k#jzP^w zFnoW%Xt5uPobMt*&Fqk)DApH^vQm zZ@RGevK*z6pdLVe^c=_eKE!fR8Nn4@Yh|oJQv_byH-b)sypzdUFaVqhsVgWWc+Ngh zC7u+i{M-wtnEt@klTW|!sUgVe0}NX%_qr*L9WKi6 zXpsz9_DX3I5Z^A9?bvy=ri*&r3&9g0rJTMS{6>vm1Vi{RRx&)2mCZ5~p|DM8l@>x4 zq6-VFGK%&gZU;l}fW$nH93tjsfvYqG8CIoi(exo!F`U1rbEo(t#s%!7kuHJnB4kB6 zHZS%vm zk_99u(R}oQ2loUE6rW5|SSM^R(Xzyf-f4c3BWd&#baB?MPUlg>Ilvf!yK3pPoDSY8(1q-=X%D`n|7O(v3;!MA(GZwQ&>GX{zw zJ@KY6%vqGdL=+MS^@00Ss}LGfoM_*Eq#VqDg4&uHtqJSEmiuUoHeOb~LKZR<(ve-F zj}yTVKaj}K)21YyiW+TUdtijCCl48SB*W5!bjYni0hi&q=^^CZ17Es>#O9jvhR6k+ zzh;k2pM0^JtGOI)uh{n1#QTD{9V;nGgcY$63AQ}*#A5oS1V=Lcv9Wm7ihRlYU@%ms zR7na&>sJZ+O}^AfR4m?wMX1}ssYERkp{Vo=dr1D8C8L!I!;=n2gTt0jlz-UnLZx(! zP{@y|j3RnuBow;TU>ZqrmTRV2rC=<9j%)>=*~PM_>QQ32A;JRF1e1QLtUWm^pkw=& z-cKZGo8!ZHV+y>V94%_JQ4#wc>}_-(taK=BSTvPUB$5Uq6Ir?-rs>bK_5jYDhytqDd(UUgoa4B6bXNna+njE? z>qLSPbTY{JeCuA&#>%~yD735D&YXcRX@i~AQ#4<8aOF{3BEY{P`Z3^4R_lpfwu zDWW>tdnJ}FBZt>R7BhW@XfFoH#7#Nr0eQI!4$e}jv??lNuHEI61Wm7$Es+u(_|1yRxSjUH>$Ey`%wmt!Se_C1`6ycu)F9z1^9mfEBH#dMuL21B+r6?7pgGELPF>wzTg4d2B zKKH!MucZ8AXjk?|Oj{_If?*?69^5N(d*O@|>}0BmoTP&Ck0fI#0-{8!ZADU^cpO&H zu-agIrE6$rsAB$~RKAr(_baXK4`|<0l%H`}OO8aw-3{t{f?fD|P5~v%ifvRITz=nR z9N6(W>kvv$Nhqg~bCZfFT8&7D@83Xjw8+S9r%5eNSxa6K%g-xn;S9)VOmJ+qW!93E z%p&DZheo=+A0JmdtF${70h7o0GTZyNbg$ED6Z_iS!MuVih`M4^-z7U=Bl6bX1Z?0W6kS)l_-tsN8$LjQE$WEt(c=f*0*dz80S2 zqYXOP5Mh!yMa5_)l`Vgn0?E%fMCaQbzR2gRFtD-k)0Ne%BGdNlIr349E9D=2Bw@kA z(E30BWH43yqHdr~fS9D2+kvIbvzihQis7oHLuzFh?Ec=ZY0>_*wx#1m;XHIEEEwu#WYpPKXG5T&7l;u!R}Pt{5lKG@+#xgSv43J)MdZ1)mBC8 z+p~+za$z=7aw03LBUS+D$os{;8}z12(y=#QFdNQsWtF=L+iVzFLDixLOMGe5Q`}OvYx8Cgx0D_D-Mp z0T(k1J{5_Ne}@3Q6C|^8b93TjX7=>-Wb$NZa&)m|X65DOWoBVxW@BRnQ82oCJGdEp zF*>-C|AF`$hJ?ARsf)Ffo3*0@$sbH(6GwM9K{7JXJjp-SXYZt-@K1OL*S}i)LhcT+`*0fUm?s)|H<#< z?qc_sI%cNK=62@xAW~P5RMvkJDJ7!-{3pjB6Ifc?JN?B4GWNewx>;NNkFox3ZGUF| zQs-Y60%HFs?!Qt0L-)UkK~xF~d=ieP?thjiBOyrkM?RmKqp7tS-(N3T*f==NdAUs) z%}m%#7&$ChIT(33&Dj_^xJ}sEdAN94OwCyT1xm)j)y>$!)cg+=2%O0pgu~9p!)t2J z%FW2m#>L6V!NO+DXu`?G!f4LIYHV)7&dS1TZt^b>N-ox*s5G|w*H!(2G6O-Ga(PaB#7kaI$m$1!ZQ+_tDYC-WcRgYkOl$b7m(8 z%fBZ67@SWOC?iP5#>DbJBS1T2HwzGhAep?igS*%NOsHAgo2$AR|FI@37bh1NHyaxV z3p*PxEAQU~{e`Dt?&1oH#6OsH1&kL>$jbN$y`|B(g$BjW!?*MH6RA6ei(BK~i5{r_ez z`2VTt%pE`nJx@@@raHwF1*-O-P2{8`01$tkl$A{KpbCx6h=B3u4-Al*{Q)!x z<0hjZ39|Tj2Et!7Wmkm5Rg$HYlCvgXl2Q0 zmA_Dyf7JM-ZYSrExPv|X>-+YAqKPnn-1XK%fJ?5~a2)}ADrJQPx}^K3uLEl`2}a_S zJ~c6esTtmZ47KeL4Dg?zY7w&6?+-ERcF!hGayl)~S6Vd>+NwjNKo2T~EhZ8&GBT4| z(BC&xX%ER#@(Y*z#*}9i@HnvsMKbs|ALz{a?Z|r4yC{IuN`4 z9EBD0DkLmj5!}>o*O|?5c?Y3dJhyfHe2=M$29_R2G0@PI7vS{gZ>`pX;wLpXgYyJK z_sU~1d^$!g22qH7VFUfAKf;n~LHtpv7akCB{fpFZms&|2;V37ww5r*mx5Dt5fg<9M zM(|0cgdJ~3zf`?mhL!X+O2LDg*A_kvH+PQViAYFDxbkZ?-rQ_W3%_CI+a}TNX9#yi zKwxoJLV@NuJVR&io6iSC9M6k>{BlP!d^(N!+XQ!LO3CrU-BPW^4k1Pz7YPI_e_J}d47 z>28J*q>fiyMaYn6*~cXFd_)&;e#LrN`KmXPEuIX*`zomA-rni8RhZ;;IUfJZvl{cl z=i95`$RV#*?IGQZ*>Oq>BXnjING5Su#_&E5G#w;AhTr*;+@P{%3NrNxwx#@h+w)>gfP0DfS zyz<1a2OFaEE5pG@ToLLK7ez0Uq)fnO zy30W)_;_qHeBX7CVfXO5Jf&R&((prNNoMu&!b>~%WsUF)_ra?_d-rWL_~TH!aof2u ztnSZ+*78zFGFsd|B7{VJmNDpZo~sk$#Jl_VV2`x4#uyMpuZ;~)CtZE_yY7kanYW0h zrC-0K3Z6X5JLS%;CWIJZugG%_A9lJ9pH+jO z&&%(TO|QgKLmzQ!LJkqugGNT+R}P%xiTa{tNydM`g;iqN0;U%rW??4s`ue)xXpac> zA`|}Nmw)P{+j}2pCN~vGNg#D>#Te^E0khc74E0&3!AQ(x05+}JcZ}PFH@Nh-Fz=Ul z1xc>I@$%^r&2fNS0$nkx>`wUj{)~H*LYVi+*f=QWy`em!X@8gVgn+F6irjC^CoKL)2tnp2QxscUB#vF~Cg)POTaItL zv<*m39aw+iP_`Tz2B7d*I^@zNCT{cJHoHBx#Lv<*eORv;gx(F7BK`7(`bOuf4G9(Z znmV|xCbe6_yoLtx%0PBYkwBl&s&r_tP9i=pE= zeB%(DKvJ~;m^OT2mWB$)2+XY(eKoph(6b|x&wGV0@@`G*Cf~;q>AHPOIEF=@cXlFP zYh4&yk{WQ5lt9!dXhiaIy4bZQ5>EaCwL5JX?DE`+%C$@>s4f@)=_5xdA&V`K5{N~{ z=>OYM%AghRstV;ZakU#(d{;|SV|>(Rbd*I#ZET&-Nsjo`v+uV? zb-1v5xV1Pdm4`Pvd0n{k6&P0D`R^cLM`SaJd)|Qihdy(0`v0WmwD9xoAj)6$Bn^_5 zgQ3VEX6v8Lu752P2L$mG84lZ%LsxwAYA=DRUWzV5Qlr!q>Du#&nizI6}zKOHg-ZT3dnVc2>?qFF9|A?C-2z5KY?~ir!HcSd1^D$x@ z!nfcw5C>rNbhHkU1iPe4RJo+H`Fh$7CKhq1`wn@h%%=AzQKkpf9xu#vw5My0{FoQl zX?9i-R13yd43$<0O%@PL%ZMp50|~_wc)w=2DX$kfXxsAv^t>@CV&h$zwxKR)>O5*o zlZL2spnn=gTm3%dH0b0`8{uOUVLFL4?rzMBqTxgHxp&Mgq``@Er(GCjdcGUxF+#T= zqZ}Y2jhcj{-iF*+1*N0UcmuZo5Z|n0-1d$pecb%8CME{IBS{GeB1(&hfuOT3Abl>M zvSEUJV-n`|O^DD(W7y8<2^jlB^q8!@tmSV0a2`lQSfHW@@>SH*n zcQ|S^dLqAEyB3uDFv1kSE_7(7C>P^0gHT9hYlng9qjzF2xonm=ZJ=D0sh~|qq zSr)?+YF6PBlOYomP+b76YqM~xn-_vqLqgXDoAE4;JZ!je%I-z>qw^$LI;95BJu(fAGvlKvtGUtxl0kxpsa;yctbn!2S2Du zUn7tjHbRlHqD{G5ajH)#5(KX;B6fa5s9hj2pNRB()re~0S@*45B4N~qC@b}_U>+^HPE~>F8M0&=izweJbi5PEb=4AvzZyJ|uqOIx@@k zk;CX%euwOQ+}a4Gl#bC5>$-J-t*{^RNPc>YQ~stjML(9Wo+3`i(6!@Ip(lW41uM1t z4Gf?n3(b*+(N+kv6wWqsJcOb_Mvmb#&MPvXKd&DY(9eikkGOgm=CK#$_<0p?U4{54 zF%;<8h3)0y2y?TBe2~H0V^n+9btPr!Exv?b(8w)j@EuHq3_!T18Q`clR$7Cg;|n@4 zpva>H^xk)&C*}KH^@`{(bz&^#HbdNgYX^NJ3Pxg6ET}hn(*_&CJ=3Wn$b;9kh3Y9= z&YL*N8+lwIiOAHw$@+7~TsWfl4?tNwpH#f29niA64MXosAThBa;#q^^W7>KC zI362xwmd1``B7(aqeUbM3zX#wjoS!dx5H?mPT zKSd4>jreHM0qM<3p zku}>FCqmTIYVY*|=m&nkMDh{@u3vJF_*mkE2|AeRJKsEv#mYrAxD}scUX5{90?z8~mh<>Hwz`1kakme3xj1yN3Pm`_E_vdv%SFDG(AkBCxYSiz z2&AK^8Qwz?#oqwA`>V%YbF%7-*4&}l7N|PezM>~+hNXrW`Fg(oaDkxaeM2P{RD_=9Y z_qyUb!LbeI>ZtXS(*OPSUP}K@^5oPgZCN3zl!Fsj#e)CFHwC&0?NXFZHJ4aE!(_?D zq>A~!r-<}#dx$yOBY#%M^-=T?y17ybMN<5 zPaPo7CQ}&>xQS5@8s;`GH!uV{m+K#@ymc3Iv<;TV4;%ycUc|ac&AWn1L)Z`Qs_r$y zYH1Onpy;~^cYI<>F6BiypqtTO4qotDFB1j)u2%<|oLqFhQRmlSINkI-_ccg%)sbeh&m0sJ*|HuIL`)kV71T+=;EZu}S5q9NHEO(!- z^UypH2`3BIdk~Ag?fZ_prihLncvTzx1)>PWH}SDtZU^QuEo^PvN`MHxFn7W52nMXi z?-0qLQAjU=sfi~=W-=-dvxNBg$io6=F+pd{BmBwdlF5bcX<`ru9Ye(7kM)qJrOy;X{88LadIOO)@Gn+w*NtVv;@B(hkx_D@ps&LXoqnUX|nVpFYxS< zpo9MnmWMF7UZp;N<(kE)apD0PLj!+jkkXjm5sexK3UClQ%@9@OmQM7pv2hpY;g$P# zX;e!W>NmTWIC*-`J~83QC9YFTu#{0aHRj(dJI2g9!>O-I3XLP4s#zWEu?4tkgFk@i zBqt)r!~iA98z_2!&%4noVy;Cm-vdM;`2n3at=q<3cN1zt%@XYC0?~nfRZw9(R`6zY z1XQCHO%hFIZ#e}cRJ-_UVzwP3g*9%%ydlbMk8jsd@pr7H@b3xOc*9gO2sr)O_svr_ z<@x+iBq}N-yL;i;5^h{tcBZwz`Ir2A!Gma66nRO$sFI+6@pl!RReyv|(5(`gD${fy zj+wf~7VC1h%_m~ihdBMI+_T%>BBo<>0{2_!4WKiqE$uxxr9R7zOAAQMJPrJOFZ|9d zp@JvjL)9?UgGoZh>3Y!#b<}eI_#P%bdhzOY(Jg&&C_2M!7{0a!o~R1jLNL|73=^Ly zA3)Bkrwj={T&9r8PnDzLV93Jk)+;kg?znsf7j^O?0&)FjJ0;F3gdO83KYi5L^<&%8 zy0m@-{Kx57c1@U$`G$=WZQu??#aAa5zhk-?8^iZfOiZzxy_hMc5A&Fql7m6sPGZ`m zqL>V@vMziL(^3W8vm$~QL=FA?{?oy*a91T+ekj)V5o?du^1o4Ox#C@91Y zSb3mr$Dxg!9w|E;iIx@%6EqA@yXlnA4~cNe)UlQxF{X~kK&Muir8>bb13k%Lzj36O zkI`S9I5lgqJF*{hsjhW4(FKt0zV1fg`+}OQe zagoP^!Hwyoi1YjVT^wm4kuhRiWg?+kA66nNV^;^YE`t)}RJz@{VrgrAA6E4cJ@<^C zj_RcWs9m7;1+^9jv!I5dbXWw}bgFt5dfJjG+;dp2iy*QWFfa1pl+3TcEdRaeyU6^l z%;an5ZMeSIyKo*HW@ZB7wC0<~%D(kCxq^TPK0wdSU^o2Y4^G?uFaVQY#%Fogo!q^K zz!~h6XN`*LFprlY$J*8eqo=F&N9<=R2v8l1>%D4~HEct6)_&d<1+V#Uh3uE*dne4R zX~qh~?R+~#O#m1u2#nnmXGt>&8oMTuw^=-&x` z-GtKzX(FJrYK4#P3q8WUTn&fzjva@e-HOlQJ$Paknx~cZ)Sv=M~qB`h|X@QLDpadml z$i!?mi;Shm@4)->FayI~Lq7t5gon`1?RU#pzumho{)A-!utbeOSYd#Jhi|zv7JgW1O#UCGI0s!F(@) zQ`^)cmR2JeIniXM9uIux=<8gF$%$qLm@Mty#@vc#b*ckys#8iA!@Kv!JVfL^fHVmCIva*biBXX9w=~}h0g-a`3kMqy}p7~U`TruQNOeP zZc3bQgIQP|@BK9pDc=h2?|z;VG6bc`Z6(;|@N1TO8+tpuI2HO7bUjjog6XRpdFO>g zAaP$e;(m<#@UpGUlk8l9Z-}q|6yK?BBEUS z>oLu$D!ch$v*wNQecX2-C*y#l0E$Pq50hExm2k;$3`C7ueq-yj({tbMVg#|^S^!of z=TJ;Nv>p*h9#VsI$p>7?!Nr%KxRoVC>e{pqqs_#T0UL$9?XFNkfrglo3UIELLd;d= z=sMnIbzeYTvfVc+()CLc2@{Mx&T@MB&m$%)u? zCes@>F@Qqv3N-P45Lb=O5VAn(njdhd+0G0FLK|Uiwvm^&F46fbuiiBG0bpe73;o4s zfhayo8}m#*u}3PZSpP<1<1UeVV?Q-^7?X?D(EBQ8wv z@LL_!njsT(HQ6mTha3tq-+yRwo<9yInKgd-Ix8Cwan@5~nwSf*ThJYp;Exon)&ZOQ z{)TeUhy%TzjdQg58Ud=9+A8viR^SefHf%Y>D=LDMvrwwKCZ_Od7-&ZhseA zWH9YD0j2elfZVY>{dRO=n&@Ci`!NIYbI-6c5<(qu!WsQ@5nH>K6CfqzMND{|mt7pA zZlSN>RK+Cppa;~|9{%TNDkkJBoo(>CrSOB+5Vf6HLO|p7H^jgnSe+i<*k2UAW=FUZymy?swOTF~%sIMH=4A9445e%OHsh1^#?^^Yq_YeTHd9gbCw)k5TnD;}PW{Y7M<&9r z?}`0KDbljYOQ=Xb{*u6Q6%u%y&ns`RFLcO&C)-idOp&F)4C` z^du_NkBp#@=cGevGBN7GNUb+H8Tt-pk;OXGpn>mO0iXI=Kw}T5M4SsI;DIMo-wC+| zF`iZ@#rUE9QXWN3U0mHdA4iW34wHF&6GpykLs*~L&9WTISMx_pYb8#OB4=(qx zqvQPMCK1pH@5#3YRL%oTPEai>oLMeJgxxHKH(U@2V-v2TNuyJH+>WV9O-z`c{fidN zI@&piVodh-ROo!NoIm$lsoF;+tM!0OdAYGE$Coe`PV zfKIiJ0w*qTt1pG&hS5Kn}S^eP)PSG1;c=5A{XdmD4mFc4PsCG<6nbDG}k6 zdnpsrx40RjQ%(dbeFsm^?#=Te#BI;!LPo1IUKtWj{~cOa?Jo%lrs7iO8zu?WaY76A z5Cx3f%t)5#_!~!8{)S~tSPHR(2jvLaSCa;ruoWq`+rK$r=mAuX{ZKtGGn**w|YWmpvPu?AV`Q8?;LxxWYHc5)(|c*NCnbU`5Ut4WP0XS++V2Y)YMQaAW)*W3 zN2*6bMG^PT4FbmQrI)jXp?E&&_mPotgd1tz90=fQ@Fw-%2k#ltUFT73@!F%qGbs&^ z=*>vr+mTxK^5Q{v*^3qi3r}QP0wi|TPJBC{sPIZa@T1DR0S)QL?dGRq#%IgDkSCpRWk_100R06A}Ksm zK4DHDWp@cb!amg5!^0TA@P68ECBWav$ShP%3z5PSKp2|l)t)UXzCE_^kM9B$97E4> zN0c8t=p1M!I-7qL)Xf0i+fZbly>RDGI-68dx%cz(q_6s3L;iku7D}bhqK&II9PzL zWb461&QDsIA97Z|i2?4-be%o)(Zy$hJQs)v*n6x)8Au5FZSxoz__OOUJU)o*wK3^D zu)YLt>iA8s{ap#;h4To;jd8eR5p)?HZaa|W30P4CcN(l}lJPsqTGD$WuG8wr68`$f zlqtWI7bENM@qu;CgT&?X9#Ht_`eBuoX8oq>HO?)cM)`bHE$cssr_HmwltzCY8PP_2 z8oQIE_ogI~6sf&>hp!#wX(0n+W{Qz25%d|NtdeEh?8%gP2@qxYEua0J0+^L-Y;676 z9V{{&l~i(azsA#3#Q$E>EATy;6g7Gi$I@%~gWQ2T%KIMjr5Ij=YNXU!wNC*d|Jc)? z{2}0gl|eaVjI)oz*=v@&;(YGxRd>IOKqIW{*rJcm#l5D*E)ZpG$}g3p;h3yUB)AIk z5;XeYP6X$;m1@R5L77okWeyOobp1M7@Np#$9Z;>vxgE*NRT;leGB_pt8o|hOjOX8E zy1HoD(Myog8E`fCOp;a^cIF}KXcN?St#EMKRY&Nfiqz0aEWYOVI;CW|&DA!%@V5Ew zO`aU*SbZ`@6!hB;BqAe0vwL~(a{LcqJM?p4Uw--w1F;^3Ke`c8R=EE1E5R@SF+aUL z&jA?czbqiB%g`7o)-E{ads@;vu)QJ_FV`K+$U$P!mLH*)CVt5wLqhO)`cN?WK&}LT zX}Y+5`Ss4ra%5kVz*<7lflk;Aex@Kw#tZyGF9K^7csQLxfM+t= z^!Uq#qKts}tkx#G$AZym@Y^rq6Sg((quKPr0Aicz?+R21MvYH&~2ULsNJqn3uxY zZ$Y~rA^!_J_^_?gHb6(0?-5Kj|4mYF8*$@F0;5`qqhPdZ^N|ZDx7u^Vq}xF+#E7m{ z4_GmFS=D%b**Ocv0;iD-=kFmyJ7hOChyE1oz>O;4sA~7MZkX=D^{&m|RSM}i_0WP=fKV+e zC!j3<0~sg8(jmm#@=WKsIGwhT|FC4b!2OCV`&HZhdZ4iQETV3U807Zg3nklhjJ}z zH2VilgSR<_rb8ey80)GZN-+xWk9ie?@u`D$TZEc$^6~^!DJt|CGQ2TW7#ms zXN%@$BCfV8?#vx@lnQ^kRP=f~rfqpYJum2bLFAiAWmD6aJs25biwMoUCZ)ESJ+gV- zgaAnF)dny0hOW6Y?uZQ^AY{HMNrOIj^T#j8gIPKbRrQ7)giOT5OwdEN8b=}xZ8uJ| zNx~xg^-x@S<~?8Q|9h+vH6|6%)Wd8J>KEy#Q_`Y8I-q5zfbz5md{Hiwp0Z_80erde*1Pb7&0?ix-)TI}##dObA(h zlOts`G)L5k^u(Wj?b{u4L018la4nb#; zqMAI>P?S?BTrf@U??lp`udS>cIRX~h2j5EvrpUjkYl=CRBCm8CWe9u8RMZ4F-RI;3 z?ud%|$TWmN`y(+aE28{y{Gjb1+f5rnaA>V$LwhF4_0;MF`6r{M?yu-D&Y?|s#eINJ z7I^1+w8BRd&@GrzeH!S`Q%h88hCX7L3{|lhcC*FPkbQi)?)hd0F=wwcf|5=qtYzI6 zS2(N~+tI%W(^-w;qd%D3=`r3a>vqqd*uyJJC9mU6IdlIu{N8+@la^0GA)1*7qpw(qPQ>pi09iVM_6 zo4V^H*2-_a18*pKQnqZR1{Hb@FGm7?dcF>ylirkp7}<`&?j}lL}f|OwutAXjWlyk?vC!>g`1pgX%sztJce^2yBQHivwCx(Z;cR9 zb=r?$>{^mdNjUf$CubRn^KE!h`u_eovaBZAdv zNl|0?4j<}r^BcTyXYLJ<8N8=w;m;l4$GItcFK7wEAgynoXqSo3`QIU&FUUny3p}~v zz5M@ADc>2@RM)K=r1u(1C`uKnf>db=1W=G3f>NbR4M-E|od5#9fJl|1Xh5n+uMtps zN2G&*^dKF9+#U42@ArM@-f_+tCqMQW*;#w7wby*+%v^Ima~*fx>!|)KoAlA(T?hLF z!qB0oqAJt-M3(w-jb@nlh5TSf;y?|Fk=v!ROf^a_90gOSEwej2z?L%9$eRa~*;s#N z`s|9}Wfj%sXA$t|&*uK8&|x$DoDOtvC5B&gJ) z>@8K_hAMD$U5yXXm_C~+o2#|`e!G5#dHKWRPPF1yVlMK{x1p+C&Wx)w1XXYu#8K5< zwkM5bqfy^p5#JlV@{(7`OlkH=fr}v3txqy8;-^dl;0uLTP($K#$!=|>^YHKxXoHR5 z(!a)u34#kQ)z1fl_>CVmbd@)Kpm$A(x-1d~vzZJmb_U*S8eIsySCxKmcgRo7cpQE$ z<*YAVf#kUI@d!G<56x3rOZU@-8t*`FjQ+;UD;7_QzpuN!JjbLZQUJ->gp+S=c40q1 z!#Tuj&YU9z;MC(O@RanRt|#?^46br zmsei5vN^HwSOmTaxxB^3G+214F+Fl<@dj%#L;y87vvR8oBa3v{K%~f04_VKK8ktZw z9&mZ8i@r+3Wi-ITq0y{Cct%f_95pmw{K}pMB2}|^oPsph-qA#mt7R&)Rb^6UaF$X$ zfbc!p`*K=fE66Ec`O3!&bf(?HF7ZB0fe46o>#L2`7_db%%V|;jbNHFCe(2i0rNiX; zgQlD`k&Nk9f&DXoeP=eU9Bfg`EF)_;+f84ALwR{;8ilK5wr|tTNoB=!i3YS#PKaLG0ysx44aj`8%?E~z9kkLMsfbOyLXN&a6DSzvJ1Gv4YkeIko*yO9P z3^u)*q&uv7$~%!15}DL{%!l3xzJpqAfF`THmLaFB7Zz`E9K{lJIp}CMC_>4i+M^Hl z4=<}$(qzwJ*SNPsci(uis(3CRQ`3k+nH#@PP27C|4J)kl-U*BQ{wzWx@bRQ3x3&Lp zQKxJl(m~2fXLQP1T(E4SSdSG2#QycY*+gQa56gEkcg7gFA_cheeoz{@mLea&w&z-C z{4h3>n_HPt6%n0_jOM=?Hrj-Q_(r}bmi}u-P|)6m)9Ni37qZWC|K!VO$oSq`Ol7gK zDg{hcb&#caM&1;nx4mNhtda}Y3Zky6Q;j3LGTh_Yx&$!o{=Y2Wbc5EerG2Xz>se^W zN^=-Mgyr7C9{Gcff(}=V&!%(oJHLQG#QJ5jjjmTcBwyo_zmgh7-e4ZkD zsn6L#7@b3xc40xL#hlrx2#bbOD!-d`iD{|ff-ginnw31SR?saDj*N!&pD*jk_YH}i5n)6qH>jggW7pECNC>rLm{ zlC>=;c&dR-C@Y5$bL5T zda4(cOQ#_GUM8r5A_qIzoZnCz|Ib8ph_ykW5`p`{MdT}svY;rctl-I_6MS9%1PdQt zbKhfOP)kOks3p`@N>Sv{OfM}tD`cTZ;&g653l#h*&U53Wu(>0+GmO6Ko<>ZS%BV!9 z%y(8A>|8+g{N?Qi4tv%INo-ELgo2!yev1ZbB+o-zZ9ahqa+nsSQ?@$P!ZErK<5O+c z`QSpd^ujQW zsw0dRFK8~3vM6AQ!uU}0&I2i-oYJ>Q zrhJCgKrQ9gg}JLYwUf<2ps9MhYoNLE-t{Zt1l8yea6%x{tly5Xuc5_PeI8O1SBwI7 zG3%)=W;CcpeMNw>G}jR_Bk#^=ag2648W|2!wRqvC+bFK40|EG%Q~MF76RKf&|F04<(4`p|3-b`QLmbv45c>mD1QZq#y&iTz_X~D-AQbmh1*jW zxtU3Pcr!hS#!0G@2$+PP4PjBWH+AGyGxROD%S3*^UQr(KR~cHU-ZNQA>$k{~rhZr3 zG#u4@YN_+;_U%Y3$MN0cuH7h{7nT2Q)r(ml8Y(+!j1KJ8Z^t zG8OWKwOgESusGB`%W14%3 zn@dWl%*@P+Nf>HdQ4O_}oBNcY;2i(mSQ*S7wfo%a<%Q-ZEG5?ZeC6vZZ9i*ML9e~* z3<1d3?eHO}B@14{wv&1K!G`VR+@j5<90bxHlV;rtn(KlcDOns-fL@j6(<_|e%iJIT zPOe9~V+_1pdP)B5{Cc_g7kRLT>SIAeh2!sk`7Xp<)rG+%S3WkQP-HstI|SMOKkq~e zBBw0(hb$eQ+pt)C`@rb*GXTGP+oGB7W4JG<9Zs3`A~70N zY#h;mEaPKU@}?u(_H2R%zMZ)BTW%_yT6`EC!v{4$UW{_))q+vlIR^puK`U~zFAe5V zz&vM<`+Pv4LY*ADn!L}HMxqEdR-+Aph=)l4Br;M zJo%I$=q3Ym1}yVs$+f;irSl|v^G}zvgV?L5{1nW8o!FmMSMT4%)HkZTZ&-0p znTtv>EG=}8y9B!+;zmM{5c#0*3|$%Dl2Vuxh{r@ay?CMLE8`!$77l+syFDJ#?`De6 zNnkGP4S~M9_O;H6)(I%5sMQ5;bSj;Tk&%%tYrQ4==((!zzv*P5Vr9i8NDfsiBV$TH zacy^FgU8Zu%474JJEp_JMq;8J)|5w`so;wd0+E7b&~!@HotahgH0;;e{Hixp2L(J+ z<*4u+A=*KS2m#B3EXGWSx0ie$B-%YJ^IP0|f(`z8Ibc=M{JpxWM0~E}$A}_LQWynX zVyajMTvOcu5#>;bhwX~*OgNRy72Z{q=*<-{mdF7}54zyELc&L5apkxo2x{0MTL~X4 zin)X&jkoYpOf=#Yh<-BhVOHfcyVE(km_{!_Tz!gF|0;c!iZ;>Mi zN%mX;(|JdJ!!H#SFxdQ#ukV%X#(+JNN$a)aM_z*M3ttM7op-ELffYm)tx~}LqJ*pD zl7S3i5qbRAGkWD|n2Uk`do~7W2u&Me@^yI8OEOpzU5Oo+p_yw985K+=oCY}Fg!obz zK*f(x2?|n@=jgYMD0)c+yTM*!2Sg+sYaqggPvklF4i9&KPqNJak!DlrrtV|81aJu# zuVJrY4KiF;au5L)FeD6GR`CkPjp^`w!~0j7wXn@%&MsRY;Z7xc2>Hr}2__B*3Xr3c|fax*k40KE|)H za-pm29Tlun*!0eGg3|GBUYCp2H)Vjb`1pfWMmH$n>2Gd7=h3F=x&Vlb` z$&9v?JbpIo_KVvK2$?yLT4vO;LybqRDME(rZz)C+iBMY%MdmslL>1-sXNHZl;DoDX z1q2_YGV)8@q=I)jq1MQaH4g^6{h8BT8h8Sv+@{lAcYMwmhjvO{bIB5 zM4PPWv-QqnQgrM>`O`*GntQ1Coi<|^N zL5PuDWt5E)&KOJRU7z&_jA6s8;p6MTh9!T#Ykj|M)$?zSk}Ot<-4QqJeUFg*aOBNH zT(5uC zvu$yw=jdHaEgg#M8cu8pooF$miBI6nMsRN6=*|R zS{h5vlV3eAZ#?$K_V0bn(Bk`-B?p9dqlsku8M|DW%j8Gd>g{U4FaX-#^W!O^e)?ZU zs*TsT2U@OWEaBobqzqV2@__P-0SXRn1oR@Qtf1GF6rMzb0z7;vdGKc(JRW}E_v3cV zYMJ1`DIZ~!;2$(ST=1@+2Yy=XDw}|ma0%lqM(McRqV+~J0Ah!+>o2tuZCOw#wUJ-x zF7pCI0P*@QitK)>{V7Tpw}R=C#YRr5@9AY&(J-D!fuMZhJElXC7x;f&S}K~SLkN9Z zgZ!>bc%)5uxWB*i$6{$}Y3*5XG6Lo>Je&X&oCnZ1?uNEo;emhl{uN>Wmc!P}^Ig{KFq zwl&{Ay09K>OwcF&@_b8y^jA(O=+*>`i>a-x?T;Tn0Dwj2@h9?-qEO1i5?DhDjs#-9 zzetryurM2B9$;F18_lr+z)e7u&v^i~hQTOpDN-(*c3^%+jfo`NPFOTeII9H)DtdT$ zUdHNz(Z2Nx^{8LYwFIY zy1NFE3V?P1P;285_A=$KXJePN~FBU!vyP;1RV&z3+!(i?3~3E7)^Q(yr~% zvwDxg#$bR!%qx@Pqkly6rgCZ!Qmpx;aS)mwkG*@)2F(wx|=s}_Fe)V3CY+YqNgt}QByp?>63APi>e=qvO-j} zm)CN6Co+23IgAD+me#|&@xowB)#B<@*ozpi6fZBwGTe_JG|%#=M}Ne5P1?+KzTP81 zEa(7(kA7~!tw^N;UjA7H$2!xYs%w4nWLWph&kag1^hL@`DoV7Ka@Xtn95q#kH_JPm zYU%CDf%rsu_E2VV;RfJ<{Cg4b?^@sg8Xm}#jl59`ROR-*N?q1|o9=e^4m33}HTy?% zX?1^09m)vU;f%$dhV~@dQplM7*zh>QYTt{A`m*7)pkNL*+f+d8)m|Uij_iEjwr+%X zr^U*^GPeARBsYhio27zVsRfA%hp2R{TgGVk zr-B;y>Q+a+#ALR9z~}%Vqh!1{HCT)JIyCAABRcZlcAx{eSsQp3iDZ&wa0I zcaA^Yk3ZJv*ASobDbJ&%?3BZA<^IiYx=$C`nZi+Wd-$Czb~g5-4bC{0w_1fk4OGYV z>I#W6TrH${FDOVpv-eG(jt|k^p4t3qd04bEw{{SB;_s8dL~Q=9C9)ow$Y=;>66se% z$B0-Wa+%zkk>Aqo&RZ2nrdao*%zXZ_E@Wf=Mu!2i+$;=ao zoct%CDoJ7P?8nX)OVPTvzezzOxBn&u>5eb{CIy}I%eYKMq8`T&G=_i=evTC=r{>?t z!`Ytl);xX>J0G*piHdr%g3rr##$JD|sUpbnbpSsni}!l_zG)oebHS~NuTBA|H5nYH z@vK`WG4Y3Bm5+pL^_}z3;|V|XVl3R2rMuWGufD$juwHH0z5K&;P>yqIxuyGFWDtj$ zs;YAtKk^T`MacHr1-ZqmZF3KDUQ+6~pVNUK`~m9D|3Ic6>!S}GrRgk@I*6G0TA!Yp z8eJn)H2<-yg3sdE%LQ>rV1B~~MyK`W2m8BEzmb!twbW`vLE+n`ZxlCebu{UGV=QUR z(fUZ#__<9P`*57f@voL*~o_0HuyN31!7v=Y|CqoGI!%9l_o2Bn4D?jT+n84L@ z=C`LBB#i0snGkOQG6s1n?nD8ie%!eL7sQM>(H_8U zn3Oq_4yth})~GM`ygvq(68+T@kmKi-Rd`bQ6@Gt<<F6h}(<|ny=!rUtx0e=n~SHS#fR% ztB{njgu-(JE6$hr_j~{l?t8s|VW_5Vd%0`I?N<8?V@+Lv*B2Xj+0G2~bJtxdd82() zWb?hTLF=$DR>f%ZgqsUuNG@)BsQ%{_(Fd|}BE`5(3$V(AKe=1pb5-)RA|{Vj?p=Sm z^d)5-W3}DQq-N@cA~Z9_0}V01yG^o~h0ccTwG2ofdQ$&JEAZ^F`nXqeabJWp=}1h| z8$1W|fHvDtb`O%OY`GLknv6ih{G0CZ> z`4nOBDmy*CFt-tZ?Z^IzZE@i;jnZ9_%y&_196~B|8UiFe`(wj0!DFe~|MV+tdXqXe zyd|wM70H242))Pxr-t7O*l;7)TBW78CJY_R_B<>aP+t{iS9HD3H{&}PF&Ms0Q_KTZW@YVnJ-E?tC zs|w65x`wz(JTS?SR%2BDMMEoY7yI53f}$oKD^J$CbR1h@S$RLnoX!4}7Ey7ri@E47 zu)DPHhR9d|3&e49Zi{@xAeZE8*qfEl0@t-opYHe)vjue2j%aU{ikZTa9x#y8GHeue zvr?8O)$-ttwXUi&3iV4Q;}Up*_Iu`t)<61fXr<3qk;-d2^tjICWYBo_S>!jVWR8+H z;O~O+u#mAG!dKLr{esK{DND0#22l(=X6w=(d9`55?!7G&pIWI9aw)u}4IFY!(es{q zJMCgZB#;n`jVdhQWge>^kz`-d%s*5I!54YBAo;D1LYsBpi8RMOKS&?u@i|NlJ5Y|j zOeT_BDvtMNuJ;9cUZmNE9r0#k1!z3~W=Py}H7*{-5u=r~eOvM)Xo=)AoRCzyF>c?#Z z$+%HV!h{HjV_BD?gG40ij)ZaRnx@?Rf$!0LAD2`SVZ{0{pV_mC63eqJXmo5mi@SxI zop|c>_5J}9$la6YzQqriNVe)q@_%Yn&Wl02Z>Y(;1)4*8$~(lOmhAH?$C0?<7bT3D zyrp&OS|2>tY-OfQB`=&U1(K5nLzY?bE|?qxT$+)f3ySa&4r2+nR%fX^tLtc+-vEW?6|DLt9faBx=Q|gK+K);uf7I%jAxwm zJ>dP(EkGmRWVQi literal 0 HcmV?d00001 diff --git a/specification/activitypub.md b/specification/activitypub.md index dbb72b732..7cfdc2c9f 100644 --- a/specification/activitypub.md +++ b/specification/activitypub.md @@ -984,6 +984,8 @@ For servers hosting many actors, delivery to all followers can result in an over When an object is being delivered to the originating actor's followers, a server *MAY* reduce the number of receiving actors delivered to by identifying all followers which share the same sharedInbox who would otherwise be individual recipients and instead deliver objects to said `sharedInbox`. Thus in this scenario, the remote/receiving server participates in determining targeting and performing delivery to specific inboxes. +![A post is delivered from Alyssa's outbox to the her followers on another server, via its shared inbox](activitypub-tutorial-shared-inbox.png) + Additionally, if an object is addressed to the Public special collection, a server *MAY* deliver that object to all known `sharedInbox` endpoints on the network. Origin servers sending publicly addressed activities to `sharedInbox` endpoints *MUST* still deliver to actors and collections otherwise addressed (through `to`, `bto`, `cc`, `bcc`, and `audience`) which do not have a `sharedInbox` and would not otherwise receive the activity through the `sharedInbox` mechanism. From 1d3555ada6cf5bdf6ea6a079a41cb1a68fcc01fd Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 1 Jul 2022 13:43:19 +0100 Subject: [PATCH 2/3] Hashtag example --- specification/activitypub.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/specification/activitypub.md b/specification/activitypub.md index 7cfdc2c9f..a206a6082 100644 --- a/specification/activitypub.md +++ b/specification/activitypub.md @@ -342,6 +342,39 @@ In general, it's best to let a user edit their original post in the same source For example, Alyssa P. Hacker likes to post to her ActivityPub powered blog via an Emacs client she has written, leveraging [Org mode](http://orgmode.org). Later she switches to editing on her phone's client, which has no idea what `text/x-org` is or how to render it to HTML, so it provides a text box to edit the original `content` instead. A helpful warning displays above the edit area saying, "This was originally written in another markup language we don't know how to handle. If you edit, you'll lose your original source!" Alyssa decides the small typo fix isn't worth losing her nice org-mode markup and decides to make the update when she gets home. +### 3.4 Attachments + +### 3.5 Hashtags + +When a new post is created, if it has `content` containing one or more hashtags then these should be used to generate a list of `Hashtag` objects in a list called `tag`. The `href` for each tag in the list SHOULD refer to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) containing posts having that hashtag. + +### Example X +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "actor": "https://example.net/users/fearghus", + "to": ["https://example.net/users/fearghus/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "object": { + "@context": {"@language": "en"}, + "id": "https://example.net/users/fearghus/statuses/23", + "type": "Note", + "attributedTo": "https://example.net/users/fearghus", + "to": ["https://example.net/users/fearghus/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "mediaType": "text/html", + "content": "Posting with #ActivityPub", + "tag": [ + { + "href": "https://example.net/tags/ActivityPub", + "name": "#ActivityPub", + "type": "Hashtag" + } + ] + } +} +``` ## 4. Actors ActivityPub actors are generally one of the [ActivityStreams Actor Types](https://www.w3.org/TR/activitystreams-vocabulary/#actor-types), but they don't have to be. For example, a [Profile](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-profile) object might be used as an actor, or a type from an [ActivityStreams](https://www.w3.org/TR/activitystreams-core) extension. Actors are retrieved like any other Object in ActivityPub. Like other [ActivityStreams objects](https://www.w3.org/TR/activitystreams-vocabulary/#object-types), actors have an `id`, which is a URI. When entered directly into a user interface (for example on a login form), it is desirable to support simplified naming. For this purpose, ID normalization *SHOULD* be performed as follows: From cb2a03d72f6e232eeb6eb3dd00f151475e35973b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 1 Jul 2022 18:31:28 +0100 Subject: [PATCH 3/3] Attachments --- specification/activitypub.md | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/specification/activitypub.md b/specification/activitypub.md index a206a6082..b63df640b 100644 --- a/specification/activitypub.md +++ b/specification/activitypub.md @@ -344,6 +344,43 @@ For example, Alyssa P. Hacker likes to post to her ActivityPub powered blog via ### 3.4 Attachments +Attachments may be added to `Note` or `Article` objects. The `mediaType` can be any MIME type, and the attached media should be available at the specified `url`. The `attachment` list can include more than one item. + +In the case of attached images, the `name` field can be used to supply a description. + +### Example X +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "actor": "https://example.net/users/fearghus", + "to": ["https://example.net/users/fearghus/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "object": { + "@context": {"@language": "en"}, + "id": "https://example.net/users/fearghus/statuses/23", + "type": "Note", + "attributedTo": "https://example.net/users/fearghus", + "to": ["https://example.net/users/fearghus/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "summary": "", + "sensitive": False, + "mediaType": "text/html", + "content": "This is a post with an attached image", + "attachment": [ + { + "mediaType": "image/jpeg", + "name": "Description of the attached image", + "type": "Document", + "url": "https://example.net/users/fearghus/media/hfr73473rgr283g.jpg" + } + ] + } +} +``` + +It may also be necessary to warn about the content being attached. This can be done by setting `sensitive` to *True* and supplying a `summary` containing a warning message. + ### 3.5 Hashtags When a new post is created, if it has `content` containing one or more hashtags then these should be used to generate a list of `Hashtag` objects in a list called `tag`. The `href` for each tag in the list SHOULD refer to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) containing posts having that hashtag.