mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-27 11:43:09 +02:00
投稿に関しては論理削除するように
処理をシンプルにするため
This commit is contained in:
parent
8273a7e748
commit
494597236c
5 changed files with 10 additions and 43 deletions
|
@ -27,6 +27,7 @@ export type IPost = {
|
||||||
_id: mongo.ObjectID;
|
_id: mongo.ObjectID;
|
||||||
channelId: mongo.ObjectID;
|
channelId: mongo.ObjectID;
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
|
deletedAt: Date;
|
||||||
mediaIds: mongo.ObjectID[];
|
mediaIds: mongo.ObjectID[];
|
||||||
replyId: mongo.ObjectID;
|
replyId: mongo.ObjectID;
|
||||||
repostId: mongo.ObjectID;
|
repostId: mongo.ObjectID;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { createQueue } from 'kue';
|
import { createQueue } from 'kue';
|
||||||
|
|
||||||
import config from '../config';
|
import config from '../config';
|
||||||
import db from './processors/db';
|
|
||||||
import http from './processors/http';
|
import http from './processors/http';
|
||||||
|
|
||||||
const queue = createQueue({
|
const queue = createQueue({
|
||||||
|
@ -19,10 +18,6 @@ export function createHttp(data) {
|
||||||
.backoff({ delay: 16384, type: 'exponential' });
|
.backoff({ delay: 16384, type: 'exponential' });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createDb(data) {
|
|
||||||
return queue.create('db', data);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function deliver(user, content, to) {
|
export function deliver(user, content, to) {
|
||||||
return createHttp({
|
return createHttp({
|
||||||
type: 'deliver',
|
type: 'deliver',
|
||||||
|
@ -33,8 +28,6 @@ export function deliver(user, content, to) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function() {
|
export default function() {
|
||||||
queue.process('db', db);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
256 is the default concurrency limit of Mozilla Firefox and Google
|
256 is the default concurrency limit of Mozilla Firefox and Google
|
||||||
Chromium.
|
Chromium.
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
import Favorite from '../../../models/favorite';
|
|
||||||
import Notification from '../../../models/notification';
|
|
||||||
import PollVote from '../../../models/poll-vote';
|
|
||||||
import PostReaction from '../../../models/post-reaction';
|
|
||||||
import PostWatching from '../../../models/post-watching';
|
|
||||||
import Post from '../../../models/post';
|
|
||||||
|
|
||||||
export default async ({ data }) => Promise.all([
|
|
||||||
Favorite.remove({ postId: data._id }),
|
|
||||||
Notification.remove({ postId: data._id }),
|
|
||||||
PollVote.remove({ postId: data._id }),
|
|
||||||
PostReaction.remove({ postId: data._id }),
|
|
||||||
PostWatching.remove({ postId: data._id }),
|
|
||||||
Post.find({ repostId: data._id }).then(reposts => Promise.all([
|
|
||||||
Notification.remove({
|
|
||||||
postId: {
|
|
||||||
$in: reposts.map(({ _id }) => _id)
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
Post.remove({ repostId: data._id })
|
|
||||||
]))
|
|
||||||
]);
|
|
|
@ -1,7 +0,0 @@
|
||||||
import deletePostDependents from './delete-post-dependents';
|
|
||||||
|
|
||||||
const handlers = {
|
|
||||||
deletePostDependents
|
|
||||||
};
|
|
||||||
|
|
||||||
export default (job, done) => handlers[job.data.type](job).then(() => done(), done);
|
|
|
@ -1,7 +1,6 @@
|
||||||
import * as debug from 'debug';
|
import * as debug from 'debug';
|
||||||
|
|
||||||
import Post from '../../../../models/post';
|
import Post from '../../../../models/post';
|
||||||
import { createDb } from '../../../../queue';
|
|
||||||
import { IRemoteUser } from '../../../../models/user';
|
import { IRemoteUser } from '../../../../models/user';
|
||||||
|
|
||||||
const log = debug('misskey:activitypub');
|
const log = debug('misskey:activitypub');
|
||||||
|
@ -19,10 +18,13 @@ export default async function(actor: IRemoteUser, uri: string): Promise<void> {
|
||||||
throw new Error('投稿を削除しようとしているユーザーは投稿の作成者ではありません');
|
throw new Error('投稿を削除しようとしているユーザーは投稿の作成者ではありません');
|
||||||
}
|
}
|
||||||
|
|
||||||
Post.remove({ _id: post._id });
|
Post.update({ _id: post._id }, {
|
||||||
|
$set: {
|
||||||
createDb({
|
deletedAt: new Date(),
|
||||||
type: 'deletePostDependents',
|
text: null,
|
||||||
id: post._id
|
textHtml: null,
|
||||||
}).delay(65536).save();
|
mediaIds: [],
|
||||||
|
poll: null
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue