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.ts19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts
index 0a1d8668b0..a499afabf0 100644
--- a/src/server/api/endpoints/notes/featured.ts
+++ b/src/server/api/endpoints/notes/featured.ts
@@ -15,12 +15,17 @@ export const meta = {
params: {
limit: {
- validator: $.optional.num.range(1, 30),
+ validator: $.optional.num.range(1, 100),
default: 10,
desc: {
'ja-JP': '最大数'
}
- }
+ },
+
+ offset: {
+ validator: $.optional.num.min(0),
+ default: 0
+ },
},
res: {
@@ -35,6 +40,7 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
+ const max = 30;
const day = 1000 * 60 * 60 * 24 * 3; // 3日前まで
const query = Notes.createQueryBuilder('note')
@@ -46,7 +52,14 @@ export default define(meta, async (ps, user) => {
if (user) generateMuteQuery(query, user);
- const notes = await query.orderBy('note.score', 'DESC').take(ps.limit!).getMany();
+ let notes = await query
+ .orderBy('note.score', 'DESC')
+ .take(max)
+ .getMany();
+
+ notes.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
+
+ notes = notes.slice(ps.offset, ps.offset + ps.limit);
return await Notes.packMany(notes, user);
});