diff options
| author | まっちゃてぃー <56515516+mattyatea@users.noreply.github.com> | 2023-10-16 20:11:27 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-16 20:11:27 +0900 |
| commit | 5efd01ba70b37868f625e0acfc5c1c22d5df775c (patch) | |
| tree | d042555298ef2beb8feb3db1cca2320c41657fb9 /packages/backend/src/core/UserFollowingService.ts | |
| parent | fix test (diff) | |
| download | sharkey-5efd01ba70b37868f625e0acfc5c1c22d5df775c.tar.gz sharkey-5efd01ba70b37868f625e0acfc5c1c22d5df775c.tar.bz2 sharkey-5efd01ba70b37868f625e0acfc5c1c22d5df775c.zip | |
feat: サーバーサイレンス機能を追加 (#12031)
* feat : サーバーサイレンスを追加
* Update CHANGELOG.md
* Update CHANGELOG.md
* Update locale
* Update instance-info.vue
* update misskey-js.api.md
* lint fix
* migration fix
* 既存のものを使うように
* fix
* 色々直した
* Update packages/frontend/src/pages/admin/instance-block.vue
* Update packages/frontend/src/pages/admin/instance-block.vue
* Update packages/frontend/src/components/MkInstanceCardMini.vue
* Update packages/backend/src/core/entities/InstanceEntityService.ts
* Update packages/backend/src/core/entities/InstanceEntityService.ts
* Update packages/backend/src/core/entities/InstanceEntityService.ts
* Update packages/backend/src/core/UserFollowingService.ts
* Update packages/backend/src/core/UserFollowingService.ts
* fix: サイレンスされてるサーバーからの投稿は全部ホームにする
* fix: undefinedでfalseを返すようにした
---------
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 | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/packages/backend/src/core/UserFollowingService.ts b/packages/backend/src/core/UserFollowingService.ts index f6d0c3a6d5..87484f0383 100644 --- a/packages/backend/src/core/UserFollowingService.ts +++ b/packages/backend/src/core/UserFollowingService.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { Inject, Injectable, OnModuleInit, forwardRef } from '@nestjs/common'; +import { Inject, Injectable, OnModuleInit } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { IsNull } from 'typeorm'; import type { MiLocalUser, MiPartialLocalUser, MiPartialRemoteUser, MiRemoteUser, MiUser } from '@/models/User.js'; @@ -28,6 +28,7 @@ import { MetaService } from '@/core/MetaService.js'; import { CacheService } from '@/core/CacheService.js'; import type { Config } from '@/config.js'; import { AccountMoveService } from '@/core/AccountMoveService.js'; +import { UtilityService } from '@/core/UtilityService.js'; import Logger from '../logger.js'; const logger = new Logger('following/create'); @@ -71,6 +72,7 @@ export class UserFollowingService implements OnModuleInit { private instancesRepository: InstancesRepository, private cacheService: CacheService, + private utilityService: UtilityService, private userEntityService: UserEntityService, private idService: IdService, private queueService: QueueService, @@ -118,15 +120,16 @@ export class UserFollowingService implements OnModuleInit { } const followeeProfile = await this.userProfilesRepository.findOneByOrFail({ userId: followee.id }); - // フォロー対象が鍵アカウントである or // フォロワーがBotであり、フォロー対象がBotからのフォローに慎重である or - // フォロワーがローカルユーザーであり、フォロー対象がリモートユーザーである + // フォロワーがローカルユーザーであり、フォロー対象がリモートユーザーである or + // フォロワーがローカルユーザーであり、フォロー対象がサイレンスされているサーバーである // 上記のいずれかに当てはまる場合はすぐフォローせずにフォローリクエストを発行しておく if ( followee.isLocked || (followeeProfile.carefulBot && follower.isBot) || - (this.userEntityService.isLocalUser(follower) && this.userEntityService.isRemoteUser(followee) && process.env.FORCE_FOLLOW_REMOTE_USER_FOR_TESTING !== 'true') + (this.userEntityService.isLocalUser(follower) && this.userEntityService.isRemoteUser(followee) && process.env.FORCE_FOLLOW_REMOTE_USER_FOR_TESTING !== 'true') || + (this.userEntityService.isLocalUser(followee) && this.userEntityService.isRemoteUser(follower) && this.utilityService.isSilencedHost((await this.metaService.fetch()).silencedHosts, follower.host)) ) { let autoAccept = false; |