summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
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/server/api/endpoints
parentユーザーが存在しない場合の表示を追加 (diff)
downloadsharkey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.tar.gz
sharkey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.tar.bz2
sharkey-0e046faf4afb7db260ea4797e8cf32ad13d70c6c.zip
みつけるの人気のタグを第2ソートで連合含めたユーザー数にしたりユーザーのタグ以外は除外するように
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/hashtags/list.ts33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/server/api/endpoints/hashtags/list.ts b/src/server/api/endpoints/hashtags/list.ts
index 5c37dbd6b5..5f197a8726 100644
--- a/src/server/api/endpoints/hashtags/list.ts
+++ b/src/server/api/endpoints/hashtags/list.ts
@@ -11,16 +11,35 @@ export const meta = {
default: 10
},
+ attachedToUserOnly: {
+ validator: $.optional.bool,
+ default: false
+ },
+
+ attachedToLocalUserOnly: {
+ validator: $.optional.bool,
+ default: false
+ },
+
+ attachedToRemoteUserOnly: {
+ validator: $.optional.bool,
+ default: false
+ },
+
sort: {
validator: $.str.or([
'+mentionedUsers',
'-mentionedUsers',
'+mentionedLocalUsers',
'-mentionedLocalUsers',
+ '+mentionedRemoteUsers',
+ '-mentionedRemoteUsers',
'+attachedUsers',
'-attachedUsers',
'+attachedLocalUsers',
'-attachedLocalUsers',
+ '+attachedRemoteUsers',
+ '-attachedRemoteUsers',
]),
},
}
@@ -31,23 +50,33 @@ const sort: any = {
'-mentionedUsers': { mentionedUsersCount: 1 },
'+mentionedLocalUsers': { mentionedLocalUsersCount: -1 },
'-mentionedLocalUsers': { mentionedLocalUsersCount: 1 },
+ '+mentionedRemoteUsers': { mentionedRemoteUsersCount: -1 },
+ '-mentionedRemoteUsers': { mentionedRemoteUsersCount: 1 },
'+attachedUsers': { attachedUsersCount: -1 },
'-attachedUsers': { attachedUsersCount: 1 },
'+attachedLocalUsers': { attachedLocalUsersCount: -1 },
'-attachedLocalUsers': { attachedLocalUsersCount: 1 },
+ '+attachedRemoteUsers': { attachedRemoteUsersCount: -1 },
+ '-attachedRemoteUsers': { attachedRemoteUsersCount: 1 },
};
export default define(meta, (ps, me) => new Promise(async (res, rej) => {
+ const q = {} as any;
+ if (ps.attachedToUserOnly) q.attachedUsersCount = { $ne: 0 };
+ if (ps.attachedToLocalUserOnly) q.attachedLocalUsersCount = { $ne: 0 };
+ if (ps.attachedToRemoteUserOnly) q.attachedRemoteUsersCount = { $ne: 0 };
const tags = await Hashtag
- .find({}, {
+ .find(q, {
limit: ps.limit,
sort: sort[ps.sort],
fields: {
tag: true,
mentionedUsersCount: true,
mentionedLocalUsersCount: true,
+ mentionedRemoteUsersCount: true,
attachedUsersCount: true,
- attachedLocalUsersCount: true
+ attachedLocalUsersCount: true,
+ attachedRemoteUsersCount: true
}
});