feat(growth): same-day 1-day baselines for new videos
Let 1-day view growth use a zero baseline for videos published today, and the first successful sample for older videos ingested today, without mixing those into 7/30-day rankings.
This commit is contained in:
1 parent
8e7ead1669
commit
c5b7185675
21 files changed
+411
-59
No files matched your search
@@ -30,6 +30,12 @@ export function avatar(item, className = "avatar") {
|
||||
loading="lazy" referrerpolicy="no-referrer"></div>`;
|
||||
}
|
||||
|
||||
function growthBaselineTag(growth) {
|
||||
if (growth?.baseline === "zero") return "<small>今日</small>";
|
||||
if (growth?.baseline === "open") return "<small>入库后</small>";
|
||||
return "";
|
||||
}
|
||||
|
||||
export function videoCard(item, {
|
||||
rank = null, primary = "view", primaryLabel = "", primaryText = null,
|
||||
showStatus = false,
|
||||
@@ -73,7 +79,7 @@ export function videoCard(item, {
|
||||
<span class="primary-stat">
|
||||
<b>${escapeHtml(primaryValue ?? "—")}</b><small>${escapeHtml(label)}</small>
|
||||
</span>
|
||||
${delta !== null ? `<span class="delta ${delta >= 0 ? "up" : "down"}">${formatDelta(delta)}</span>` : ""}
|
||||
${delta !== null ? `<span class="delta ${delta >= 0 ? "up" : "down"}">${formatDelta(delta)}${growthBaselineTag(growth)}</span>` : ""}
|
||||
<span class="secondary-stat">互动 ${formatPercent(item.interaction_rate)}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -118,7 +124,7 @@ export function metricGrid(item) {
|
||||
return `<div class="metric-grid">
|
||||
${["view", "like", "coin", "favorite", "share", "reply", "danmaku"].map((metric) => {
|
||||
const extra = metric === "view" && growth?.available
|
||||
? `<span class="metric-delta ${growth.delta >= 0 ? "up" : "down"}">${formatDelta(growth.delta)}</span>`
|
||||
? `<span class="metric-delta ${growth.delta >= 0 ? "up" : "down"}">${formatDelta(growth.delta)}${growthBaselineTag(growth)}</span>`
|
||||
: "";
|
||||
return `<div class="metric-cell">
|
||||
<span class="metric-label">${escapeHtml(metricLabel(metric))}</span>
|
||||
|
||||
Reference in new issue
Block a user