diff options
| author | anatawa12 <anatawa12@icloud.com> | 2023-10-17 20:56:17 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-17 20:56:17 +0900 |
| commit | 5a3c6575dd5d97dc0dc193771b80898fca4cfdc0 (patch) | |
| tree | 010f40e4a961b888cb14bd34ed2fb9a88ad66a5f /packages/backend/src/core/UserFollowingService.ts | |
| parent | update deps (diff) | |
| download | sharkey-5a3c6575dd5d97dc0dc193771b80898fca4cfdc0.tar.gz sharkey-5a3c6575dd5d97dc0dc193771b80898fca4cfdc0.tar.bz2 sharkey-5a3c6575dd5d97dc0dc193771b80898fca4cfdc0.zip | |
新規にフォローした人のwithRepliesをtrueにする機能を追加 (#12048)
* feat: add defaultWithReplies to MiUser
* feat: use defaultWithReplies when creating MiFollowing
* feat: update defaultWithReplies from API
* feat: return defaultWithReplies as a part of $i
* feat(frontend): configure defaultWithReplies
* docs(changelog): 新規にフォローした人のをデフォルトでTL二追加できるように
* fix: typo
* style: fix lint failure
* chore: improve UI text
* chore: make optional params of UserFollowingService.follow() object
* chore: UserFollowingService.follow() accept withReplies
* chore: add withReplies to MiFollowRequest
* chore: process withReplies for follow request
* feat: accept withReplies on 'following/create' endpoint
* feat: store defaultWithReplies in client store
* Revert "feat: return defaultWithReplies as a part of $i"
This reverts commit f2cc4fe6
* Revert "feat: update defaultWithReplies from API"
This reverts commit 95e3cee6
* Revert "feat: add defaultWithReplies to MiUser"
This reverts commit 9f5ab14d7063532de2b049bc2ed40a15658168f5.
* feat: configuring withReplies in import-following
* feat(frontend): configure withReplies
* fix(frontend): incorrectly showRepliesToOthersInTimeline can be shown
* fix(backend): withReplies of following/create not working
* fix(frontend): importFollowing error
* fix: withReplies is not working with follow import
* fix(frontend): use v-model
* style: fix lint
---------
Co-authored-by: Sayamame-beans <61457993+sayamame-beans@users.noreply.github.com>
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/backend/src/core/UserFollowingService.ts')
| -rw-r--r-- | packages/backend/src/core/UserFollowingService.ts | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/packages/backend/src/core/UserFollowingService.ts b/packages/backend/src/core/UserFollowingService.ts index 87484f0383..7548e3d28f 100644 --- a/packages/backend/src/core/UserFollowingService.ts +++ b/packages/backend/src/core/UserFollowingService.ts @@ -93,7 +93,15 @@ export class UserFollowingService implements OnModuleInit { } @bindThis - public async follow(_follower: { id: MiUser['id'] }, _followee: { id: MiUser['id'] }, requestId?: string, silent = false): Promise<void> { + public async follow( + _follower: { id: MiUser['id'] }, + _followee: { id: MiUser['id'] }, + { requestId, silent = false, withReplies }: { + requestId?: string, + silent?: boolean, + withReplies?: boolean, + } = {}, + ): Promise<void> { const [follower, followee] = await Promise.all([ this.usersRepository.findOneByOrFail({ id: _follower.id }), this.usersRepository.findOneByOrFail({ id: _followee.id }), @@ -171,12 +179,12 @@ export class UserFollowingService implements OnModuleInit { } if (!autoAccept) { - await this.createFollowRequest(follower, followee, requestId); + await this.createFollowRequest(follower, followee, requestId, withReplies); return; } } - await this.insertFollowingDoc(followee, follower, silent); + await this.insertFollowingDoc(followee, follower, silent, withReplies); if (this.userEntityService.isRemoteUser(follower) && this.userEntityService.isLocalUser(followee)) { const content = this.apRendererService.addContext(this.apRendererService.renderAccept(this.apRendererService.renderFollow(follower, followee, requestId), followee)); @@ -193,6 +201,7 @@ export class UserFollowingService implements OnModuleInit { id: MiUser['id']; host: MiUser['host']; uri: MiUser['host']; inbox: MiUser['inbox']; sharedInbox: MiUser['sharedInbox'] }, silent = false, + withReplies?: boolean, ): Promise<void> { if (follower.id === followee.id) return; @@ -202,6 +211,7 @@ export class UserFollowingService implements OnModuleInit { id: this.idService.gen(), followerId: follower.id, followeeId: followee.id, + withReplies: withReplies, // 非正規化 followerHost: follower.host, @@ -454,6 +464,7 @@ export class UserFollowingService implements OnModuleInit { id: MiUser['id']; host: MiUser['host']; uri: MiUser['host']; inbox: MiUser['inbox']; sharedInbox: MiUser['sharedInbox']; }, requestId?: string, + withReplies?: boolean, ): Promise<void> { if (follower.id === followee.id) return; @@ -471,6 +482,7 @@ export class UserFollowingService implements OnModuleInit { followerId: follower.id, followeeId: followee.id, requestId, + withReplies, // 非正規化 followerHost: follower.host, @@ -555,7 +567,7 @@ export class UserFollowingService implements OnModuleInit { throw new IdentifiableError('8884c2dd-5795-4ac9-b27e-6a01d38190f9', 'No follow request.'); } - await this.insertFollowingDoc(followee, follower); + await this.insertFollowingDoc(followee, follower, false, request.withReplies); if (this.userEntityService.isRemoteUser(follower) && this.userEntityService.isLocalUser(followee)) { const content = this.apRendererService.addContext(this.apRendererService.renderAccept(this.apRendererService.renderFollow(follower, followee as MiPartialLocalUser, request.requestId!), followee)); |