summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-07 07:19:30 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-07 07:19:30 +0900
commit494597236cea4a40bddd9655b6506464df053bfe (patch)
treea9b468a88a34cd37ee9527c433188178b8a0af12 /src
parentFix bug (diff)
downloadsharkey-494597236cea4a40bddd9655b6506464df053bfe.tar.gz
sharkey-494597236cea4a40bddd9655b6506464df053bfe.tar.bz2
sharkey-494597236cea4a40bddd9655b6506464df053bfe.zip
投稿に関しては論理削除するように
処理をシンプルにするため
Diffstat (limited to 'src')
-rw-r--r--src/models/post.ts1
-rw-r--r--src/queue/index.ts7
-rw-r--r--src/queue/processors/db/delete-post-dependents.ts22
-rw-r--r--src/queue/processors/db/index.ts7
-rw-r--r--src/remote/activitypub/act/delete/note.ts16
5 files changed, 10 insertions, 43 deletions
diff --git a/src/models/post.ts b/src/models/post.ts
index 68a638fa2f..ac7890d2e6 100644
--- a/src/models/post.ts
+++ b/src/models/post.ts
@@ -27,6 +27,7 @@ export type IPost = {
_id: mongo.ObjectID;
channelId: mongo.ObjectID;
createdAt: Date;
+ deletedAt: Date;
mediaIds: mongo.ObjectID[];
replyId: mongo.ObjectID;
repostId: mongo.ObjectID;
diff --git a/src/queue/index.ts b/src/queue/index.ts
index 691223de2d..4aa1dc032d 100644
--- a/src/queue/index.ts
+++ b/src/queue/index.ts
@@ -1,7 +1,6 @@
import { createQueue } from 'kue';
import config from '../config';
-import db from './processors/db';
import http from './processors/http';
const queue = createQueue({
@@ -19,10 +18,6 @@ export function createHttp(data) {
.backoff({ delay: 16384, type: 'exponential' });
}
-export function createDb(data) {
- return queue.create('db', data);
-}
-
export function deliver(user, content, to) {
return createHttp({
type: 'deliver',
@@ -33,8 +28,6 @@ export function deliver(user, content, to) {
}
export default function() {
- queue.process('db', db);
-
/*
256 is the default concurrency limit of Mozilla Firefox and Google
Chromium.
diff --git a/src/queue/processors/db/delete-post-dependents.ts b/src/queue/processors/db/delete-post-dependents.ts
deleted file mode 100644
index 6de21eb053..0000000000
--- a/src/queue/processors/db/delete-post-dependents.ts
+++ /dev/null
@@ -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 })
- ]))
-]);
diff --git a/src/queue/processors/db/index.ts b/src/queue/processors/db/index.ts
deleted file mode 100644
index 75838c099b..0000000000
--- a/src/queue/processors/db/index.ts
+++ /dev/null
@@ -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);
diff --git a/src/remote/activitypub/act/delete/note.ts b/src/remote/activitypub/act/delete/note.ts
index ff9a8ee5f8..8e9447b481 100644
--- a/src/remote/activitypub/act/delete/note.ts
+++ b/src/remote/activitypub/act/delete/note.ts
@@ -1,7 +1,6 @@
import * as debug from 'debug';
import Post from '../../../../models/post';
-import { createDb } from '../../../../queue';
import { IRemoteUser } from '../../../../models/user';
const log = debug('misskey:activitypub');
@@ -19,10 +18,13 @@ export default async function(actor: IRemoteUser, uri: string): Promise<void> {
throw new Error('投稿を削除しようとしているユーザーは投稿の作成者ではありません');
}
- Post.remove({ _id: post._id });
-
- createDb({
- type: 'deletePostDependents',
- id: post._id
- }).delay(65536).save();
+ Post.update({ _id: post._id }, {
+ $set: {
+ deletedAt: new Date(),
+ text: null,
+ textHtml: null,
+ mediaIds: [],
+ poll: null
+ }
+ });
}