diff options
| author | zyoshoka <107108195+zyoshoka@users.noreply.github.com> | 2025-06-08 09:12:59 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-08 09:12:59 +0900 |
| commit | b5767c315a31363edac4fe39aa5202f94942f7e9 (patch) | |
| tree | 2273f8ea660156d1bfa4d307eb7d3c313d835bec /packages/backend/src/server/ActivityPubServerService.ts | |
| parent | Bump version to 2025.6.1-alpha.4 (diff) | |
| download | misskey-b5767c315a31363edac4fe39aa5202f94942f7e9.tar.gz misskey-b5767c315a31363edac4fe39aa5202f94942f7e9.tar.bz2 misskey-b5767c315a31363edac4fe39aa5202f94942f7e9.zip | |
fix(backend): correct outbox pagination (#16176)
Diffstat (limited to 'packages/backend/src/server/ActivityPubServerService.ts')
| -rw-r--r-- | packages/backend/src/server/ActivityPubServerService.ts | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/packages/backend/src/server/ActivityPubServerService.ts b/packages/backend/src/server/ActivityPubServerService.ts index f7b22c44c4..a5fb5b82e3 100644 --- a/packages/backend/src/server/ActivityPubServerService.ts +++ b/packages/backend/src/server/ActivityPubServerService.ts @@ -482,9 +482,19 @@ export class ActivityPubServerService { return true; }, dbFallback: async (untilId, sinceId, limit) => { - return await this.getUserNotesFromDb(sinceId, untilId, limit, user.id); + return await this.getUserNotesFromDb({ + untilId, + sinceId, + limit, + userId: user.id, + }); }, - }) : await this.getUserNotesFromDb(sinceId ?? null, untilId ?? null, limit, user.id); + }) : await this.getUserNotesFromDb({ + untilId: untilId ?? null, + sinceId: sinceId ?? null, + limit, + userId: user.id, + }); if (sinceId) notes.reverse(); @@ -523,16 +533,21 @@ export class ActivityPubServerService { } @bindThis - private async getUserNotesFromDb(untilId: string | null, sinceId: string | null, limit: number, userId: MiUser['id']) { - return await this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), sinceId, untilId) - .andWhere('note.userId = :userId', { userId }) + private async getUserNotesFromDb(ps: { + untilId: string | null, + sinceId: string | null, + limit: number, + userId: MiUser['id'], + }) { + return await this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere('note.userId = :userId', { userId: ps.userId }) .andWhere(new Brackets(qb => { qb .where('note.visibility = \'public\'') .orWhere('note.visibility = \'home\''); })) .andWhere('note.localOnly = FALSE') - .limit(limit) + .limit(ps.limit) .getMany(); } |