diff --git a/packages/backend/src/server/api/endpoints/notes/shuffled.ts b/packages/backend/src/server/api/endpoints/notes/shuffled.ts index a5c96b3d7..c7949c3cf 100644 --- a/packages/backend/src/server/api/endpoints/notes/shuffled.ts +++ b/packages/backend/src/server/api/endpoints/notes/shuffled.ts @@ -32,8 +32,7 @@ export const paramDef = { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, + offset: { type: 'integer', minimum: 0, default: 0 }, seed: { description: 'A seed for the shuffling. If the same seed is provided, the same shuffling will be used. Required for pagination to work.', type: 'number', @@ -45,8 +44,7 @@ export const paramDef = { // eslint-disable-next-line import/no-default-export export default define(meta, paramDef, async (ps, user) => { //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + const query = Notes.createQueryBuilder('note') .addSelect('md5(note.id || ' + ps.seed + ')', 'shuffleorder') .andWhere('note.userId = :meId', { meId: user.id }) .innerJoinAndSelect('note.user', 'user') @@ -70,7 +68,10 @@ export default define(meta, paramDef, async (ps, user) => { generateMutedRenotesQuery(query, user); //#endregion - const timeline = await visibilityQuery(query, user).take(ps.limit).getMany(); + const timeline = await visibilityQuery(query, user) + .skip(ps.offset) + .take(ps.limit) + .getMany(); process.nextTick(() => { activeUsersChart.read(user); diff --git a/packages/client/src/components/timeline.vue b/packages/client/src/components/timeline.vue index b60793420..adb49cff2 100644 --- a/packages/client/src/components/timeline.vue +++ b/packages/client/src/components/timeline.vue @@ -54,6 +54,7 @@ const onChangeFollowing = () => { let randomSeed = Math.random(); let endpoint; let query; +let offsetMode = false; let connection; let connection2; @@ -142,6 +143,7 @@ switch (props.src) { query = { seed: randomSeed, }; + offsetMode = true; break; } @@ -149,6 +151,7 @@ const pagination = { endpoint, limit: 10, params: query, + offsetMode, }; onUnmounted(() => {