fix auto ocr

This commit is contained in:
malvm 2026-06-24 13:28:14 +04:00
parent 578cc3cbf2
commit 3a2f2c6c50

View file

@ -400,14 +400,18 @@ async function loadLobby() {
grid.innerHTML = ''; grid.innerHTML = '';
subs.forEach(s => { subs.forEach(s => {
const pct = s.total > 0 ? (s.labeled / s.total * 100) : 0; const auto = s.auto || 0;
const verified = s.labeled - auto;
const pct = s.total > 0 ? (verified / s.total * 100) : 0;
const autoTag = auto ? `<span style="color:var(--warn)">${auto} 🤖 на проверку</span>` : '';
const card = document.createElement('div'); const card = document.createElement('div');
card.className = 'folder-card'; card.className = 'folder-card';
card.innerHTML = ` card.innerHTML = `
<div class="folder-name">📁 ${s.name}</div> <div class="folder-name">📁 ${s.name}</div>
<div class="folder-bar"><div class="folder-bar-fill" style="width:${pct}%"></div></div> <div class="folder-bar"><div class="folder-bar-fill" style="width:${pct}%"></div></div>
<div class="folder-stats"> <div class="folder-stats">
<span class="done">${s.labeled} готово</span> <span class="done">${verified} готово</span>
${autoTag}
<span>${s.total} файлов</span> <span>${s.total} файлов</span>
</div>`; </div>`;
card.onclick = () => openSubfolder(s.name); card.onclick = () => openSubfolder(s.name);
@ -467,7 +471,7 @@ async function loadImages() {
} }
function filteredImages() { function filteredImages() {
if (filter === 'labeled') return images.filter(i => i.labeled); if (filter === 'labeled') return images.filter(i => i.labeled && !i.auto);
if (filter === 'unlabeled') return images.filter(i => !i.labeled); if (filter === 'unlabeled') return images.filter(i => !i.labeled);
if (filter === 'auto') return images.filter(i => i.labeled && i.auto); if (filter === 'auto') return images.filter(i => i.labeled && i.auto);
return images; return images;
@ -556,15 +560,16 @@ function navigate(dir) {
function updateProgress() { function updateProgress() {
const total = images.length; const total = images.length;
const labeled = images.filter(i => i.labeled).length; // «Готово» = только проверенные человеком; авто-метки ждут перепроверки.
const pct = total > 0 ? (labeled / total * 100) : 0; const verified = images.filter(i => i.labeled && !i.auto).length;
const auto = images.filter(i => i.auto).length; const auto = images.filter(i => i.auto).length;
const pct = total > 0 ? (verified / total * 100) : 0;
document.getElementById('progress-fill').style.width = pct + '%'; document.getElementById('progress-fill').style.width = pct + '%';
document.getElementById('labeled-count').textContent = labeled; document.getElementById('labeled-count').textContent = verified;
document.getElementById('total-count').textContent = total; document.getElementById('total-count').textContent = total;
document.getElementById('recheck-text').textContent = auto ? ` · ${auto} 🤖 на проверку` : ''; document.getElementById('recheck-text').textContent = auto ? ` · ${auto} 🤖 на проверку` : '';
document.getElementById('status-msg').textContent = document.getElementById('status-msg').textContent =
total > 0 ? `${total - labeled} осталось` : 'Нет файлов'; total > 0 ? `${total - verified} осталось` : 'Нет файлов';
} }
function setFilter(f, btn) { function setFilter(f, btn) {