评论等级改为后端计算(artalk-cf 下发官方 badge)
主题原来的九品官阶用 localStorage 累计——只统计当前浏览器 渲染过的评论,换设备/清缓存就失真,别人看到的也不准。 现在后端按全站真实评论数算好,随评论 API 下发 badge_name/badge_color,官方前端原生渲染,跨设备一致。 本文件移除本地注入逻辑,友链/友圈徽章保留。
This commit is contained in:
1 parent
87cfa01b3d
commit
be5abce16a
1 file changed
+5
-53
@@ -624,34 +624,10 @@ var getPageKey = function() {
|
||||
var processBadges = function() {
|
||||
if (!linkMap && !feedMap) return;
|
||||
|
||||
var data = loadUserCounts();
|
||||
var pageKey = getPageKey();
|
||||
var pages = data._pages || {};
|
||||
var isNewPage = !pages[pageKey];
|
||||
|
||||
// Count per-user comments on current page
|
||||
var pageCounts = {};
|
||||
document.querySelectorAll('.atk-comment-wrap').forEach(function(wrap) {
|
||||
var nickEl = wrap.querySelector('.atk-nick');
|
||||
if (!nickEl) return;
|
||||
var name = (nickEl.textContent || '').trim();
|
||||
if (name) pageCounts[name] = (pageCounts[name] || 0) + 1;
|
||||
});
|
||||
|
||||
// Accumulate: only add counts if this page hasn't been processed before
|
||||
var userCounts = {};
|
||||
for (var name in pageCounts) {
|
||||
var prev = data[name] || 0;
|
||||
if (isNewPage) {
|
||||
data[name] = prev + pageCounts[name];
|
||||
}
|
||||
userCounts[name] = data[name];
|
||||
}
|
||||
if (isNewPage) {
|
||||
pages[pageKey] = true;
|
||||
data._pages = pages;
|
||||
}
|
||||
saveUserCounts(data);
|
||||
// 评论等级(九品官阶)已迁到评论后端:artalk-cf 按全站真实评论数
|
||||
// 计算并直接下发 badge_name/badge_color(官方 badge 槽渲染)。
|
||||
// 原 localStorage 累计方案只统计当前浏览器见过的评论,跨设备/清缓存
|
||||
// 就失真,已废弃(RANK_TABLE 保留仅作历史参考,不再注入)。
|
||||
|
||||
document.querySelectorAll('.atk-comment-wrap').forEach(function(wrap) {
|
||||
var nickEl = wrap.querySelector('.atk-nick');
|
||||
@@ -700,31 +676,7 @@ var processBadges = function() {
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Comment rank badge — inline next to name
|
||||
if (!nickEl.querySelector('.atk-rank-badge')) {
|
||||
var count = userCounts[nickText] || 0;
|
||||
var rank = getRank(count);
|
||||
var rb = document.createElement('span');
|
||||
rb.className = 'atk-rank-badge';
|
||||
rb.textContent = rank.short;
|
||||
rb.title = rank.title + ' (' + count + '条评论)';
|
||||
rb.style.color = rank.color;
|
||||
rb.style.backgroundColor = rank.bg;
|
||||
rb.style.borderColor = rank.bg.replace(/[\d.]+\)$/, function(m) {
|
||||
var v = parseFloat(m) + 0.06;
|
||||
return Math.min(v, 0.26).toFixed(2) + ')';
|
||||
});
|
||||
var idx = RANK_TABLE.indexOf(rank);
|
||||
if (idx > 0) {
|
||||
var next = RANK_TABLE[idx - 1];
|
||||
var diff = next.min - count;
|
||||
if (diff > 0) {
|
||||
var progress = Math.round((count - rank.min) / (next.min - rank.min) * 100);
|
||||
rb.title += ' — 距' + next.short + '还差' + diff + '条 (' + progress + '%)';
|
||||
}
|
||||
}
|
||||
nickEl.appendChild(rb);
|
||||
}
|
||||
// 3. 评论等级徽章已由后端下发(badge_name/badge_color 官方槽渲染),不再本地注入
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user