summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-18 11:47:25 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-18 11:47:25 +0900
commit0e046faf4afb7db260ea4797e8cf32ad13d70c6c (patch)
treeec5e413011c0168ff4190edba678136c1d082b46 /src/services
parentユーザーが存在しない場合の表示を追加 (diff)
downloadmisskey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.tar.gz
misskey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.tar.bz2
misskey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.zip
みつけるの人気のタグを第2ソートで連合含めたユーザー数にしたりユーザーのタグ以外は除外するように
Diffstat (limited to 'src/services')
-rw-r--r--src/services/update-hashtag.ts27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/services/update-hashtag.ts b/src/services/update-hashtag.ts
index e5de7c10c6..23c39312c0 100644
--- a/src/services/update-hashtag.ts
+++ b/src/services/update-hashtag.ts
@@ -1,4 +1,4 @@
-import { IUser, isLocalUser } from '../models/user';
+import { IUser, isLocalUser, isRemoteUser } from '../models/user';
import Hashtag from '../models/hashtag';
import hashtagChart from './chart/hashtag';
@@ -26,12 +26,20 @@ export async function updateHashtag(user: IUser, tag: string, isUserAttached = f
$push.attachedLocalUserIds = user._id;
$inc.attachedLocalUsersCount = 1;
}
+ // 自分が(リモートで)初めてこのタグを使ったなら
+ if (isRemoteUser(user) && !index.attachedRemoteUserIds.some(id => id.equals(user._id))) {
+ $push.attachedRemoteUserIds = user._id;
+ $inc.attachedRemoteUsersCount = 1;
+ }
} else {
$pull.attachedUserIds = user._id;
$inc.attachedUsersCount = -1;
if (isLocalUser(user)) {
$pull.attachedLocalUserIds = user._id;
$inc.attachedLocalUsersCount = -1;
+ } else {
+ $pull.attachedRemoteUserIds = user._id;
+ $inc.attachedRemoteUsersCount = -1;
}
}
} else {
@@ -45,6 +53,11 @@ export async function updateHashtag(user: IUser, tag: string, isUserAttached = f
$push.mentionedLocalUserIds = user._id;
$inc.mentionedLocalUsersCount = 1;
}
+ // 自分が(リモートで)初めてこのタグを使ったなら
+ if (isRemoteUser(user) && !index.mentionedRemoteUserIds.some(id => id.equals(user._id))) {
+ $push.mentionedRemoteUserIds = user._id;
+ $inc.mentionedRemoteUsersCount = 1;
+ }
}
const q = {} as any;
@@ -60,10 +73,14 @@ export async function updateHashtag(user: IUser, tag: string, isUserAttached = f
mentionedUsersCount: 0,
mentionedLocalUserIds: [],
mentionedLocalUsersCount: 0,
+ mentionedRemoteUserIds: [],
+ mentionedRemoteUsersCount: 0,
attachedUserIds: [user._id],
attachedUsersCount: 1,
attachedLocalUserIds: isLocalUser(user) ? [user._id] : [],
- attachedLocalUsersCount: isLocalUser(user) ? 1 : 0
+ attachedLocalUsersCount: isLocalUser(user) ? 1 : 0,
+ attachedRemoteUserIds: isRemoteUser(user) ? [user._id] : [],
+ attachedRemoteUsersCount: isRemoteUser(user) ? 1 : 0,
});
} else {
Hashtag.insert({
@@ -72,10 +89,14 @@ export async function updateHashtag(user: IUser, tag: string, isUserAttached = f
mentionedUsersCount: 1,
mentionedLocalUserIds: isLocalUser(user) ? [user._id] : [],
mentionedLocalUsersCount: isLocalUser(user) ? 1 : 0,
+ mentionedRemoteUserIds: isRemoteUser(user) ? [user._id] : [],
+ mentionedRemoteUsersCount: isRemoteUser(user) ? 1 : 0,
attachedUserIds: [],
attachedUsersCount: 0,
attachedLocalUserIds: [],
- attachedLocalUsersCount: 0
+ attachedLocalUsersCount: 0,
+ attachedRemoteUserIds: [],
+ attachedRemoteUsersCount: 0,
});
}
}