enhance: 新しいコンディショナルロール条件の実装 (#13732)
* enhance: 新しいコンディショナルロールの実装 * fix: CHANGELOG.md
This commit is contained in:
@@ -6,69 +6,149 @@
|
||||
import { Entity, Column, PrimaryColumn } from 'typeorm';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
/**
|
||||
* ~かつ~
|
||||
* 複数の条件を同時に満たす場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueAnd = {
|
||||
type: 'and';
|
||||
values: RoleCondFormulaValue[];
|
||||
};
|
||||
|
||||
/**
|
||||
* ~または~
|
||||
* 複数の条件のうち、いずれかを満たす場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueOr = {
|
||||
type: 'or';
|
||||
values: RoleCondFormulaValue[];
|
||||
};
|
||||
|
||||
/**
|
||||
* ~ではない
|
||||
* 条件を満たさない場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueNot = {
|
||||
type: 'not';
|
||||
value: RoleCondFormulaValue;
|
||||
};
|
||||
|
||||
/**
|
||||
* ローカルユーザーのみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsLocal = {
|
||||
type: 'isLocal';
|
||||
};
|
||||
|
||||
/**
|
||||
* リモートユーザーのみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsRemote = {
|
||||
type: 'isRemote';
|
||||
};
|
||||
|
||||
/**
|
||||
* 既に指定のマニュアルロールにアサインされている場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueRoleAssignedTo = {
|
||||
type: 'roleAssignedTo';
|
||||
roleId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* サスペンド済みアカウントの場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsSuspended = {
|
||||
type: 'isSuspended';
|
||||
};
|
||||
|
||||
/**
|
||||
* 鍵アカウントの場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsLocked = {
|
||||
type: 'isLocked';
|
||||
};
|
||||
|
||||
/**
|
||||
* botアカウントの場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsBot = {
|
||||
type: 'isBot';
|
||||
};
|
||||
|
||||
/**
|
||||
* 猫アカウントの場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsCat = {
|
||||
type: 'isCat';
|
||||
};
|
||||
|
||||
/**
|
||||
* 「ユーザを見つけやすくする」が有効なアカウントの場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueIsExplorable = {
|
||||
type: 'isExplorable';
|
||||
};
|
||||
|
||||
/**
|
||||
* ユーザが作成されてから指定期間経過した場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueCreatedLessThan = {
|
||||
type: 'createdLessThan';
|
||||
sec: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* ユーザが作成されてから指定期間経っていない場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueCreatedMoreThan = {
|
||||
type: 'createdMoreThan';
|
||||
sec: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* フォロワー数が指定値以下の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueFollowersLessThanOrEq = {
|
||||
type: 'followersLessThanOrEq';
|
||||
value: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* フォロワー数が指定値以上の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueFollowersMoreThanOrEq = {
|
||||
type: 'followersMoreThanOrEq';
|
||||
value: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* フォロー数が指定値以下の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueFollowingLessThanOrEq = {
|
||||
type: 'followingLessThanOrEq';
|
||||
value: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* フォロー数が指定値以上の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueFollowingMoreThanOrEq = {
|
||||
type: 'followingMoreThanOrEq';
|
||||
value: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* 投稿数が指定値以下の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueNotesLessThanOrEq = {
|
||||
type: 'notesLessThanOrEq';
|
||||
value: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* 投稿数が指定値以上の場合のみ成立とする
|
||||
*/
|
||||
type CondFormulaValueNotesMoreThanOrEq = {
|
||||
type: 'notesMoreThanOrEq';
|
||||
value: number;
|
||||
@@ -80,6 +160,11 @@ export type RoleCondFormulaValue = { id: string } & (
|
||||
CondFormulaValueNot |
|
||||
CondFormulaValueIsLocal |
|
||||
CondFormulaValueIsRemote |
|
||||
CondFormulaValueIsSuspended |
|
||||
CondFormulaValueIsLocked |
|
||||
CondFormulaValueIsBot |
|
||||
CondFormulaValueIsCat |
|
||||
CondFormulaValueIsExplorable |
|
||||
CondFormulaValueRoleAssignedTo |
|
||||
CondFormulaValueCreatedLessThan |
|
||||
CondFormulaValueCreatedMoreThan |
|
||||
|
||||
@@ -57,6 +57,20 @@ export const packedRoleCondFormulaValueIsLocalOrRemoteSchema = {
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const packedRoleCondFormulaValueUserSettingBooleanSchema = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: {
|
||||
type: 'string', optional: false,
|
||||
},
|
||||
type: {
|
||||
type: 'string',
|
||||
nullable: false, optional: false,
|
||||
enum: ['isSuspended', 'isLocked', 'isBot', 'isCat', 'isExplorable'],
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const packedRoleCondFormulaValueAssignedRoleSchema = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
@@ -135,6 +149,9 @@ export const packedRoleCondFormulaValueSchema = {
|
||||
{
|
||||
ref: 'RoleCondFormulaValueIsLocalOrRemote',
|
||||
},
|
||||
{
|
||||
ref: 'RoleCondFormulaValueUserSettingBooleanSchema',
|
||||
},
|
||||
{
|
||||
ref: 'RoleCondFormulaValueAssignedRole',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user