From 9b71319fb2edc601712169035e5dfabd457183a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8A=E3=81=95=E3=82=80=E3=81=AE=E3=81=B2=E3=81=A8?= <46447427+samunohito@users.noreply.github.com> Date: Thu, 20 Feb 2025 18:54:30 +0900 Subject: [PATCH] wip --- .../migration/1739882320354-noteMuting.js | 32 +++++++++++++ packages/backend/src/postgres.ts | 2 + .../pages/settings/mute-block.note-mute.vue | 48 +++++++++++++++++++ .../src/pages/settings/mute-block.vue | 13 +++++ 4 files changed, 95 insertions(+) create mode 100644 packages/backend/migration/1739882320354-noteMuting.js create mode 100644 packages/frontend/src/pages/settings/mute-block.note-mute.vue diff --git a/packages/backend/migration/1739882320354-noteMuting.js b/packages/backend/migration/1739882320354-noteMuting.js new file mode 100644 index 0000000000..4401028e97 --- /dev/null +++ b/packages/backend/migration/1739882320354-noteMuting.js @@ -0,0 +1,32 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export class NoteMuting1739882320354 { + name = 'NoteMuting1739882320354' + + async up(queryRunner) { + await queryRunner.query(` + CREATE TABLE "note_muting" ( + "id" varchar(32) NOT NULL, + "userId" varchar(32) NOT NULL, + "noteId" varchar(32) NOT NULL, + "expiresAt" TIMESTAMP WITH TIME ZONE, + CONSTRAINT "PK_note_muting_id" PRIMARY KEY ("id"), + CONSTRAINT "FK_note_muting_userId" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_note_muting_noteId" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION + ); + CREATE INDEX "IDX_note_muting_userId" ON "note_muting" ("userId"); + CREATE INDEX "IDX_note_muting_noteId" ON "note_muting" ("noteId"); + `); + } + + async down(queryRunner) { + await queryRunner.query(` + DROP INDEX "IDX_note_muting_noteId"; + DROP INDEX "IDX_note_muting_userId"; + DROP TABLE "note_muting"; + `); + } +} diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index 043332d4b5..d9edc277c3 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -7,6 +7,7 @@ import pg from 'pg'; import { DataSource, Logger } from 'typeorm'; import * as highlight from 'cli-highlight'; +import { MiNoteMuting } from '@/models/NoteMuting.js'; import { entities as charts } from '@/core/chart/entities.js'; import { MiAbuseUserReport } from '@/models/AbuseUserReport.js'; @@ -196,6 +197,7 @@ export const entities = [ MiNoteReaction, MiNoteThreadMuting, MiNoteUnread, + MiNoteMuting, MiPage, MiPageLike, MiGalleryPost, diff --git a/packages/frontend/src/pages/settings/mute-block.note-mute.vue b/packages/frontend/src/pages/settings/mute-block.note-mute.vue new file mode 100644 index 0000000000..5fb8435188 --- /dev/null +++ b/packages/frontend/src/pages/settings/mute-block.note-mute.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/packages/frontend/src/pages/settings/mute-block.vue b/packages/frontend/src/pages/settings/mute-block.vue index 7b8355d475..92344b504f 100644 --- a/packages/frontend/src/pages/settings/mute-block.vue +++ b/packages/frontend/src/pages/settings/mute-block.vue @@ -172,6 +172,18 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + + + @@ -181,6 +193,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { ref, computed, watch } from 'vue'; import XInstanceMute from './mute-block.instance-mute.vue'; import XWordMute from './mute-block.word-mute.vue'; +import XNoteMute from './mute-block.note-mute.vue'; import MkPagination from '@/components/MkPagination.vue'; import { userPage } from '@/filters/user.js'; import { i18n } from '@/i18n.js';