fix: 观看进度上报保留长整型剧集ID字符串,避免精度丢失导致记录写入失败
This commit is contained in:
1 parent
eced2890ae
commit
cef39e96c0
1 file changed
+3
-2
@@ -5,8 +5,9 @@ const REPORT_INTERVAL_MS = 10000;
|
|||||||
const lastReportedAt = new Map();
|
const lastReportedAt = new Map();
|
||||||
|
|
||||||
export function reportWatchProgress(episodeId, positionSeconds, durationSeconds, source = 'web', force = false) {
|
export function reportWatchProgress(episodeId, positionSeconds, durationSeconds, source = 'web', force = false) {
|
||||||
const id = Number(episodeId);
|
// 剧集 ID 为 19 位长整型,超出 JS 安全整数范围,必须保持字符串,禁止 Number 转换
|
||||||
if (!Number.isFinite(id) || id <= 0) return;
|
const id = String(episodeId ?? '');
|
||||||
|
if (!/^\d+$/.test(id)) return;
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
if (!force && now - (lastReportedAt.get(id) || 0) < REPORT_INTERVAL_MS) return;
|
if (!force && now - (lastReportedAt.get(id) || 0) < REPORT_INTERVAL_MS) return;
|
||||||
lastReportedAt.set(id, now);
|
lastReportedAt.set(id, now);
|
||||||
|
|||||||
Reference in new issue
Block a user