Skip to content

Commit

Permalink
Feat: Inboxにルールを設定できるように (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattyatea authored Sep 4, 2024
1 parent a84958c commit ca4662f
Show file tree
Hide file tree
Showing 32 changed files with 1,745 additions and 50 deletions.
114 changes: 114 additions & 0 deletions locales/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5412,6 +5412,10 @@ export interface Locale extends ILocale {
* これ以上このクリップにノートを追加できません。
*/
"clipNoteLimitExceeded": string;
/**
* Inboxのモデレーション
*/
"inboxModeration": string;
"_delivery": {
/**
* 配信状態
Expand Down Expand Up @@ -6842,6 +6846,100 @@ export interface Locale extends ILocale {
};
};
};
"_inboxRule": {
/**
* ルールを追加
*/
"add": string;
/**
* ルール名
*/
"name": string;
/**
* ルールの説明
*/
"description": string;
/**
* このアクティビティが投稿なら
*/
"thisActivityIsNote": string;
/**
* アクション
*/
"action": string;
/**
* だったら
*/
"then": string;
/**
* 拒否
*/
"reject": string;
/**
* このサーバーのユーザーからフォローされているユーザーの数が~以下
*/
"serverPubLessThanOrEq": string;
/**
* このサーバーのユーザーからフォローされているユーザーの数が~以上
*/
"serverPubMoreThanOrEq": string;
/**
* このサーバーのユーザーをフォローしているユーザーの数が~以下
*/
"serverSubLessThanOrEq": string;
/**
* このサーバーのユーザーをフォローしているユーザーの数が~以上
*/
"serverSubMoreThanOrEq": string;
/**
* ノート内のメンション数が~以上
*/
"maxMentionsMoreThanOrEq": string;
/**
* 添付ファイルの数が~以上
*/
"attachmentFileMoreThanOrEq": string;
/**
* この単語を含む
*/
"isIncludeThisWord": string;
/**
* かつ
*/
"and": string;
/**
* または
*/
"or": string;
/**
* でない
*/
"not": string;
/**
* 投稿
*/
"notes": string;
/**
* 条件
*/
"conditions": string;
/**
* 一致した部分を書き換える
*/
"rewrite": string;
/**
* サーバーのホスト
*/
"serverHost": string;
/**
* サーバーのソフトウェア
*/
"serverSoftware": string;
/**
* サーバーサイレンスされているか
*/
"serverIsSilenced": string;
};
"_role": {
/**
* ロールの作成
Expand Down Expand Up @@ -10159,6 +10257,22 @@ export interface Locale extends ILocale {
* ギャラリーの投稿を削除
*/
"deleteGalleryPost": string;
/**
* Inboxのルールを設定
*/
"setInboxRule": string;
/**
* Inboxのルールを削除
*/
"deleteInboxRule": string;
/**
* Inboxで拒否
*/
"inboxRejected": string;
/**
* というルールで拒否されました。
*/
"rejectedWithTheRule": string;
};
"_fileViewer": {
/**
Expand Down
29 changes: 29 additions & 0 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1349,6 +1349,7 @@ createdLists: "作成したリスト"
createdAntennas: "作成したアンテナ"
addToDefaultEmojiPicker: "デフォルトのプロファイルに追加する"
clipNoteLimitExceeded: "これ以上このクリップにノートを追加できません。"
inboxModeration: "Inboxのモデレーション"

_delivery:
status: "配信状態"
Expand Down Expand Up @@ -1766,6 +1767,30 @@ _achievements:
title: "うほうほうほうほほ!??!?!"
description: "アカウントをGorillaとして設定した"

_inboxRule:
add: "ルールを追加"
name: "ルール名"
description: "ルールの説明"
thisActivityIsNote: "このアクティビティが投稿なら"
action: "アクション"
then: "だったら"
reject: "拒否"
serverPubLessThanOrEq: "このサーバーのユーザーからフォローされているユーザーの数が~以下"
serverPubMoreThanOrEq: "このサーバーのユーザーからフォローされているユーザーの数が~以上"
serverSubLessThanOrEq: "このサーバーのユーザーをフォローしているユーザーの数が~以下"
serverSubMoreThanOrEq: "このサーバーのユーザーをフォローしているユーザーの数が~以上"
maxMentionsMoreThanOrEq: "ノート内のメンション数が~以上"
attachmentFileMoreThanOrEq: "添付ファイルの数が~以上"
isIncludeThisWord: "この単語を含む"
and: "かつ"
or: "または"
not: "でない"
notes: "投稿"
conditions: "条件"
rewrite: "一致した部分を書き換える"
serverHost: "サーバーのホスト"
serverSoftware: "サーバーのソフトウェア"
serverIsSilenced: "サーバーサイレンスされているか"

_role:
new: "ロールの作成"
Expand Down Expand Up @@ -2690,6 +2715,10 @@ _moderationLogTypes:
deletePage: "ページを削除"
deleteFlash: "Playを削除"
deleteGalleryPost: "ギャラリーの投稿を削除"
setInboxRule: "Inboxのルールを設定"
deleteInboxRule: "Inboxのルールを削除"
inboxRejected: "Inboxで拒否"
rejectedWithTheRule: "というルールで拒否されました。"

_fileViewer:
title: "ファイルの詳細"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "type4ny",
"version": "0.1.3-beta",
"version": "0.1.4-beta",
"codename": "emerald",
"repository": {
"type": "git",
Expand Down
16 changes: 16 additions & 0 deletions packages/backend/migration/1725457306200-inboxrule.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!--
SPDX-FileCopyrightText: Type4ny-project
SPDX-License-Identifier: AGPL-3.0-only
-->

export class Inboxrule1725457306200 {
name = 'Inboxrule1725457306200';

async up(queryRunner) {
await queryRunner.query('CREATE TABLE "inbox_rule" ("id" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(256) NOT NULL, "condFormula" jsonb NOT NULL DEFAULT \'{}\', "action" jsonb NOT NULL, CONSTRAINT "PK_cb50481ac6e8176c51f004c9456" PRIMARY KEY ("id"))');
}

async down(queryRunner) {
await queryRunner.query('DROP TABLE "inbox_rule"');
}
}
6 changes: 6 additions & 0 deletions packages/backend/src/core/CoreModule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ import { QueueModule } from './QueueModule.js';
import { QueueService } from './QueueService.js';
import { LoggerService } from './LoggerService.js';
import type { Provider } from '@nestjs/common';
import {InboxRuleService} from "@/core/InboxRuleService.js";

//#region 文字列ベースでのinjection用(循環参照対応のため)
const $LoggerService: Provider = { provide: 'LoggerService', useExisting: LoggerService };
Expand Down Expand Up @@ -278,6 +279,7 @@ const $RoleEntityService: Provider = { provide: 'RoleEntityService', useExisting
const $ReversiGameEntityService: Provider = { provide: 'ReversiGameEntityService', useExisting: ReversiGameEntityService };
const $MetaEntityService: Provider = { provide: 'MetaEntityService', useExisting: MetaEntityService };
const $SystemWebhookEntityService: Provider = { provide: 'SystemWebhookEntityService', useExisting: SystemWebhookEntityService };
const $InboxRuleService: Provider = { provide: 'InboxRuleService', useExisting: InboxRuleService };

const $ApAudienceService: Provider = { provide: 'ApAudienceService', useExisting: ApAudienceService };
const $ApDbResolverService: Provider = { provide: 'ApDbResolverService', useExisting: ApDbResolverService };
Expand Down Expand Up @@ -428,6 +430,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
ReversiGameEntityService,
MetaEntityService,
SystemWebhookEntityService,
InboxRuleService,

ApAudienceService,
ApDbResolverService,
Expand Down Expand Up @@ -574,6 +577,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$ReversiGameEntityService,
$MetaEntityService,
$SystemWebhookEntityService,
$InboxRuleService,

$ApAudienceService,
$ApDbResolverService,
Expand Down Expand Up @@ -720,6 +724,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
ReversiGameEntityService,
MetaEntityService,
SystemWebhookEntityService,
InboxRuleService,

ApAudienceService,
ApDbResolverService,
Expand Down Expand Up @@ -865,6 +870,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$ReversiGameEntityService,
$MetaEntityService,
$SystemWebhookEntityService,
$InboxRuleService,

$ApAudienceService,
$ApDbResolverService,
Expand Down
Loading

0 comments on commit ca4662f

Please sign in to comment.