From 97ccfc858e8ed5c276ba040bfb6ece30a1d18473 Mon Sep 17 00:00:00 2001 From: xpa Date: Thu, 16 Mar 2023 14:12:00 +0900 Subject: [PATCH] feat: comment limit (cherry picked from commit a46c4b2cef35593b2718f06cffe03934d9d4d593) --- src/@types/config.d.ts | 2 ++ src/definition/config.ts | 2 ++ src/main.ts | 11 ++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/@types/config.d.ts b/src/@types/config.d.ts index 3b8456a0..f4fb9a01 100644 --- a/src/@types/config.d.ts +++ b/src/@types/config.d.ts @@ -60,6 +60,8 @@ type BaseConfig = { letterSpacing: number; scriptCharOffset: number; plugins: IPluginConstructor[]; + commentLimit: number | undefined; + hideCommentOrder: "asc" | "desc"; }; export type Config = Partial; diff --git a/src/definition/config.ts b/src/definition/config.ts index bbaf0b64..2cecf99e 100644 --- a/src/definition/config.ts +++ b/src/definition/config.ts @@ -270,6 +270,8 @@ const initConfig = () => { }, letterSpacing: 1, scriptCharOffset: 0.12, + commentLimit: undefined, + hideCommentOrder: "asc", }; }; diff --git a/src/main.ts b/src/main.ts index 6c160a51..3d9c5a23 100644 --- a/src/main.ts +++ b/src/main.ts @@ -475,7 +475,16 @@ class NiconiComments { } if (timelineRange) { - for (const comment of timelineRange) { + const targetComment = (() => { + if (config.commentLimit === undefined) { + return timelineRange; + } + if (config.hideCommentOrder === "asc") { + return timelineRange.slice(-config.commentLimit); + } + return timelineRange.slice(0, config.commentLimit); + })(); + for (const comment of targetComment) { if (comment.invisible) { continue; }