summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc/should-hide-note-by-time.ts
diff options
context:
space:
mode:
authorおさむのひと <46447427+samunohito@users.noreply.github.com>2025-12-06 18:25:20 +0900
committerGitHub <noreply@github.com>2025-12-06 18:25:20 +0900
commitdc77d59f8712d3fe0b73cd4af2035133839cd57b (patch)
treed539d214fda2bcc85e40ac89782fbde0432c4d89 /packages/backend/src/misc/should-hide-note-by-time.ts
parentBump version to 2025.12.0-beta.0 (diff)
downloadmisskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.tar.gz
misskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.tar.bz2
misskey-dc77d59f8712d3fe0b73cd4af2035133839cd57b.zip
Merge commit from fork
Diffstat (limited to 'packages/backend/src/misc/should-hide-note-by-time.ts')
-rw-r--r--packages/backend/src/misc/should-hide-note-by-time.ts29
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;
+ }
+}