summaryrefslogtreecommitdiff
path: root/src/services/note
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-19 12:43:25 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-19 12:43:25 +0900
commit0d5bc3be6611a6877a71233ac57c0987027c0398 (patch)
tree28c6b736dc870b6de5893ee52b712c20973b7298 /src/services/note
parentMerge pull request #1514 from syuilo/greenkeeper/style-loader-0.21.0 (diff)
downloadmisskey-0d5bc3be6611a6877a71233ac57c0987027c0398.tar.gz
misskey-0d5bc3be6611a6877a71233ac57c0987027c0398.tar.bz2
misskey-0d5bc3be6611a6877a71233ac57c0987027c0398.zip
ストーキング実装
Closes #1511
Diffstat (limited to 'src/services/note')
-rw-r--r--src/services/note/create.ts24
1 files changed, 8 insertions, 16 deletions
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index bdef5e09fc..32db77011f 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -124,19 +124,8 @@ export default async (user: IUser, data: {
publishGlobalTimelineStream(noteObj);
// Fetch all followers
- const followers = await Following.aggregate([{
- $lookup: {
- from: 'users',
- localField: 'followerId',
- foreignField: '_id',
- as: 'user'
- }
- }, {
- $match: {
- followeeId: note.userId
- }
- }], {
- _id: false
+ const followers = await Following.find({
+ followeeId: note.userId
});
if (!silent) {
@@ -157,12 +146,15 @@ export default async (user: IUser, data: {
deliver(user, await render(), data.renote._user.inbox);
}
- Promise.all(followers.map(async follower => {
- follower = follower.user[0];
+ Promise.all(followers.map(async following => {
+ const follower = following._follower;
if (isLocalUser(follower)) {
+ // この投稿が返信かつstalkフォローでないならスキップ
+ if (note.replyId && !following.stalk) return;
+
// Publish event to followers stream
- stream(follower._id, 'note', noteObj);
+ stream(following.followerId, 'note', noteObj);
} else {
// フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信
if (isLocalUser(user)) {