v1.12.30 긴 접속 시간 표시와 중단 후 새 방문 처리 개선
This commit is contained in:
@@ -72,15 +72,21 @@ export const normalizePostSlugForAnalytics = (slug) => (slug || '').trim()
|
||||
*/
|
||||
export const normalizePageSlugForAnalytics = (slug) => (slug || '').trim()
|
||||
|
||||
/** @type {number} heartbeat 체류시간 상한(초) */
|
||||
/** @type {number} 평균 체류 통계에 반영할 콘텐츠별 시간 상한(초) */
|
||||
export const ANALYTICS_MAX_DURATION_SECONDS = 1800
|
||||
|
||||
/** @type {number} 실시간 접속 시간의 PostgreSQL 정수 저장 상한(초) */
|
||||
export const ANALYTICS_MAX_REALTIME_DURATION_SECONDS = 2147483647
|
||||
|
||||
/** @type {number} engaged_views 집계 최소 체류(초) */
|
||||
export const ANALYTICS_ENGAGED_MIN_SECONDS = 10
|
||||
|
||||
/** @type {number} 현재 접속자 판정 TTL(초) */
|
||||
export const ANALYTICS_ACTIVE_SESSION_TTL_SECONDS = 90
|
||||
|
||||
/** @type {number} 실행 중단 후 새 콘텐츠 방문으로 시작하는 기준(초) */
|
||||
export const ANALYTICS_NEW_VISIT_IDLE_SECONDS = 1800
|
||||
|
||||
/** @type {number} 관리자 차트 최대 조회 기간(일) */
|
||||
export const ANALYTICS_CHART_MAX_DAYS = 365
|
||||
|
||||
@@ -122,6 +128,17 @@ export const clampAnalyticsDurationSeconds = (seconds) => {
|
||||
return Math.min(Math.floor(value), ANALYTICS_MAX_DURATION_SECONDS)
|
||||
}
|
||||
|
||||
/**
|
||||
* 실시간 접속 시간을 데이터베이스 정수 범위로 보정한다.
|
||||
* @param {number} seconds - 접속 시간
|
||||
* @returns {number} 보정된 초
|
||||
*/
|
||||
export const clampAnalyticsRealtimeDurationSeconds = (seconds) => {
|
||||
const value = Number(seconds)
|
||||
if (!Number.isFinite(value) || value < 0) return 0
|
||||
return Math.min(Math.floor(value), ANALYTICS_MAX_REALTIME_DURATION_SECONDS)
|
||||
}
|
||||
|
||||
/**
|
||||
* 스크롤 비율을 0~1로 보정한다.
|
||||
* @param {number} ratio - 스크롤 비율
|
||||
|
||||
Reference in New Issue
Block a user