diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-11-08 15:52:37 +0000 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-11-08 15:52:37 +0000 |
| commit | f079edaf3ccc1fea9242f0f8522ebbfc7e8242e4 (patch) | |
| tree | ead184cf29c147bc74ed92ce905b46e5e42209c1 /packages/backend/src/core/FlashService.ts | |
| parent | merge: Bump version number (!735) (diff) | |
| parent | Release: 2024.10.1 (diff) | |
| download | sharkey-f079edaf3ccc1fea9242f0f8522ebbfc7e8242e4.tar.gz sharkey-f079edaf3ccc1fea9242f0f8522ebbfc7e8242e4.tar.bz2 sharkey-f079edaf3ccc1fea9242f0f8522ebbfc7e8242e4.zip | |
Merge tag '2024.10.1' into feature/2024.10
Diffstat (limited to 'packages/backend/src/core/FlashService.ts')
| -rw-r--r-- | packages/backend/src/core/FlashService.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/backend/src/core/FlashService.ts b/packages/backend/src/core/FlashService.ts new file mode 100644 index 0000000000..2a98225382 --- /dev/null +++ b/packages/backend/src/core/FlashService.ts @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Inject, Injectable } from '@nestjs/common'; +import { DI } from '@/di-symbols.js'; +import { type FlashsRepository } from '@/models/_.js'; + +/** + * MisskeyPlay関係のService + */ +@Injectable() +export class FlashService { + constructor( + @Inject(DI.flashsRepository) + private flashRepository: FlashsRepository, + ) { + } + + /** + * 人気のあるPlay一覧を取得する. + */ + public async featured(opts?: { offset?: number, limit: number }) { + const builder = this.flashRepository.createQueryBuilder('flash') + .andWhere('flash.likedCount > 0') + .andWhere('flash.visibility = :visibility', { visibility: 'public' }) + .addOrderBy('flash.likedCount', 'DESC') + .addOrderBy('flash.updatedAt', 'DESC') + .addOrderBy('flash.id', 'DESC'); + + if (opts?.offset) { + builder.skip(opts.offset); + } + + builder.take(opts?.limit ?? 10); + + return await builder.getMany(); + } +} |