summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes/featured.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/notes/featured.ts')
-rw-r--r--src/server/api/endpoints/notes/featured.ts32
1 files changed, 10 insertions, 22 deletions
diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts
index 3648b307d7..c44a5275bb 100644
--- a/src/server/api/endpoints/notes/featured.ts
+++ b/src/server/api/endpoints/notes/featured.ts
@@ -1,8 +1,7 @@
import $ from 'cafy';
-import Note from '../../../../models/note';
-import { packMany } from '../../../../models/note';
import define from '../../define';
-import { getHideUserIds } from '../../common/get-hide-users';
+import { generateMuteQuery } from '../../common/generate-mute-query';
+import { Notes } from '../../../../models';
export const meta = {
desc: {
@@ -35,25 +34,14 @@ export const meta = {
export default define(meta, async (ps, user) => {
const day = 1000 * 60 * 60 * 24 * 3; // 3日前まで
- const hideUserIds = await getHideUserIds(user);
+ const query = Notes.createQueryBuilder('note')
+ .andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) })
+ .andWhere(`note.visibility = 'public'`)
+ .leftJoinAndSelect('note.user', 'user');
- const notes = await Note.find({
- createdAt: {
- $gt: new Date(Date.now() - day)
- },
- deletedAt: null,
- visibility: 'public',
- '_user.host': null,
- ...(hideUserIds && hideUserIds.length > 0 ? { userId: { $nin: hideUserIds } } : {})
- }, {
- limit: ps.limit,
- sort: {
- score: -1
- },
- hint: {
- score: -1
- }
- });
+ if (user) generateMuteQuery(query, user);
+
+ const notes = await query.orderBy('note.score', 'DESC').take(ps.limit).getMany();
- return await packMany(notes, user);
+ return await Notes.packMany(notes, user);
});