diff options
| author | おさむのひと <46447427+samunohito@users.noreply.github.com> | 2025-12-06 18:25:20 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-06 18:25:20 +0900 |
| commit | dc77d59f8712d3fe0b73cd4af2035133839cd57b (patch) | |
| tree | d539d214fda2bcc85e40ac89782fbde0432c4d89 /packages/backend/src/misc | |
| parent | Bump version to 2025.12.0-beta.0 (diff) | |
| download | misskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.tar.gz misskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.tar.bz2 misskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.zip | |
Merge commit from fork
Diffstat (limited to 'packages/backend/src/misc')
| -rw-r--r-- | packages/backend/src/misc/should-hide-note-by-time.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/backend/src/misc/should-hide-note-by-time.ts b/packages/backend/src/misc/should-hide-note-by-time.ts new file mode 100644 index 0000000000..1430434094 --- /dev/null +++ b/packages/backend/src/misc/should-hide-note-by-time.ts @@ -0,0 +1,29 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +/** + * ノートが指定された時間条件に基づいて非表示対象かどうかを判定する + * @param hiddenBefore 非表示条件(負の値: 作成からの経過秒数、正の値: UNIXタイムスタンプ秒、null: 判定しない) + * @param createdAt ノートの作成日時(ISO 8601形式の文字列 または Date オブジェクト) + * @returns 非表示にすべき場合は true + */ +export function shouldHideNoteByTime(hiddenBefore: number | null | undefined, createdAt: string | Date): boolean { + if (hiddenBefore == null) { + return false; + } + + const createdAtTime = typeof createdAt === 'string' ? new Date(createdAt).getTime() : createdAt.getTime(); + + if (hiddenBefore <= 0) { + // 負の値: 作成からの経過時間(秒)で判定 + const elapsedSeconds = (Date.now() - createdAtTime) / 1000; + const hideAfterSeconds = Math.abs(hiddenBefore); + return elapsedSeconds > hideAfterSeconds; + } else { + // 正の値: 絶対的なタイムスタンプ(秒)で判定 + const createdAtSeconds = createdAtTime / 1000; + return createdAtSeconds < hiddenBefore; + } +} |