Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 時限ノート機能 #129

Merged
merged 11 commits into from
Feb 29, 2024
Merged

Conversation

hideki0403
Copy link
Owner

No description provided.

@hideki0403 hideki0403 marked this pull request as ready for review February 29, 2024 08:36
@hideki0403 hideki0403 merged commit 285087d into dev-kakurega Feb 29, 2024
1 check passed
hideki0403 added a commit that referenced this pull request Feb 29, 2024
* feat: 時限ノート機能 (#129)

* feat; ScheduledNoteDeleteのQueue関連を実装

* feat: ノート作成時に削除する時間を指定できるように

* feat: ノートに削除予定時刻を含めるように

* feat: APIのレスポンスにノートの削除予定時刻を含めるように

* update: types

* fix: QueueProcessorModuleへの追記漏れを修正

* feat: PostFormに削除予定時刻のエディタを実装

* update: MkDeleteScheduleEditorにタイトルを追加

* feat: 自己消滅するノートにはアイコンを表示するように

* fix: ノートの自己消滅を設定しても下書きが保存されない問題を修正

* fix: BullBoardにscheduledNoteDeleteQueueが表示されない問題を修正

* fix: ノート通知のユーザー名が表示されていなかった問題を修正

* update: ドキュメントを更新

* release: v1.31.0

* ci: add job name

---------

Co-authored-by: yukineko <[email protected]>
hideki0403 added a commit that referenced this pull request Mar 1, 2024
* fix: nodeinfoにenableMcaptchaとenableTurnstileが無い (misskey-dev#13387)

* fix: syuilo/misskey時代から使用してるサーバーが改変したバージョンだと誤判定される問題 (DB migrationで修正) (misskey-dev#13389)

* Fix(frontend): オートコンプリートが出るべき状況で出ないことがあるのを修正  (misskey-dev#13376)

* オートコンプリートが出るべき状況で出ないことがあるのを修正

* update CHANGELOG.md

* Fix Changelog

* enhance(frontend): ノート作成画面の添付メニューのdividerの位置を"添付取り消し"の上にする (misskey-dev#13409)

* enhance(frontend): change divider position for MkPostFormAttaches

* docs(changelog): update

* fix(frontend): チャートのラベルが消えている問題を修正 (misskey-dev#13416)

* fix(frontend): チャートのラベルが消えている問題を修正

* Update CHANGELOG.md

* fix(frontend): 画面表示後最初の音声再生が爆音になることがある問題を修正 (misskey-dev#13379)

* fix(frontend): 画面表示後最初の音声再生が爆音になることがある問題を修正

* Update CHANGELOG.md

* Update CHANGELOG.md

* refactor(frontend): 不必要なconsole.logを除去・抑制 (misskey-dev#13400)

* refactor(frontend): 不必要なconsole.logを除去

* Update MkCode.core.vue

* Update game.board.vue

* refactor(backend): `ReactionService.prototype.convertLegacyReactions` (misskey-dev#13375)

* add unit tests

* cleanup unnecessary type assertions

* `convertedReaction`変数の定義と変換表に対する存在確認処理の整理

* `count`変数の定義とループ処理での`Object.entries()`の活用

* 条件式の整理

* `Array.prototype.reduce`を使うように

* `Array.prototype.reduce`を使うように

* 配列操作を1つのメソッドチェーンに整理

これまでの実装では、`decodeReaction`の返り値が同一になる異なる入力値が同時に複数個存在した場合、後ろのもので上書きされてしまっていたはず。
これからの実装では、後ろのものは前のものに加算される。
(実際にこの挙動の変更が問題になるシチュエーションはまずないはず。)

* add unit test

* ドキュメントコメントの追加と型定義の調整

* fix: Bump sharp to 0.33.2 (misskey-dev#13391)

* 🎨

* fix: MkUserPopupが表示されてる状態でv-user-previewがついた要素がdetachされるとMkUserPopupが消えない問題 (misskey-dev#13349)

* fix: MkUserPopupが表示されてる状態でv-user-previewがついた要素がdetachされるとMkUserPopupが消えない問題

* docs(changelog): previewの中のユーザメンションをホバーした状態で投稿を編集するとユーザの情報popupが消えない問題を修正

* docs(changelog): ユーザの情報のポップアップが消えなくなることがある問題を修正

* fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題 (misskey-dev#13428)

* refactor: use IdentifiableError instead of NoteCreateService.ContainsProhibitedWordsError

* fix: notes with prohibited words are reprocessed with delay

* docs(changelog): 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題

* lint: fix lint errors

* fix: rethrowするべきなのにrethrowし忘れていたのを修正

* enhance: サーバーごとにモデレーションノートを残せるように

* refactor: Refactor NoteReadService.read (misskey-dev#13429)

* refactor: Refactor NoteReadService.read

* clean up

* Update packages/backend/src/core/NoteReadService.ts

---------

Co-authored-by: syuilo <[email protected]>

* flash/update で部分的に変更できるようにする (misskey-dev#13396)

* make flash/update params optional

* Update autogen files

pnpm run build-misskey-js-with-types

* Update update.ts

* Update CHANGELOG.md

* hasOwnProperty -> hasOwn

Co-authored-by: syuilo <[email protected]>

---------

Co-authored-by: syuilo <[email protected]>

* enhance: `meta`をSSR HTMLに埋め込む (misskey-dev#13436)

* enhance: `meta`をSSR HTMLに埋め込む

* HTML Metaの有効時間を指定

* 1時間

* MetaEntityService

* JSONをPackするように

* ✌️

---------

Co-authored-by: syuilo <[email protected]>

* fix: SSR時のmetaをエスケープするように (misskey-dev#13440)

* fix: SSR時のmetaをエスケープするように

* エスケープ方法を変更

* refactor(backend): `Array.prototype.filter`での非null確認では`isNotNull`関数を使うように (misskey-dev#13442)

* `Array.prototype.filter`での非null確認では`isNotNull`関数を使うように

* `{}` -> `NonNullable<unknown>`

* fix(test): Chromaticが落ちているのを一部修正? (misskey-dev#13435)

* fix(test): Chromaticが落ちているのを修正?

* いらん変更をけす

* 未来過ぎた

* Fix(frontend): 絵文字オートコンプリートの優先順位がおかしいのを修正 (misskey-dev#13423)

* 絵文字オートコンプリートの優先順位がおかしいのを修正

* update CHANGELOG.md

* テストを追加

* lint fix

* fix: プッシュ通知の変更が1時間ほど反映されない問題を修正 (misskey-dev#13407)

* fix: プッシュ通知の変更が1時間ほど反映されない問題を修正

* 410 to refresh

* refreshCache

* fix(backend): より多くの人に使われているハッシュタグが検索結果上位に来るように (misskey-dev#11498) (misskey-dev#13340)

* enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる (misskey-dev#13388)

* enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる

* nanka meccha kaeta

* ブロックチェックの後にフォロー関係の存在チェックをする

* enhance(games): 抜けている翻訳を追加・スタイル共通化 (misskey-dev#13434)

* enhance(games): 抜けている翻訳を追加・スタイル共通化

* frameDivider の使用箇所が見当たらなかったので削除

* ミス

* インナーでもcss変数を使う

* コロンを翻訳から外す

* 一部の翻訳を除去

* p

* revert some text

---------

Co-authored-by: syuilo <[email protected]>

* enhance?: DeleteAccountServiceでユーザーを削除する際にuserChangeDeletedStateを発行する (misskey-dev#13382)

* Enhance(frontend): リアクションピッカーを調整 (misskey-dev#13354)

* 打てない絵文字を表示しないのではなくグレーアウトするように など

* fix: 今度は検索とピン留めに効いてなかった

* lint fix

* use Map

* 斜めに線を引いてわかりやすく

* 斜め線は右上からのほうが良かったかも

* デザイン調整

* refactor

* fix(frontend): `userActivation`がない環境において不具合が生じる問題を修正 (misskey-dev#13451)

* fix: 古いキャッシュを使うのを修正 (misskey-dev#13453)

* admin/emoji/updateの必須項目を減らす 等 (misskey-dev#13449)

* admin/emoji/update enhancement

* add CustomEmojiService.getEmojiByName

* update endpoint

* fix

* Update update.ts

* Update autogen files

* type assertion

* Update CHANGELOG.md

* test(frontend): Chromaticテストが落ちるのを修正 (misskey-dev#13448)

* test(frontend): Chromaticテストが落ちるのを修正

* fix: テストケースを修正

* refactor: comment

* fix(backend): fix incorrect schemas (misskey-dev#13458)

* Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 (misskey-dev#13463)

* コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加

* コメント修正

* enhance(backend): フォロー・フォロワー関連の通知の受信設定の強化 (misskey-dev#13468)

* enhance(backend): 通知の受信設定に「フォロー中またはフォロワー」を追加

* fix(backend): 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正

* Update CHANGELOG.md

* refactor(backend): ノートのエクスポート処理でStreams APIを使うように (misskey-dev#13465)

* refactor(backend): ノートのエクスポート処理でStreams APIを使うように

* fixup! refactor(backend): ノートのエクスポート処理でStreams APIを使うように

`await`忘れにより、ジョブがすぐに完了したことになり削除されてしまっていた。
それによって、`NoteStream`内での`updateProgress`メソッドの呼び出しで、`Missing key for job`のエラーが発生することがあった。

---------

Co-authored-by: syuilo <[email protected]>

* fix(backend): リノート時のHTLへのストリーミングの意図しない挙動を修正 (misskey-dev#13425)

* fix(backend): リノート時のストリーミングの意図しない挙動を修正

* Update CHANGELOG.md

* fix: 不要な返り値

* fix: 不適切な条件分岐を修正

* test(backend): add htl tests

---------

Co-authored-by: syuilo <[email protected]>

* refactor(frontend): `os.ts`周りのリファクタリング (misskey-dev#13186)

* refactor(frontend): `os.ts`周りのリファクタリング

* refactor: apiWithDialogのdataの型付け

* refactor: 不要なas anyを除去

* refactor: 返り値の型を明記、`selectDriveFolder`は`File`のほうに合わせるよう返り値を変更

* refactor: 返り値の型を改善

* refactor: フォームの型を改善

* refactor: 良い感じのimportに修正

* refactor: フォームの返り値の型を改善

* refactor: `popup()`の`props`に`ref`な値を入れるのを許可するように

* fix: `os.input`系と`os.select`の返り値の型がおかしい問題とそれによるバグを修正

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <[email protected]>

* enhance(backend): 通知がミュート・凍結を考慮するようにする (misskey-dev#13412)

* Never return broken notifications misskey-dev#409

Since notifications are stored in Redis, we can't expect relational
integrity: deleting a user will *not* delete notifications that
mention it.

But if we return notifications with missing bits (a `follow` without a
`user`, for example), the frontend will get very confused and throw an
exception while trying to render them.

This change makes sure we never expose those broken notifications. For
uniformity, I've applied the same logic to notes and roles mentioned
in notifications, even if nobody reported breakage in those cases.

Tested by creating a few types of notifications with a `notifierId`,
then deleting their user.

(cherry picked from commit 421f8d4)

* Update Changelog

* Update CHANGELOG.md

* enhance: 通知がミュートを考慮するようにする

* enhance: 通知が凍結も考慮するようにする

* fix: notifierIdがない通知が消えてしまう問題

* Add tests (通知がミュートを考慮しているかどうか)

* fix: notifierIdがない通知が消えてしまう問題 (grouped)

* Remove unused import

* Fix: typo

* Revert "enhance: 通知が凍結も考慮するようにする"

This reverts commit b1e57e5.

* Revert API handling

* Remove unused imports

* enhance: Check if notifierId is valid in NotificationEntityService

* 通知作成時にpackしてnullになったらあとの処理をやめる

* Remove duplication of valid notifier check

* add filter notification is not null

* Revert "Remove duplication of valid notifier check"

This reverts commit 239a695.

* Improve performance

* Fix packGrouped

* Refactor: 判定部分を共通化

* Fix condition

* use isNotNull

* Update CHANGELOG.md

* filterの改善

* Refactor: DONT REPEAT YOURSELF
Note: GroupedNotificationはNotificationの拡張なのでその例外だけ書けば基本的に共通の処理になり複雑な個別の処理は増えにくいと思われる

* Add groupedNotificationTypes

* Update misskey-js typedef

* Refactor: less sql calls

* refactor

* clean up

* filter notes to mark as read

* packed noteがmapなのでそちらを使う

* if (notesToRead.size > 0)

* if (notes.length === 0) return;

* fix

* Revert "if (notes.length === 0) return;"

This reverts commit 22e2324.

* 🎨

* console.error

* err

* remove try-catch

* 不要なジェネリクスを除去

* Revert  (既読処理をpack内で行うものを元に戻す)

* Clean

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/NotificationService.ts

* Clean

---------

Co-authored-by: dakkar <[email protected]>
Co-authored-by: kakkokari-gtyih <[email protected]>
Co-authored-by: かっこかり <[email protected]>
Co-authored-by: tamaina <[email protected]>
Co-authored-by: syuilo <[email protected]>

* Update CHANGELOG.md

* update deps

* feat: 時限ノート機能 (#129)

* feat; ScheduledNoteDeleteのQueue関連を実装

* feat: ノート作成時に削除する時間を指定できるように

* feat: ノートに削除予定時刻を含めるように

* feat: APIのレスポンスにノートの削除予定時刻を含めるように

* update: types

* fix: QueueProcessorModuleへの追記漏れを修正

* feat: PostFormに削除予定時刻のエディタを実装

* update: MkDeleteScheduleEditorにタイトルを追加

* feat: 自己消滅するノートにはアイコンを表示するように

* fix: ノートの自己消滅を設定しても下書きが保存されない問題を修正

* fix: BullBoardにscheduledNoteDeleteQueueが表示されない問題を修正

* fix type

* fix: ノート通知のユーザー名が表示されていなかった問題を修正

* fix test

* update: ドキュメントを更新

* release: v1.31.0

* ci: add job name

* Update scroll.test.ts

* enhance: 通知の履歴をリセットできるように (misskey-dev#13335)

* enhance: 通知の履歴をリセットできるように

* Update Changelog

* 通知欄も連動して更新するように

* revert some changes

* Update CHANGELOG.md

* Remove unused part

* fix

* fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように (misskey-dev#13477)

* fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように

* Update CHANGELOG.md

* test(backend): `notes/create`とWebSocket関連のテストを追加

* Update CHANGELOG.md

* New Crowdin updates (misskey-dev#13359)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* fix(client): use colorizeEmoji when unicodeEmojisMap.get

* メンションの最大数をロールごとに設定可能にする (misskey-dev#13343)

* Add new role policy: maximum mentions per note

* fix

* Reviewを反映

* fix

* Add ChangeLog

* Update type definitions

* Add E2E test

* CHANGELOG に説明を追加

---------

Co-authored-by: taichan <[email protected]>

* Update CHANGELOG.md

* refactor: remove export of unicodeEmojisMap

* fix packedRoleCondFormulaValueAssignedRoleSchema

* New Crowdin updates (misskey-dev#13478)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* update pnpm

* update deps

* update deps

* update deps

* Update CHANGELOG.md

Co-authored-by: zyoshoka <[email protected]>

* Update CHANGELOG.md

* format

* Update packages/backend/test/e2e/mute.ts

Co-authored-by: zyoshoka <[email protected]>

* format

* add missing license headers

* enhance: 禁止ワードチェック強化 (#27)

* enhance: 禁止ワードチェック強化
* リモートの禁止ワードチェックを添付ファイルとユーザーを登録する前に行うなど
  Resolve misskey-dev#13374
* 禁止ワートの対象の見直し

* performActivityで特定のエラーが出た際にDelayedに追加しないように

* use IdentifiableError

* NoteCreateService.checkProhibitedWords

* https://github.com/misskey-dev/misskey-private/pull/27/files#r1507416135

* remove comment

* 2024.3.0

* New translations ja-jp.yml (Chinese Traditional) (misskey-dev#13480)

* Revert "spec(backend/NoteCreateService): ローカルユーザーがまだ誰もフォローしていないリモートユーザーによる投稿のフィルターの条件の調整 (MisskeyIO#466)"

This reverts commit b621144.

* Revert "enhance: スパムを弾いた時のログレベルをerrorからinfoに変更"

This reverts commit ac2dd69.

* Revert "fix: スパムメッセージを弾いたときにinbox queueがリトライしようとするのを修正"

This reverts commit b2b800d.

* Revert "enhance: コントロールパネルのモデレーションからスパムブロックの設定を変更できるように"

This reverts commit 5f97b4b.

* Revert "spec(backend/NoteCreateService): ローカルユーザーがまだ誰もフォローしていないリモートユーザーによる通知を引き起こす可能性のある投稿を拒否できるように (MisskeyIO#462)"

This reverts commit fd1d125.

* chore: remove unused codes

* fix: duplicated import

* chore: update types

* update: types

* add: revert migration of BlockMentionsFromUnfamiliarRemoteUsers

* add: デフォルトのリポジトリURLを隠れ家のものに変更

* revert: スパム対策を消したのを戻す

* Reapply "enhance: コントロールパネルのモデレーションからスパムブロックの設定を変更できるように"

This reverts commit 39f5531.

* refactor: スパム対策関連のリファクタリング

* update: types

---------

Co-authored-by: anatawa12 <[email protected]>
Co-authored-by: 1Step621 <[email protected]>
Co-authored-by: かっこかり <[email protected]>
Co-authored-by: Sayamame-beans <[email protected]>
Co-authored-by: zyoshoka <[email protected]>
Co-authored-by: okayurisotto <[email protected]>
Co-authored-by: tamaina <[email protected]>
Co-authored-by: syuilo <[email protected]>
Co-authored-by: FineArchs <[email protected]>
Co-authored-by: zawa-ch <[email protected]>
Co-authored-by: taichan <[email protected]>
Co-authored-by: dakkar <[email protected]>
Co-authored-by: kakkokari-gtyih <[email protected]>
Co-authored-by: yukineko <[email protected]>
Co-authored-by: Yuriha <[email protected]>
@hideki0403 hideki0403 deleted the feat/scheduled-note-delete branch March 19, 2024 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant