From 5ea12601ce73b451625ba16687bf595aa73ed04a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 2 Aug 2022 00:57:46 -0600 Subject: [PATCH 1/6] Add DELETE /api/v1.1/accounts/avatar api endpoint --- .../Controllers/Api/ApiV1Dot1Controller.php | 38 +++++++++++++++++++ routes/api.php | 1 + 2 files changed, 39 insertions(+) diff --git a/app/Http/Controllers/Api/ApiV1Dot1Controller.php b/app/Http/Controllers/Api/ApiV1Dot1Controller.php index 7bc3cf942..34d483551 100644 --- a/app/Http/Controllers/Api/ApiV1Dot1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Dot1Controller.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Api; +use Cache; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use League\Fractal; @@ -10,6 +11,7 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter; use App\Status; use App\Report; use App\Profile; +use App\Services\AccountService; class ApiV1Dot1Controller extends Controller { @@ -128,4 +130,40 @@ class ApiV1Dot1Controller extends Controller ]; return $this->json($res); } + + /** + * DELETE /api/v1.1/accounts/avatar + * + * @return \App\Transformer\Api\AccountTransformer + */ + public function deleteAvatar(Request $request) + { + $user = $request->user(); + + abort_if(!$user, 403); + abort_if($user->status != null, 403); + + $avatar = $user->profile->avatar; + + if( $avatar->media_path == 'public/avatars/default.png' || + $avatar->media_path == 'public/avatars/default.jpg' + ) { + return AccountService::get($user->profile_id); + } + + if(is_file(storage_path('app/' . $avatar->media_path))) { + @unlink(storage_path('app/' . $avatar->media_path)); + } + + $avatar->media_path = 'public/avatars/default.jpg'; + $avatar->change_count = $avatar->change_count + 1; + $avatar->save(); + + Cache::forget('avatar:' . $user->profile_id); + Cache::forget("avatar:{$user->profile_id}"); + Cache::forget('user:account:id:'.$user->id); + AccountService::del($user->profile_id); + + return AccountService::get($user->profile_id); + } } diff --git a/routes/api.php b/routes/api.php index 55675483e..d4732a9f3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -99,6 +99,7 @@ Route::group(['prefix' => 'api'], function() use($middleware) { Route::group(['prefix' => 'v1.1'], function() use($middleware) { Route::post('report', 'Api\ApiV1Dot1Controller@report')->middleware($middleware); + Route::delete('accounts/avatar', 'Api\ApiV1Dot1Controller@deleteAvatar')->middleware($middleware); }); Route::group(['prefix' => 'live'], function() use($middleware) { From 247c9ec5f8dd4acb2db894ef06d7c4587d8add1d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 3 Aug 2022 22:02:29 -0600 Subject: [PATCH 2/6] Update DeleteWorker pipeline, increase timeout --- app/Jobs/InboxPipeline/DeleteWorker.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/app/Jobs/InboxPipeline/DeleteWorker.php b/app/Jobs/InboxPipeline/DeleteWorker.php index f40edc3ff..a55623e63 100644 --- a/app/Jobs/InboxPipeline/DeleteWorker.php +++ b/app/Jobs/InboxPipeline/DeleteWorker.php @@ -24,8 +24,9 @@ class DeleteWorker implements ShouldQueue protected $headers; protected $payload; - public $timeout = 60; - public $tries = 1; + public $timeout = 120; + public $tries = 3; + public $maxExceptions = 1; /** * Create a new job instance. @@ -72,7 +73,7 @@ class DeleteWorker implements ShouldQueue 'h:' . hash('sha256', $actor); $lockKey = 'ap:inbox:actor-delete-exists:lock:' . $hash; - Cache::lock($lockKey, 10)->block(5, function () use( + Cache::lock($lockKey, 30)->block(15, function () use( $headers, $payload, $actor, @@ -94,30 +95,30 @@ class DeleteWorker implements ShouldQueue if($profile) { DeleteRemoteProfilePipeline::dispatch($profile)->onQueue('delete'); } - return; + return 1; } else { // Signature verification failed, exit. - return; + return 1; } } else { // Remote user doesn't exist, exit early. - return; + return 1; } }); - return; + return 1; } $profile = null; if($this->verifySignature($headers, $payload) == true) { (new Inbox($headers, $profile, $payload))->handle(); - return; + return 1; } else if($this->blindKeyRotation($headers, $payload) == true) { (new Inbox($headers, $profile, $payload))->handle(); - return; + return 1; } else { - return; + return 1; } } From 47571887fe6089a38729c5b2eef618414fcb241f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 3 Aug 2022 22:34:04 -0600 Subject: [PATCH 3/6] Improve cache invalidation after processing VideoThumbnail to eliminate "No Preview Available" on grid feeds --- app/Jobs/VideoPipeline/VideoThumbnail.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Jobs/VideoPipeline/VideoThumbnail.php b/app/Jobs/VideoPipeline/VideoThumbnail.php index 8df8ec75c..fed61e4fc 100644 --- a/app/Jobs/VideoPipeline/VideoThumbnail.php +++ b/app/Jobs/VideoPipeline/VideoThumbnail.php @@ -14,6 +14,8 @@ use Storage; use App\Media; use App\Jobs\MediaPipeline\MediaStoragePipeline; use App\Util\Media\Blurhash; +use App\Services\MediaService; +use App\Services\StatusService; class VideoThumbnail implements ShouldQueue { @@ -72,6 +74,11 @@ class VideoThumbnail implements ShouldQueue if($media->status_id) { Cache::forget('status:transformer:media:attachments:' . $media->status_id); + MediaService::del($media->status_id); + Cache::forget('status:thumb:nsfw0' . $media->status_id); + Cache::forget('status:thumb:nsfw1' . $media->status_id); + Cache::forget('pf:services:sh:id:' . $media->status_id); + StatusService::del($media->status_id); } MediaStoragePipeline::dispatch($media); From a3cc90b0c5fffde4692207860f3170d835336aef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 3 Aug 2022 22:48:19 -0600 Subject: [PATCH 4/6] Use poster in VideoPresenter component --- .../js/components/presenter/VideoPresenter.vue | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/resources/assets/js/components/presenter/VideoPresenter.vue b/resources/assets/js/components/presenter/VideoPresenter.vue index 4395c34ca..333a482f2 100644 --- a/resources/assets/js/components/presenter/VideoPresenter.vue +++ b/resources/assets/js/components/presenter/VideoPresenter.vue @@ -22,7 +22,7 @@ :alt="altText(status)"/>
-
@@ -76,7 +76,15 @@ toggleContentWarning(status) { this.$emit('togglecw'); - } + }, + + poster() { + let url = this.status.media_attachments[0].preview_url; + if(url.endsWith('no-preview.jpg') || url.endsWith('no-preview.png')) { + return; + } + return url; + } } } From 0829f79f4f94603b900fc857229dd1204a9d535f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 3 Aug 2022 22:50:48 -0600 Subject: [PATCH 5/6] Update compiled assets --- public/js/daci-ojtjadoml.js | Bin 84133 -> 84299 bytes public/js/dffc-ojtjadoml.js | Bin 83041 -> 83207 bytes public/js/dmyh-ojtjadoml.js | Bin 128592 -> 128758 bytes public/js/dmym-ojtjadoml.js | Bin 83371 -> 83537 bytes public/js/dsfc-ojtjadoml.js | Bin 82627 -> 82793 bytes public/js/dssc-ojtjadoml.js | Bin 86950 -> 87116 bytes public/js/home-ojtjadoml.js | Bin 143168 -> 143334 bytes public/js/post-ojtjadoml.js | Bin 132830 -> 133046 bytes public/js/profile-ojtjadoml.js | Bin 189570 -> 189736 bytes public/js/profile.js | Bin 124599 -> 124760 bytes public/js/rempos.js | Bin 150819 -> 150980 bytes public/js/rempro.js | Bin 91360 -> 91521 bytes public/js/spa.js | Bin 282583 -> 282765 bytes public/js/status.js | Bin 140785 -> 140946 bytes public/js/timeline.js | Bin 142501 -> 142662 bytes public/mix-manifest.json | Bin 3731 -> 3731 bytes 16 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/js/daci-ojtjadoml.js b/public/js/daci-ojtjadoml.js index cb4f89ea1915cb45a6c72d53c97101947288dd99..02f76d39317326e75f8e1b170ced3a96b8fd173c 100644 GIT binary patch delta 199 zcmZ2Fk@fT>)(u?_TsrBgB?0-xC8-iFN5j)(u?_n}r=kqgahCEzC_f>&_14Wiqy$9I#kq@`7cYtfs~$rWTVOS2%8d czT!YQgggD9Hsh@AZj6k#xVPK#GV<8~0LH8s>Hq)$ diff --git a/public/js/dffc-ojtjadoml.js b/public/js/dffc-ojtjadoml.js index 524c980c4957fb65037ca1088921798ce50e80b4..1d57d39e67dcd39e498964a65ff5de94c3a6b192 100644 GIT binary patch delta 237 zcmaFZ!P?%%xMOD8?GBp|=IB(-RAf}LiZUO`c6S!QZ^d}&dRb!M7|Vya$hUP^Iz zW=V#IQeM6;R9Y{qAYDmQO%0cHK^{ghU!qCh}QzzfHSi{i5(!yf$gt_xJd(U0Z!wQy}d|`zYtD%9Bfyv~9%N;kzuc{7Y w2687G&Xb=0L5;C-bLF2~+_E|aV8>gP=)parQKDB|l2}q&thqgygOSe$0N*83x&QzG delta 70 zcmZqgVtv@bx^E&5>NLFJ@3v<)W+H)g#SwPImfvcriO^r=VEhZPPcHI18Rdpbg U+qh=dW~RTlxVQi0VC1s_0Cl$+p#T5? diff --git a/public/js/dmyh-ojtjadoml.js b/public/js/dmyh-ojtjadoml.js index 4c414733a879019e178956a09c32eb9337a9aad3..f96f62a32303d49265c07a50941fa14e321b7087 100644 GIT binary patch delta 206 zcmccchW*=H_6_^1xpdM~O9JwXOHzv_8=8qsKIA1DqE}FqT9%nw9$#9NW1X3%p_ro>`Kip_G@e3zgQ(Do9t-R8zwxU62Qq)+|abDJ{xV*u1y;TQaM;g`t_z<{kIh zg&@qy1|OtY4GoM8OePz?w%@Gu>C9#p5O;dwY{uU0^~)GvaLeixfL&)*q6c@WMu}c= QNn%N9vF7&lO^h#{0g$gvivR!s delta 77 zcmezNmi@vT_6_^1H+$54NoF;+v@kc_?D&9P2*RBF@Us-Fsj-Qv#pH+Y95=81bZRq% bJAL9s##xhd{z-1vU(R@tdpqxD#+S|jCSM^m diff --git a/public/js/dmym-ojtjadoml.js b/public/js/dmym-ojtjadoml.js index 212aed7e53295f3d34a68f19d3f0e53479b9309e..6790dacae9401d2600cbca08cd699d41adce32e0 100644 GIT binary patch delta 225 zcmZ48&3dtib;EQ=E}it$l7Rf;lGLKf3sp4Z^$Lno%Q92T<4cQjtTWRz6jSw5^HPe# zGfOfwl=AX*q0)L;1?ftfYHGNo3-W-{nnkH4rA2uPskK0$V`5}%WICB~f$HSBIy{>% zI$B4tnp+r}8EqDv70SyDWKJ%eFFaXbB`2$)fsuj9z-e{XTi>J)$-Y*nHMcf3Z4UU5lcNold>_PLyld^P~R-cXYO delta 71 zcmccE!@9bgb;ESW%?eJX5v<0R7Urg#XUz)bg)k>4E|X$4H8wG|m>js&adXIu$WSO( TaMR|^ss9dgZ+GTm^Hw$790%WZg%`t!Xv9w0Ct#Fi5}dM8YOzgC5a`a#hTl< JvN7`6003tZM*08% delta 75 zcmaFa#(KDwb;Bfw&C-rDB3O+rEzC_f@0c0R3t>)fTq?zCYHVU^G1+jj{pOtYC8@@MgPWgR{dwVoHBcBZb5`G)9 diff --git a/public/js/dssc-ojtjadoml.js b/public/js/dssc-ojtjadoml.js index 311a364042092467b8c7045e18a3b3cdd0433912..7a8f117981085c63cae6921851fa5aacaa1837bd 100644 GIT binary patch delta 205 zcmZ3sob}8K)(v&8TsrBgB?0-xC8o>`Kip_G@e3zgQ(Do9t-R8zwxU62Qq)+|abDJ{xV*j(efB!bo4!qCiUv+BGE zUI=sY#x+tbh6Y9klN*;gY<{rXJ|4`Qet?~E_V#_;jJLRDbqc_avntVpJ5-}Yuec delta 98 zcmX@Jf_2$))(v&89JRHzIwnTOM$-?PF-lDq$m5y(&zWblqgzGSWp$YZzKsT3Ae0{N%9tz%M;|_B6OgH3Yl$!3}#@IOhoGl~g^xZOy0^2X2VLZsaed7&A G({KR0BP0+2 diff --git a/public/js/post-ojtjadoml.js b/public/js/post-ojtjadoml.js index fcd24ca2f1231d80e129acfe0e845b632b1c27d0..8999f78fe7368673046e8a30ef061f59a4dfca2b 100644 GIT binary patch delta 358 zcmccD%dxGWV}nRDmrib!%rzzLla{&%gGb}I&FUSy^9&5 z1R`NzWMBf6aNKeoYa!k>4lYyV%!imC|oqA z|94>&->$>T7_gDm5M=B2#%+uxJhD0k;83$F(SwJeMu}c=Nn%N9vF7%#hZtWv0{}=< Bf6D*> delta 220 zcmdni&vCDpV}nTZ=DE#VV^~crjLnTUhdo%uAz*B2VQ#9alWAM5VQ67#VKF)J!Mx4u zUdHi36ivSPONzzN*wS+H$9E2!^M3R)vx0Si#92*^O-wB&Gk$m6obcxtBQr?V!{<`d z1JoGXHvj#1fss*Z`a)Yq!|4u!jO^3%6&VGlOE5C_PVePsCG@}%&p@ETs$@Ib~M#t?Z6B##cW&sII4iuM~o{+&9Je_X^liu`#Tt><5#$rqd gxn*?-yaeU=ha-yr}Pb{f+F diff --git a/public/js/profile.js b/public/js/profile.js index cdc90e59dd8eb273d2e3f7dd09fc21d424a077ed..23afaaa5c9646d1fa9a916bea87298bf6239adc2 100644 GIT binary patch delta 344 zcmdmfmi@*#_6;?&*>wu?i%U|ACM$@FO@2B7)hK5pJ zzHUKLYFTD#xn5R5x{{`v8ZPOAJfO5@QEEwPQJzA{=IYt4Jj}+XMw1^dt(jcELWaY{ z&@ja;%`kED#3fn?j^y&^oA<2LWMwrpH8nP#Y*=PAxnP|FNaJSv^$WQ9jVvrI4K;Q0 zZHqNbOf1bO8*XuAFV--$G%zxooVeA8Qwe75=I-4M94sJ-$%T96C(l2^2{m%!QOC`- zN5WZIKt@d#JP469HMKCbm<*I_c00A*?G)o`dF)FEdVNoId9`Bj5Dj j2N?yXKYPO1BLodFs}em($Z2R!&pN~?y}kD-qZT6om#TRx delta 235 zcmca{j(z)C_6;?&H*?Qv;bAf~pRBmfc=EY@Jd-c1h~h9dHcm@SO--GwuvD8J#$K`f z`DX7`nyjoAM#h!~lMTy^CjVcj0Me?kHgL1th5&AUQxhWtLrtB0+hPq96HD{S2evq} z7i*ZCn;RQV{;<`DQwe79W~n_594sJ-$rD$|PhN18lLchzWW`fXn|Y3gv$BFs0@@)5 zl;dJCv9L6ntZ>Y+`Rb|dS5GlM7Gp613IVmMPdc5wUEvZVC-Zde6O4S*yACl5OfP-P R*fag-Ax7!#de0cO7y%#zR)+up diff --git a/public/js/rempos.js b/public/js/rempos.js index 14ea8fdc16571db612da944e39648bb814b6c2ec..d7dbc58855e72b2e9360129a3fd1f87fa114dd70 100644 GIT binary patch delta 333 zcmZ2Hi}T2A&JE7H*mVl>i%U|ACO3M?PVU(*7E(}@T9%nw9$#9NW1X3%p;)4qnwL@> zo>`Kip_G@e3zgQ(Do9t-R8zwxU62Qq)+|abDJ{xVDB0|^>kJRGv8mBy!Q(SHObiWE z%+d@KCvQBih2UH~e0B1lW5SzHpO9c@H8eFfHl953To72(gtGygdoP6XuozibSWbR^ z$B)&}(!j`Uvcnx8P9>OWoBQu}bFzRWCLi1_KY9IgPG+DflLeo;Z0>!2l9d&t*KqR0 z=jyDcrWS@4lNY{lY(DXJ`-!)VXCk3O8~3P9|L~YGd;4E4rZUFu3p|-@nS`O?V^yLD a2`CNC+UXZnn53r9vSw1+F6G0-$p`=yPJJf; delta 230 zcmX>yn{)9j&JE7HHecFxnup2Id~(2^n#s~9WI2qDjnfiSQ&T59oX}#2awaF75}SPb z*rm;pCnecgER2jTCo8^@pSGEiWAcL_p2_}a6+k8^UI^SQb1{sE#ni;eU~<`AKUQ;d zb7P~)=kNG%D#481EO)P)lLaI({oy7?`NI$n=AXOdF>6>|^Ace!!iPW&0j&CO5|I`d&=7OpLYD P6I7X`w$Joo(q;qz4?k5t diff --git a/public/js/rempro.js b/public/js/rempro.js index b71e40442c090a99b700e40215bdd81e6c8a4557..a9ad342fa751ef4e1ac357ee48e6ba0f4fdfbb87 100644 GIT binary patch delta 348 zcmaEGlC|+P>jsSicAbL!;*!*&$&UJBlQ-wch7=T~mSv`v$Cno6SZAhbD3<7@=A{&e zXO?7WDCOnrLZ$Vx3euG{)zolF7vuq@HH%V9N{jLoN;az(EM;RdHl3Ws2-uki_JV{TdJxH}yKR zu!2nhnk_fEp@)mb)WXnWQm^CYtrO>*WijsU2&D#r>urV8&n@#@MBR8o=Wb%aaG!A29r6Q9`#Mzc?zuZa&$uIRLJ&v+XJy3sBH_ z@`oM`r~!<9j+-y^GO@6NbQuE8Q)e+Tv9O%f=d{^n(wwtk4p6!LbORyA;^_ibjB?Xw qt1eQwvj5O`T%fL=BVa zjv9=v+m|Xa7I3i`Sy)(3m(*qSV>PriFfyCIQGwBiQwiph?FV%k)rD9Yet9dX95_Dm#|m>l}>LoXH=iQ;4@?KbcY#?eA{1tW%O9j3Q}n?-Ejfq#O-rB vn93Np+b?IbWfF!)i&cppBz`nBYo`}9F-c9goXMorzH=qh_MI!4<(2^e?SYc$ delta 304 zcmeBOD0qFo;0D2>%?paEbC?XxCx5guo*ZyLjlCSi%CagVB{ygT=%IDDzRD(P4W* zAY<_oW}wQ+iuxMU8#);qxA%Wz^jHs30<>$=c85-;GREy&r!!4voF3cA$Tw{%lfd*T ZE17y2Yo~WCW|C?5U&XZDe-*RcG5{g*U&a6c diff --git a/public/js/status.js b/public/js/status.js index dc568665e49ab4151c9baf5b69216b6bfa8f147e..41c470a5bb8ba08de22c8ab330b3e5278d50bea8 100644 GIT binary patch delta 354 zcmex(nq$&gjt%MS*mVl>i%U|ACI^~}P5!h>c5<~nx2JVxnucPDUTR)Sad>7)hK5pJ zzHUKLYFTD#xn5R5x{{`v8ZPOAJfO5@QEEwPQJzA{=CpO~+)T!%(-pcI)hBP*5;{41 zmn?^gp<#+ynqlJP3A?lqoQ-=#Crj_Vym{5`Y&KRyQ&VH(>5AQqYLguf=`b6c8g0%$ zw49s8$il*MveY?0RzphzBeTgHkNCn3*nH?*0|!+6<5hKt5tA9OJ8s@`J%W`Lq|5RV^*H1q^jgfEq1WiVk?Z26s+!(hz2r*4&oPOpd sP_#joNnpCX3R90TG|;R{^dO<9p;i(-KotCtutnHo0P_Cm`{Nb7=)R2vr>^D2!h+<_0X*8THa7&Zf!qR9mP`H`<-gfSLjL)1{OiU~+ yCx5&qKiS}3@%AVdrZUFu=Y^OiGftnN!nBI9cDmj_MycsMR~b3C7pO8RF#-Tp>Q1Ww diff --git a/public/js/timeline.js b/public/js/timeline.js index 5748cc9df661152173b2913543ff1ec4ff2fefcc..5a100a919e9602b26961bd1621e8f26b1300ecdb 100644 GIT binary patch delta 343 zcmZ2_ljGPejt%dYvg;J&7nh_KO)hK_oBVW1A+2D`~0 zx5#jq7#gOSr5Pqpj@+!x24PP=y-IQN>dnVD>ur0$!D?t~YHSSDVl?^veg&}h0|x>& z@7V9d$6{n*VL6%OoFA*9rGb&z~PR*qcx0gO-T<8iFV!W(2JzkNib9((;M!xNGncNrw6_$P1 delta 196 zcmX?hi(~0cjt%dYZmwO{!pCH2KKbFM+Q|)DWjKtDjnfiSQ&T6u*sO)%M6XtuY_;Y1 z=Dphu+Rpfh eafvHfU}1yC_6zDvaxByLNHB72=g?uYV*~)F%SuTA diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 5cd12e8b1d134e5935562ffb375e183492133dfb..f2fdbd1ad0f8b69c432ff9b91078d56392182c8d 100644 GIT binary patch delta 574 zcmWlXy=~V)42JbjL=>P5ZIoYwKoJOkoIfs^0Cu48-T7vqp@jiXj6jc+At+e^20*O9 zrS|*UuOE9|uj?NlPsc1sT0OBT&MFF!Zt{z^WeLp`uh8sI+X_jEj(`yd}89KRGUw@z6 z9>u2a);zjZDQGon5>QbrrPNWDU3@x7GbshE`{c?^Qq*-|HA|^H9)4ZCJl&}Hm=53t zdmSb*fo23Im0}Hcuovsq<(DIsyZ~;$6@lHAR41S`7xoTi;puAqzI=OAf?HM?lr^`Z zNN+^ZGB==#x!ydzKStS6GIi1xjtXs;h_O@_1{GajpWYoNBYICW>gp}?Cy|_2Qf2r4o7ncf=5&msP5$J+ZHuw6qH8$ rAf_oa$`qT>nwY5N`nN@aeT>ITHs0KttE!d9#~9?qK@abre>ndSTrZp& delta 574 zcmWlWy=|635QO#F!ZHw=)bg7kkOg9I_x8`O0D2&}+q#rpACdBDI>Y&!^i%ozrT^(k-gOs3R)loI0Yl zth9cf-rYzMnK_&lI9(nUw&v=ABNJ9TyLxzi_Wk?-vI1$GL7W|tEVx($m7LP4uD?%i z4|13@x>AQJ3<+!_3E7QDce14ypN^0q6?x3yjO+p0|RR`$K zhC`%iFAg+py?J_nh}pDFgF`#*iAGUPMutYA+4}nW^zImh!syLRvTtOb`xFU@3`XO?V(b3d-QloH?S@@u)jDgD(VUcbr6d|{ecL8^oVXRQ q(`Z`jnOg)$q!=cvHm!$lz)Z(zZJGYa;ru`IDW1Xr From 10eaffb07488a7983d0af54be34b30bd2f230714 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 3 Aug 2022 22:51:29 -0600 Subject: [PATCH 6/6] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d285079db..f5abf9b83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,8 @@ - Hydrate `favourited` and `reblogged` state on v1 context endpoint ([abb4f7e1](https://github.com/pixelfed/pixelfed/commit/abb4f7e1)) - Improve admin dashboard by moving expensive stats to its page and loading stats and recent data async on the dashboard home page ([9d52b9c2](https://github.com/pixelfed/pixelfed/commit/9d52b9c2)) - Update unfollow api endpoint to only decrement when appropriate, fixes #3539 ([44de1ad7](https://github.com/pixelfed/pixelfed/commit/44de1ad7)) +- Improve cache invalidation after processing VideoThumbnail to eliminate "No Preview Available" on grid feeds ([47571887](https://github.com/pixelfed/pixelfed/commit/47571887)) +- Use poster in VideoPresenter component ([a3cc90b0](https://github.com/pixelfed/pixelfed/commit/a3cc90b0)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3)