diff --git a/app/Jobs/DeletePipeline/DeleteAccountPipeline.php b/app/Jobs/DeletePipeline/DeleteAccountPipeline.php index 652a8559b..49daccb67 100644 --- a/app/Jobs/DeletePipeline/DeleteAccountPipeline.php +++ b/app/Jobs/DeletePipeline/DeleteAccountPipeline.php @@ -83,8 +83,6 @@ class DeleteAccountPipeline implements ShouldQueue StatusDelete::dispatchNow($status); } }); - $this->deleteUserColumns($user); - AccountService::del($user->profile_id); AccountLog::whereItemType('App\User')->whereItemId($user->id)->forceDelete(); @@ -176,6 +174,8 @@ class DeleteAccountPipeline implements ShouldQueue Report::whereUserId($user->id)->forceDelete(); PublicTimelineService::warmCache(true, 400); + $this->deleteUserColumns($user); + AccountService::del($user->profile_id); Profile::whereUserId($user->id)->delete(); } diff --git a/app/Jobs/StatusPipeline/StatusDelete.php b/app/Jobs/StatusPipeline/StatusDelete.php index 1aa7e5409..0bbd1842a 100644 --- a/app/Jobs/StatusPipeline/StatusDelete.php +++ b/app/Jobs/StatusPipeline/StatusDelete.php @@ -74,10 +74,11 @@ class StatusDelete implements ShouldQueue $profile = $this->status->profile; StatusService::del($status->id, true); - - if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) { - $profile->status_count = $profile->status_count - 1; - $profile->save(); + if($profile) { + if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) { + $profile->status_count = $profile->status_count - 1; + $profile->save(); + } } if(config_cache('federation.activitypub.enabled') == true) { @@ -92,7 +93,7 @@ class StatusDelete implements ShouldQueue Media::whereStatusId($status->id) ->get() ->each(function($media) { - MediaDeletePipeline::dispatch($media)->onQueue('mmo'); + MediaDeletePipeline::dispatchNow($media); }); if($status->in_reply_to_id) { @@ -141,9 +142,14 @@ class StatusDelete implements ShouldQueue public function fanoutDelete($status) { - $audience = $status->profile->getAudienceInbox(); $profile = $status->profile; + if(!$profile) { + return; + } + + $audience = $status->profile->getAudienceInbox(); + $fractal = new Fractal\Manager(); $fractal->setSerializer(new ArraySerializer()); $resource = new Fractal\Resource\Item($status, new DeleteNote()); diff --git a/app/Services/StatusService.php b/app/Services/StatusService.php index d222ff260..04ed1722d 100644 --- a/app/Services/StatusService.php +++ b/app/Services/StatusService.php @@ -137,7 +137,6 @@ class StatusService public static function del($id, $purge = false) { - if($purge) { $status = self::get($id); if($status && isset($status['account']) && isset($status['account']['id'])) { diff --git a/app/Transformer/Api/StatusStatelessTransformer.php b/app/Transformer/Api/StatusStatelessTransformer.php index 74aaf7ce9..38a3fedf8 100644 --- a/app/Transformer/Api/StatusStatelessTransformer.php +++ b/app/Transformer/Api/StatusStatelessTransformer.php @@ -5,6 +5,7 @@ namespace App\Transformer\Api; use App\Status; use League\Fractal; use Cache; +use App\Services\AccountService; use App\Services\HashidService; use App\Services\LikeService; use App\Services\MediaService; @@ -12,7 +13,6 @@ use App\Services\MediaTagService; use App\Services\StatusHashtagService; use App\Services\StatusLabelService; use App\Services\StatusMentionService; -use App\Services\ProfileService; use App\Services\PollService; use App\Models\CustomEmoji; @@ -63,7 +63,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract 'label' => StatusLabelService::get($status), 'liked_by' => LikeService::likedBy($status), 'media_attachments' => MediaService::get($status->id), - 'account' => ProfileService::get($status->profile_id), + 'account' => AccountService::get($status->profile_id, true), 'tags' => StatusHashtagService::statusTags($status->id), 'poll' => $poll ]; diff --git a/app/Util/Media/Filter.php b/app/Util/Media/Filter.php index 6ff1b96ba..d653dd768 100644 --- a/app/Util/Media/Filter.php +++ b/app/Util/Media/Filter.php @@ -5,47 +5,47 @@ namespace App\Util\Media; class Filter { public static $filters = [ - '1977' => 'filter-1977', - 'Aden' => 'filter-aden', - 'Amaro' => 'filter-amaro', - 'Ashby' => 'filter-ashby', - 'Brannan' => 'filter-brannan', - 'Brooklyn' => 'filter-brooklyn', - 'Charmes' => 'filter-charmes', - 'Clarendon' => 'filter-clarendon', - 'Crema' => 'filter-crema', - 'Dogpatch' => 'filter-dogpatch', - 'Earlybird' => 'filter-earlybird', - 'Gingham' => 'filter-gingham', - 'Ginza' => 'filter-ginza', - 'Hefe' => 'filter-hefe', - 'Helena' => 'filter-helena', - 'Hudson' => 'filter-hudson', - 'Inkwell' => 'filter-inkwell', - 'Kelvin' => 'filter-kelvin', - 'Kuno' => 'filter-juno', - 'Lark' => 'filter-lark', - 'Lo-Fi' => 'filter-lofi', - 'Ludwig' => 'filter-ludwig', - 'Maven' => 'filter-maven', - 'Mayfair' => 'filter-mayfair', - 'Moon' => 'filter-moon', - 'Nashville' => 'filter-nashville', - 'Perpetua' => 'filter-perpetua', - 'Poprocket' => 'filter-poprocket', - 'Reyes' => 'filter-reyes', - 'Rise' => 'filter-rise', - 'Sierra' => 'filter-sierra', - 'Skyline' => 'filter-skyline', - 'Slumber' => 'filter-slumber', - 'Stinson' => 'filter-stinson', - 'Sutro' => 'filter-sutro', - 'Toaster' => 'filter-toaster', - 'Valencia' => 'filter-valencia', - 'Vesper' => 'filter-vesper', - 'Walden' => 'filter-walden', - 'Willow' => 'filter-willow', - 'X-Pro II' => 'filter-xpro-ii' + '1984' => 'filter-1977', + 'Azen' => 'filter-aden', + 'Astairo' => 'filter-amaro', + 'Grassbee' => 'filter-ashby', + 'Bookrun' => 'filter-brannan', + 'Borough' => 'filter-brooklyn', + 'Farms' => 'filter-charmes', + 'Hairsadone' => 'filter-clarendon', + 'Cleana ' => 'filter-crema', + 'Catpatch' => 'filter-dogpatch', + 'Earlyworm' => 'filter-earlybird', + 'Plaid' => 'filter-gingham', + 'Kyo' => 'filter-ginza', + 'Yefe' => 'filter-hefe', + 'Goddess' => 'filter-helena', + 'Yards' => 'filter-hudson', + 'Quill' => 'filter-inkwell', + 'Rankine' => 'filter-kelvin', + 'Juno' => 'filter-juno', + 'Mark' => 'filter-lark', + 'Chill' => 'filter-lofi', + 'Van' => 'filter-ludwig', + 'Apache' => 'filter-maven', + 'Mayflower' => 'filter-mayfair', + 'Ceres' => 'filter-moon', + 'Knoxville' => 'filter-nashville', + 'Felicity' => 'filter-perpetua', + 'Sandblast' => 'filter-poprocket', + 'Daisy' => 'filter-reyes', + 'Elevate' => 'filter-rise', + 'Nevada' => 'filter-sierra', + 'Futura' => 'filter-skyline', + 'Sleepy' => 'filter-slumber', + 'Steward' => 'filter-stinson', + 'Savoy' => 'filter-sutro', + 'Blaze' => 'filter-toaster', + 'Apricot' => 'filter-valencia', + 'Gloming' => 'filter-vesper', + 'Walter' => 'filter-walden', + 'Poplar' => 'filter-willow', + 'Xenon' => 'filter-xpro-ii' ]; public static function classes() @@ -58,4 +58,4 @@ class Filter { return array_keys(self::$filters); } -} \ No newline at end of file +} diff --git a/database/migrations/2022_12_31_034627_fix_account_status_deletes.php b/database/migrations/2022_12_31_034627_fix_account_status_deletes.php new file mode 100644 index 000000000..e5aab2859 --- /dev/null +++ b/database/migrations/2022_12_31_034627_fix_account_status_deletes.php @@ -0,0 +1,30 @@ +get()->each(function($status) { StatusDelete::dispatch($status); }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/public/js/app.js b/public/js/app.js index 66a71cc06..ea7949185 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[773],{5924:(e,t,r)=>{r(19755);var o=r(19755);r(99751),window._=r(96486),window.Popper=r(28981).default,window.pixelfed=window.pixelfed||{},window.$=r(19755),r(43734),window.axios=r(9669),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",r(90717),window.blurhash=r(43985);var n=document.head.querySelector('meta[name="csrf-token"]');n?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=n.content:console.error("CSRF token not found."),window.App=window.App||{},window.App.redirect=function(){document.querySelectorAll("a").forEach((function(e,t){var r=e.getAttribute("href");if(r&&r.length>5&&r.startsWith("https://")){var o=new URL(r);o.host!==window.location.host&&"/i/redirect"!==o.pathname&&e.setAttribute("href","/i/redirect?url="+encodeURIComponent(r))}}))},window.App.boot=function(){new Vue({el:"#content"})},window.App.util={compose:{post:function(){var e=window.location.pathname;["/","/timeline/public"].includes(e)?o("#composeModal").modal("show"):window.location.href="/?a=co"},circle:function(){console.log("Unsupported method.")},collection:function(){console.log("Unsupported method.")},loop:function(){console.log("Unsupported method.")},story:function(){console.log("Unsupported method.")}},time:function(){return new Date},version:1,format:{count:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-GB",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"compact";return e<1?0:new Intl.NumberFormat(t,{notation:r,compactDisplay:"short"}).format(e)},timeAgo:function(e){var t=Date.parse(e),r=Math.floor((new Date-t)/1e3),o=Math.floor(r/63072e3);return o>=1?o+"y":(o=Math.floor(r/604800))>=1?o+"w":(o=Math.floor(r/86400))>=1?o+"d":(o=Math.floor(r/3600))>=1?o+"h":(o=Math.floor(r/60))>=1?o+"m":Math.floor(r)+"s"},timeAhead:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=Date.parse(e),o=r-Date.parse(new Date),n=Math.floor(o/1e3),i=Math.floor(n/63072e3);return i>=1?i+(t?"y":" years"):(i=Math.floor(n/604800))>=1?i+(t?"w":" weeks"):(i=Math.floor(n/86400))>=1?i+(t?"d":" days"):(i=Math.floor(n/3600))>=1?i+(t?"h":" hours"):(i=Math.floor(n/60))>=1?i+(t?"m":" minutes"):Math.floor(n)+(t?"s":" seconds")},rewriteLinks:function(e){var t=e.innerText;return e.href.startsWith(window.location.origin)?e.href:t=1==t.startsWith("#")?"/discover/tags/"+t.substr(1)+"?src=rph":1==t.startsWith("@")?"/"+e.innerText+"?src=rpp":"/i/redirect?url="+encodeURIComponent(t)}},filters:[["1977","filter-1977"],["Aden","filter-aden"],["Amaro","filter-amaro"],["Ashby","filter-ashby"],["Brannan","filter-brannan"],["Brooklyn","filter-brooklyn"],["Charmes","filter-charmes"],["Clarendon","filter-clarendon"],["Crema","filter-crema"],["Dogpatch","filter-dogpatch"],["Earlybird","filter-earlybird"],["Gingham","filter-gingham"],["Ginza","filter-ginza"],["Hefe","filter-hefe"],["Helena","filter-helena"],["Hudson","filter-hudson"],["Inkwell","filter-inkwell"],["Kelvin","filter-kelvin"],["Kuno","filter-juno"],["Lark","filter-lark"],["Lo-Fi","filter-lofi"],["Ludwig","filter-ludwig"],["Maven","filter-maven"],["Mayfair","filter-mayfair"],["Moon","filter-moon"],["Nashville","filter-nashville"],["Perpetua","filter-perpetua"],["Poprocket","filter-poprocket"],["Reyes","filter-reyes"],["Rise","filter-rise"],["Sierra","filter-sierra"],["Skyline","filter-skyline"],["Slumber","filter-slumber"],["Stinson","filter-stinson"],["Sutro","filter-sutro"],["Toaster","filter-toaster"],["Valencia","filter-valencia"],["Vesper","filter-vesper"],["Walden","filter-walden"],["Willow","filter-willow"],["X-Pro II","filter-xpro-ii"]],filterCss:{"filter-1977":"sepia(.5) hue-rotate(-30deg) saturate(1.4)","filter-aden":"sepia(.2) brightness(1.15) saturate(1.4)","filter-amaro":"sepia(.35) contrast(1.1) brightness(1.2) saturate(1.3)","filter-ashby":"sepia(.5) contrast(1.2) saturate(1.8)","filter-brannan":"sepia(.4) contrast(1.25) brightness(1.1) saturate(.9) hue-rotate(-2deg)","filter-brooklyn":"sepia(.25) contrast(1.25) brightness(1.25) hue-rotate(5deg)","filter-charmes":"sepia(.25) contrast(1.25) brightness(1.25) saturate(1.35) hue-rotate(-5deg)","filter-clarendon":"sepia(.15) contrast(1.25) brightness(1.25) hue-rotate(5deg)","filter-crema":"sepia(.5) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-2deg)","filter-dogpatch":"sepia(.35) saturate(1.1) contrast(1.5)","filter-earlybird":"sepia(.25) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-5deg)","filter-gingham":"contrast(1.1) brightness(1.1)","filter-ginza":"sepia(.25) contrast(1.15) brightness(1.2) saturate(1.35) hue-rotate(-5deg)","filter-hefe":"sepia(.4) contrast(1.5) brightness(1.2) saturate(1.4) hue-rotate(-10deg)","filter-helena":"sepia(.5) contrast(1.05) brightness(1.05) saturate(1.35)","filter-hudson":"sepia(.25) contrast(1.2) brightness(1.2) saturate(1.05) hue-rotate(-15deg)","filter-inkwell":"brightness(1.25) contrast(.85) grayscale(1)","filter-kelvin":"sepia(.15) contrast(1.5) brightness(1.1) hue-rotate(-10deg)","filter-juno":"sepia(.35) contrast(1.15) brightness(1.15) saturate(1.8)","filter-lark":"sepia(.25) contrast(1.2) brightness(1.3) saturate(1.25)","filter-lofi":"saturate(1.1) contrast(1.5)","filter-ludwig":"sepia(.25) contrast(1.05) brightness(1.05) saturate(2)","filter-maven":"sepia(.35) contrast(1.05) brightness(1.05) saturate(1.75)","filter-mayfair":"contrast(1.1) brightness(1.15) saturate(1.1)","filter-moon":"brightness(1.4) contrast(.95) saturate(0) sepia(.35)","filter-nashville":"sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)","filter-perpetua":"contrast(1.1) brightness(1.25) saturate(1.1)","filter-poprocket":"sepia(.15) brightness(1.2)","filter-reyes":"sepia(.75) contrast(.75) brightness(1.25) saturate(1.4)","filter-rise":"sepia(.25) contrast(1.25) brightness(1.2) saturate(.9)","filter-sierra":"sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)","filter-skyline":"sepia(.15) contrast(1.25) brightness(1.25) saturate(1.2)","filter-slumber":"sepia(.35) contrast(1.25) saturate(1.25)","filter-stinson":"sepia(.35) contrast(1.25) brightness(1.1) saturate(1.25)","filter-sutro":"sepia(.4) contrast(1.2) brightness(.9) saturate(1.4) hue-rotate(-10deg)","filter-toaster":"sepia(.25) contrast(1.5) brightness(.95) hue-rotate(-15deg)","filter-valencia":"sepia(.25) contrast(1.1) brightness(1.1)","filter-vesper":"sepia(.35) contrast(1.15) brightness(1.2) saturate(1.3)","filter-walden":"sepia(.35) contrast(.8) brightness(1.25) saturate(1.4)","filter-willow":"brightness(1.2) contrast(.85) saturate(.05) sepia(.2)","filter-xpro-ii":"sepia(.45) contrast(1.25) brightness(1.75) saturate(1.3) hue-rotate(-5deg)"},emoji:["😂","💯","❤️","🙌","👏","👌","😍","😯","😢","😅","😁","🙂","😎","😀","🤣","😃","😄","😆","😉","😊","😋","😘","😗","😙","😚","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😪","😫","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😭","😦","😧","😨","😩","🤯","😬","😰","😱","😳","🤪","😵","😡","😠","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👿","👹","👺","💀","👻","👽","🤖","💩","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌️","🤟","🤘","👈","👉","👆","👇","☝️","✋","🤚","🖐","🖖","👋","🤙","💪","🖕","✍️","🙏","💍","💄","💋","👄","👅","👂","👃","👣","👁","👀","🧠","🗣","👤","👥"],embed:{post:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"full",n=e+"/embed?";return n+=t?"caption=true&":"caption=false&",n+=r?"likes=true&":"likes=false&",'