mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-27 00:33:17 +00:00
commit
f4cfff0271
13 changed files with 132 additions and 97 deletions
|
@ -83,8 +83,6 @@ class DeleteAccountPipeline implements ShouldQueue
|
||||||
StatusDelete::dispatchNow($status);
|
StatusDelete::dispatchNow($status);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$this->deleteUserColumns($user);
|
|
||||||
AccountService::del($user->profile_id);
|
|
||||||
|
|
||||||
AccountLog::whereItemType('App\User')->whereItemId($user->id)->forceDelete();
|
AccountLog::whereItemType('App\User')->whereItemId($user->id)->forceDelete();
|
||||||
|
|
||||||
|
@ -176,6 +174,8 @@ class DeleteAccountPipeline implements ShouldQueue
|
||||||
|
|
||||||
Report::whereUserId($user->id)->forceDelete();
|
Report::whereUserId($user->id)->forceDelete();
|
||||||
PublicTimelineService::warmCache(true, 400);
|
PublicTimelineService::warmCache(true, 400);
|
||||||
|
$this->deleteUserColumns($user);
|
||||||
|
AccountService::del($user->profile_id);
|
||||||
Profile::whereUserId($user->id)->delete();
|
Profile::whereUserId($user->id)->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,11 +74,12 @@ class StatusDelete implements ShouldQueue
|
||||||
$profile = $this->status->profile;
|
$profile = $this->status->profile;
|
||||||
|
|
||||||
StatusService::del($status->id, true);
|
StatusService::del($status->id, true);
|
||||||
|
if($profile) {
|
||||||
if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) {
|
if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) {
|
||||||
$profile->status_count = $profile->status_count - 1;
|
$profile->status_count = $profile->status_count - 1;
|
||||||
$profile->save();
|
$profile->save();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(config_cache('federation.activitypub.enabled') == true) {
|
if(config_cache('federation.activitypub.enabled') == true) {
|
||||||
return $this->fanoutDelete($status);
|
return $this->fanoutDelete($status);
|
||||||
|
@ -92,7 +93,7 @@ class StatusDelete implements ShouldQueue
|
||||||
Media::whereStatusId($status->id)
|
Media::whereStatusId($status->id)
|
||||||
->get()
|
->get()
|
||||||
->each(function($media) {
|
->each(function($media) {
|
||||||
MediaDeletePipeline::dispatch($media)->onQueue('mmo');
|
MediaDeletePipeline::dispatchNow($media);
|
||||||
});
|
});
|
||||||
|
|
||||||
if($status->in_reply_to_id) {
|
if($status->in_reply_to_id) {
|
||||||
|
@ -141,9 +142,14 @@ class StatusDelete implements ShouldQueue
|
||||||
|
|
||||||
public function fanoutDelete($status)
|
public function fanoutDelete($status)
|
||||||
{
|
{
|
||||||
$audience = $status->profile->getAudienceInbox();
|
|
||||||
$profile = $status->profile;
|
$profile = $status->profile;
|
||||||
|
|
||||||
|
if(!$profile) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$audience = $status->profile->getAudienceInbox();
|
||||||
|
|
||||||
$fractal = new Fractal\Manager();
|
$fractal = new Fractal\Manager();
|
||||||
$fractal->setSerializer(new ArraySerializer());
|
$fractal->setSerializer(new ArraySerializer());
|
||||||
$resource = new Fractal\Resource\Item($status, new DeleteNote());
|
$resource = new Fractal\Resource\Item($status, new DeleteNote());
|
||||||
|
|
|
@ -137,7 +137,6 @@ class StatusService
|
||||||
|
|
||||||
public static function del($id, $purge = false)
|
public static function del($id, $purge = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if($purge) {
|
if($purge) {
|
||||||
$status = self::get($id);
|
$status = self::get($id);
|
||||||
if($status && isset($status['account']) && isset($status['account']['id'])) {
|
if($status && isset($status['account']) && isset($status['account']['id'])) {
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace App\Transformer\Api;
|
||||||
use App\Status;
|
use App\Status;
|
||||||
use League\Fractal;
|
use League\Fractal;
|
||||||
use Cache;
|
use Cache;
|
||||||
|
use App\Services\AccountService;
|
||||||
use App\Services\HashidService;
|
use App\Services\HashidService;
|
||||||
use App\Services\LikeService;
|
use App\Services\LikeService;
|
||||||
use App\Services\MediaService;
|
use App\Services\MediaService;
|
||||||
|
@ -12,7 +13,6 @@ use App\Services\MediaTagService;
|
||||||
use App\Services\StatusHashtagService;
|
use App\Services\StatusHashtagService;
|
||||||
use App\Services\StatusLabelService;
|
use App\Services\StatusLabelService;
|
||||||
use App\Services\StatusMentionService;
|
use App\Services\StatusMentionService;
|
||||||
use App\Services\ProfileService;
|
|
||||||
use App\Services\PollService;
|
use App\Services\PollService;
|
||||||
use App\Models\CustomEmoji;
|
use App\Models\CustomEmoji;
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract
|
||||||
'label' => StatusLabelService::get($status),
|
'label' => StatusLabelService::get($status),
|
||||||
'liked_by' => LikeService::likedBy($status),
|
'liked_by' => LikeService::likedBy($status),
|
||||||
'media_attachments' => MediaService::get($status->id),
|
'media_attachments' => MediaService::get($status->id),
|
||||||
'account' => ProfileService::get($status->profile_id),
|
'account' => AccountService::get($status->profile_id, true),
|
||||||
'tags' => StatusHashtagService::statusTags($status->id),
|
'tags' => StatusHashtagService::statusTags($status->id),
|
||||||
'poll' => $poll
|
'poll' => $poll
|
||||||
];
|
];
|
||||||
|
|
|
@ -5,47 +5,47 @@ namespace App\Util\Media;
|
||||||
class Filter {
|
class Filter {
|
||||||
|
|
||||||
public static $filters = [
|
public static $filters = [
|
||||||
'1977' => 'filter-1977',
|
'1984' => 'filter-1977',
|
||||||
'Aden' => 'filter-aden',
|
'Azen' => 'filter-aden',
|
||||||
'Amaro' => 'filter-amaro',
|
'Astairo' => 'filter-amaro',
|
||||||
'Ashby' => 'filter-ashby',
|
'Grassbee' => 'filter-ashby',
|
||||||
'Brannan' => 'filter-brannan',
|
'Bookrun' => 'filter-brannan',
|
||||||
'Brooklyn' => 'filter-brooklyn',
|
'Borough' => 'filter-brooklyn',
|
||||||
'Charmes' => 'filter-charmes',
|
'Farms' => 'filter-charmes',
|
||||||
'Clarendon' => 'filter-clarendon',
|
'Hairsadone' => 'filter-clarendon',
|
||||||
'Crema' => 'filter-crema',
|
'Cleana ' => 'filter-crema',
|
||||||
'Dogpatch' => 'filter-dogpatch',
|
'Catpatch' => 'filter-dogpatch',
|
||||||
'Earlybird' => 'filter-earlybird',
|
'Earlyworm' => 'filter-earlybird',
|
||||||
'Gingham' => 'filter-gingham',
|
'Plaid' => 'filter-gingham',
|
||||||
'Ginza' => 'filter-ginza',
|
'Kyo' => 'filter-ginza',
|
||||||
'Hefe' => 'filter-hefe',
|
'Yefe' => 'filter-hefe',
|
||||||
'Helena' => 'filter-helena',
|
'Goddess' => 'filter-helena',
|
||||||
'Hudson' => 'filter-hudson',
|
'Yards' => 'filter-hudson',
|
||||||
'Inkwell' => 'filter-inkwell',
|
'Quill' => 'filter-inkwell',
|
||||||
'Kelvin' => 'filter-kelvin',
|
'Rankine' => 'filter-kelvin',
|
||||||
'Kuno' => 'filter-juno',
|
'Juno' => 'filter-juno',
|
||||||
'Lark' => 'filter-lark',
|
'Mark' => 'filter-lark',
|
||||||
'Lo-Fi' => 'filter-lofi',
|
'Chill' => 'filter-lofi',
|
||||||
'Ludwig' => 'filter-ludwig',
|
'Van' => 'filter-ludwig',
|
||||||
'Maven' => 'filter-maven',
|
'Apache' => 'filter-maven',
|
||||||
'Mayfair' => 'filter-mayfair',
|
'Mayflower' => 'filter-mayfair',
|
||||||
'Moon' => 'filter-moon',
|
'Ceres' => 'filter-moon',
|
||||||
'Nashville' => 'filter-nashville',
|
'Knoxville' => 'filter-nashville',
|
||||||
'Perpetua' => 'filter-perpetua',
|
'Felicity' => 'filter-perpetua',
|
||||||
'Poprocket' => 'filter-poprocket',
|
'Sandblast' => 'filter-poprocket',
|
||||||
'Reyes' => 'filter-reyes',
|
'Daisy' => 'filter-reyes',
|
||||||
'Rise' => 'filter-rise',
|
'Elevate' => 'filter-rise',
|
||||||
'Sierra' => 'filter-sierra',
|
'Nevada' => 'filter-sierra',
|
||||||
'Skyline' => 'filter-skyline',
|
'Futura' => 'filter-skyline',
|
||||||
'Slumber' => 'filter-slumber',
|
'Sleepy' => 'filter-slumber',
|
||||||
'Stinson' => 'filter-stinson',
|
'Steward' => 'filter-stinson',
|
||||||
'Sutro' => 'filter-sutro',
|
'Savoy' => 'filter-sutro',
|
||||||
'Toaster' => 'filter-toaster',
|
'Blaze' => 'filter-toaster',
|
||||||
'Valencia' => 'filter-valencia',
|
'Apricot' => 'filter-valencia',
|
||||||
'Vesper' => 'filter-vesper',
|
'Gloming' => 'filter-vesper',
|
||||||
'Walden' => 'filter-walden',
|
'Walter' => 'filter-walden',
|
||||||
'Willow' => 'filter-willow',
|
'Poplar' => 'filter-willow',
|
||||||
'X-Pro II' => 'filter-xpro-ii'
|
'Xenon' => 'filter-xpro-ii'
|
||||||
];
|
];
|
||||||
|
|
||||||
public static function classes()
|
public static function classes()
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use App\Status;
|
||||||
|
use App\Jobs\StatusPipeline\StatusDelete;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Status::doesntHave('profile')->get()->each(function($status) { StatusDelete::dispatch($status); });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
};
|
BIN
public/js/app.js
vendored
BIN
public/js/app.js
vendored
Binary file not shown.
BIN
public/js/compose-12722-3lkw2.js
vendored
BIN
public/js/compose-12722-3lkw2.js
vendored
Binary file not shown.
BIN
public/js/compose.js
vendored
BIN
public/js/compose.js
vendored
Binary file not shown.
BIN
public/js/spa.js
vendored
BIN
public/js/spa.js
vendored
Binary file not shown.
Binary file not shown.
82
resources/assets/js/app.js
vendored
82
resources/assets/js/app.js
vendored
|
@ -149,47 +149,47 @@ window.App.util = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
filters: [
|
filters: [
|
||||||
['1977','filter-1977'],
|
['1984','filter-1977'],
|
||||||
['Aden','filter-aden'],
|
['Azen','filter-aden'],
|
||||||
['Amaro','filter-amaro'],
|
['Astairo','filter-amaro'],
|
||||||
['Ashby','filter-ashby'],
|
['Grassbee','filter-ashby'],
|
||||||
['Brannan','filter-brannan'],
|
['Bookrun','filter-brannan'],
|
||||||
['Brooklyn','filter-brooklyn'],
|
['Borough','filter-brooklyn'],
|
||||||
['Charmes','filter-charmes'],
|
['Farms','filter-charmes'],
|
||||||
['Clarendon','filter-clarendon'],
|
['Hairsadone','filter-clarendon'],
|
||||||
['Crema','filter-crema'],
|
['Cleana ','filter-crema'],
|
||||||
['Dogpatch','filter-dogpatch'],
|
['Catpatch','filter-dogpatch'],
|
||||||
['Earlybird','filter-earlybird'],
|
['Earlyworm','filter-earlybird'],
|
||||||
['Gingham','filter-gingham'],
|
['Plaid','filter-gingham'],
|
||||||
['Ginza','filter-ginza'],
|
['Kyo','filter-ginza'],
|
||||||
['Hefe','filter-hefe'],
|
['Yefe','filter-hefe'],
|
||||||
['Helena','filter-helena'],
|
['Goddess','filter-helena'],
|
||||||
['Hudson','filter-hudson'],
|
['Yards','filter-hudson'],
|
||||||
['Inkwell','filter-inkwell'],
|
['Quill','filter-inkwell'],
|
||||||
['Kelvin','filter-kelvin'],
|
['Rankine','filter-kelvin'],
|
||||||
['Kuno','filter-juno'],
|
['Juno','filter-juno'],
|
||||||
['Lark','filter-lark'],
|
['Mark','filter-lark'],
|
||||||
['Lo-Fi','filter-lofi'],
|
['Chill','filter-lofi'],
|
||||||
['Ludwig','filter-ludwig'],
|
['Van','filter-ludwig'],
|
||||||
['Maven','filter-maven'],
|
['Apache','filter-maven'],
|
||||||
['Mayfair','filter-mayfair'],
|
['Mayflower','filter-mayfair'],
|
||||||
['Moon','filter-moon'],
|
['Ceres','filter-moon'],
|
||||||
['Nashville','filter-nashville'],
|
['Knoxville','filter-nashville'],
|
||||||
['Perpetua','filter-perpetua'],
|
['Felicity','filter-perpetua'],
|
||||||
['Poprocket','filter-poprocket'],
|
['Sandblast','filter-poprocket'],
|
||||||
['Reyes','filter-reyes'],
|
['Daisy','filter-reyes'],
|
||||||
['Rise','filter-rise'],
|
['Elevate','filter-rise'],
|
||||||
['Sierra','filter-sierra'],
|
['Nevada','filter-sierra'],
|
||||||
['Skyline','filter-skyline'],
|
['Futura','filter-skyline'],
|
||||||
['Slumber','filter-slumber'],
|
['Sleepy','filter-slumber'],
|
||||||
['Stinson','filter-stinson'],
|
['Steward','filter-stinson'],
|
||||||
['Sutro','filter-sutro'],
|
['Savoy','filter-sutro'],
|
||||||
['Toaster','filter-toaster'],
|
['Blaze','filter-toaster'],
|
||||||
['Valencia','filter-valencia'],
|
['Apricot','filter-valencia'],
|
||||||
['Vesper','filter-vesper'],
|
['Gloming','filter-vesper'],
|
||||||
['Walden','filter-walden'],
|
['Walter','filter-walden'],
|
||||||
['Willow','filter-willow'],
|
['Poplar','filter-willow'],
|
||||||
['X-Pro II','filter-xpro-ii']
|
['Xenon','filter-xpro-ii']
|
||||||
],
|
],
|
||||||
filterCss: {
|
filterCss: {
|
||||||
'filter-1977': 'sepia(.5) hue-rotate(-30deg) saturate(1.4)',
|
'filter-1977': 'sepia(.5) hue-rotate(-30deg) saturate(1.4)',
|
||||||
|
|
|
@ -370,7 +370,7 @@
|
||||||
<div class="p-1 pt-3">
|
<div class="p-1 pt-3">
|
||||||
<img :src="media[carouselCursor].url" width="100px" height="60px" :class="filter[1]" v-on:click.prevent="toggleFilter($event, filter[1])">
|
<img :src="media[carouselCursor].url" width="100px" height="60px" :class="filter[1]" v-on:click.prevent="toggleFilter($event, filter[1])">
|
||||||
</div>
|
</div>
|
||||||
<a :class="[media[carouselCursor].filter_class == filter[1] ? 'nav-link text-primary active' : 'nav-link text-muted']" href="#" v-on:click.prevent="toggleFilter($event, filter[1])">i{{filter[0]}}</a>
|
<a :class="[media[carouselCursor].filter_class == filter[1] ? 'nav-link text-primary active' : 'nav-link text-muted']" href="#" v-on:click.prevent="toggleFilter($event, filter[1])">{{filter[0]}}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -407,7 +407,7 @@
|
||||||
<div class="p-1 pt-3">
|
<div class="p-1 pt-3">
|
||||||
<img :src="media[carouselCursor].url" width="100px" height="60px" :class="filter[1]" v-on:click.prevent="toggleFilter($event, filter[1])">
|
<img :src="media[carouselCursor].url" width="100px" height="60px" :class="filter[1]" v-on:click.prevent="toggleFilter($event, filter[1])">
|
||||||
</div>
|
</div>
|
||||||
<a :class="[media[carouselCursor].filter_class == filter[1] ? 'nav-link text-primary active' : 'nav-link text-muted']" href="#" v-on:click.prevent="toggleFilter($event, filter[1])">i{{filter[0]}}</a>
|
<a :class="[media[carouselCursor].filter_class == filter[1] ? 'nav-link text-primary active' : 'nav-link text-muted']" href="#" v-on:click.prevent="toggleFilter($event, filter[1])">{{filter[0]}}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1033,7 +1033,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
this.filters = window.App.util.filters;
|
this.filters = window.App.util.filters.sort();
|
||||||
axios.get('/api/compose/v0/settings')
|
axios.get('/api/compose/v0/settings')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
this.composeSettings = res.data;
|
this.composeSettings = res.data;
|
||||||
|
|
Loading…
Reference in a new issue