From 4d8cc2a2d78c9b1f268faea2415b98d7c7cea333 Mon Sep 17 00:00:00 2001 From: kinghwj Date: Fri, 17 Jul 2026 11:17:55 +0800 Subject: [PATCH] fix: clamp review star value to 0-5 range to prevent repeat() RangeError MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WeRead API returns star=100 for book reviews and star=-1 for thoughts, causing 'β˜†'.repeat(5-100) to throw 'Invalid count value: -95'. --- static/js/app.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/static/js/app.js b/static/js/app.js index 3a360ab..4985cf9 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -813,7 +813,8 @@ function openNotes(bookId, title, author, cover) { if (data.review_count > 0) { html += `
πŸ’­ 想法/η‚Ήθ―„ (${data.review_count})
`; data.reviews.forEach((r) => { - const stars = r.star > 0 ? `${"β˜…".repeat(r.star)}${"β˜†".repeat(5 - r.star)}` : ""; + const starVal = Math.max(0, Math.min(5, parseInt(r.star) || 0)); + const stars = starVal > 0 ? `${"β˜…".repeat(starVal)}${"β˜†".repeat(5 - starVal)}` : ""; html += `
${escapeHtml(r.content)}