summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authoranatawa12 <anatawa12@icloud.com>2023-09-22 16:52:43 +0900
committerGitHub <noreply@github.com>2023-09-22 16:52:43 +0900
commit526b3ae0e49caeee05b299272e80c30f69c91d92 (patch)
tree2cc8f4bc8f654deb2e0f9f65314a91fda537990e /packages/backend/src
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadmisskey-526b3ae0e49caeee05b299272e80c30f69c91d92.tar.gz
misskey-526b3ae0e49caeee05b299272e80c30f69c91d92.tar.bz2
misskey-526b3ae0e49caeee05b299272e80c30f69c91d92.zip
feat: ユーザを除外できるアンテナ (#11277)
* feat: ユーザを除外できるアンテナ * feat(backend/api): ユーザを除外できるアンテナの作成・更新 * feat(frontend): ユーザを除外できるアンテナの作成・更新 * docs(changelog): add アンテナで一部のユーザを除外したすべてのノートから受信できるようになりました * fix: d.ts生成時にexport defaultを生成するように * fix CHANGELOG.md --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/AntennaService.ts6
-rw-r--r--packages/backend/src/models/Antenna.ts4
-rw-r--r--packages/backend/src/models/json-schema/antenna.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/antennas/create.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/antennas/update.ts2
5 files changed, 11 insertions, 5 deletions
diff --git a/packages/backend/src/core/AntennaService.ts b/packages/backend/src/core/AntennaService.ts
index a7e74eeef0..841ce4b84a 100644
--- a/packages/backend/src/core/AntennaService.ts
+++ b/packages/backend/src/core/AntennaService.ts
@@ -119,6 +119,12 @@ export class AntennaService implements OnApplicationShutdown {
return this.utilityService.getFullApAccount(username, host).toLowerCase();
});
if (!accts.includes(this.utilityService.getFullApAccount(noteUser.username, noteUser.host).toLowerCase())) return false;
+ } else if (antenna.src === 'users_blacklist') {
+ const accts = antenna.users.map(x => {
+ const { username, host } = Acct.parse(x);
+ return this.utilityService.getFullApAccount(username, host).toLowerCase();
+ });
+ if (accts.includes(this.utilityService.getFullApAccount(noteUser.username, noteUser.host).toLowerCase())) return false;
}
const keywords = antenna.keywords
diff --git a/packages/backend/src/models/Antenna.ts b/packages/backend/src/models/Antenna.ts
index 7c1d80cc46..dc398b6dd2 100644
--- a/packages/backend/src/models/Antenna.ts
+++ b/packages/backend/src/models/Antenna.ts
@@ -41,8 +41,8 @@ export class MiAntenna {
})
public name: string;
- @Column('enum', { enum: ['home', 'all', 'users', 'list'] })
- public src: 'home' | 'all' | 'users' | 'list';
+ @Column('enum', { enum: ['home', 'all', 'users', 'list', 'users_blacklist'] })
+ public src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist';
@Column({
...id(),
diff --git a/packages/backend/src/models/json-schema/antenna.ts b/packages/backend/src/models/json-schema/antenna.ts
index 3f58cbee6c..7b6475919c 100644
--- a/packages/backend/src/models/json-schema/antenna.ts
+++ b/packages/backend/src/models/json-schema/antenna.ts
@@ -47,7 +47,7 @@ export const packedAntennaSchema = {
src: {
type: 'string',
optional: false, nullable: false,
- enum: ['home', 'all', 'users', 'list'],
+ enum: ['home', 'all', 'users', 'list', 'users_blacklist'],
},
userListId: {
type: 'string',
diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts
index f1170efe42..15fca4904d 100644
--- a/packages/backend/src/server/api/endpoints/antennas/create.ts
+++ b/packages/backend/src/server/api/endpoints/antennas/create.ts
@@ -47,7 +47,7 @@ export const paramDef = {
type: 'object',
properties: {
name: { type: 'string', minLength: 1, maxLength: 100 },
- src: { type: 'string', enum: ['home', 'all', 'users', 'list'] },
+ src: { type: 'string', enum: ['home', 'all', 'users', 'list', 'users_blacklist'] },
userListId: { type: 'string', format: 'misskey:id', nullable: true },
keywords: { type: 'array', items: {
type: 'array', items: {
diff --git a/packages/backend/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts
index b020a7595f..0e98746881 100644
--- a/packages/backend/src/server/api/endpoints/antennas/update.ts
+++ b/packages/backend/src/server/api/endpoints/antennas/update.ts
@@ -46,7 +46,7 @@ export const paramDef = {
properties: {
antennaId: { type: 'string', format: 'misskey:id' },
name: { type: 'string', minLength: 1, maxLength: 100 },
- src: { type: 'string', enum: ['home', 'all', 'users', 'list'] },
+ src: { type: 'string', enum: ['home', 'all', 'users', 'list', 'users_blacklist'] },
userListId: { type: 'string', format: 'misskey:id', nullable: true },
keywords: { type: 'array', items: {
type: 'array', items: {