Общее время
@@ -533,8 +522,8 @@
mount: '#filePicker',
allowedExt: DOC_EXTS,
labels: {
- pickFiles: '📄 Выбрать файлы',
- pickFolder: '📁 Выбрать папку',
+ pickFiles: 'Выбрать файлы',
+ pickFolder: 'Выбрать папку',
clear: 'Очистить',
empty: 'Нет выбранных файлов',
statusReady: 'готов',
@@ -574,7 +563,7 @@
}
if (currentSid) {
fetch('/api/cancel/' + currentSid, { method: 'POST' }).catch(() => { });
- st.textContent = '⏹ Остановка… завершаем текущий файл';
+ st.textContent = 'Остановка… завершаем текущий файл';
}
}
@@ -660,7 +649,7 @@
if (!res.ok) {
if (res.aborted) {
st.className = 'status';
- st.textContent = '⏹ Загрузка отменена пользователем.';
+ st.textContent = 'Загрузка отменена пользователем.';
} else {
st.className = 'status error';
st.textContent = res.error || 'Ошибка загрузки';
@@ -676,7 +665,7 @@
if (TEST_UPLOAD_ONLY) {
st.className = 'status done';
- st.textContent = '✅ Загружено ' + uploadedCount + ' файлов (тест: обработка пропущена). Сессия: ' + currentSid;
+ st.textContent = 'Загружено ' + uploadedCount + ' файлов (тест: обработка пропущена). Сессия: ' + currentSid;
setBusy(false);
cb.style.display = 'none';
ub.disabled = false;
@@ -738,7 +727,7 @@
curRows.forEach(r => r.classList.remove('row-current'));
curRows[idx].classList.add('row-current');
const td = curRows[idx].querySelectorAll('td')[2];
- if (td) td.innerHTML = '
⚙️';
+ if (td) td.innerHTML = '
…';
}
currentLiveFile = 'Файл ' + (d.idx + 1) + '/' + total + ': ' + d.name;
liveFileEl.textContent = currentLiveFile;
@@ -757,7 +746,7 @@
curRows.forEach(r => r.classList.remove('row-current'));
curRows[idx].classList.add('row-current');
const td = curRows[idx].querySelectorAll('td')[2];
- if (td) td.innerHTML = '
⚙️ анализ…';
+ if (td) td.innerHTML = '
анализ…';
}
liveFileEl.textContent = 'Файл ' + (d.idx + 1) + '/' + total + ': ' + d.name;
});
@@ -773,7 +762,7 @@
if (curRows[idx]) {
curRows[idx].classList.remove('row-current');
const td = curRows[idx].querySelectorAll('td')[2];
- if (td) td.innerHTML = '✅ готов';
+ if (td) td.innerHTML = '
готов';
}
});
activeES.addEventListener('llm', function (e) {
@@ -781,7 +770,7 @@
if (d.active) {
liveLlmTime.textContent = d.elapsed + ' с';
liveLlm.classList.add('show');
- liveFileEl.textContent = '🤖 ИИ анализирует все файлы…';
+ liveFileEl.textContent = 'ИИ анализирует все файлы…';
if (typeof d.eta_sec === 'number' && d.eta_sec >= 0) liveEta.textContent = '⏳ осталось ~' + fmtSec(d.eta_sec);
else liveEta.textContent = '';
} else {
@@ -805,7 +794,7 @@
: ((performance.now() - (fileTimers[idx] || performance.now())) / 1000).toFixed(1);
if (curRows[idx]) {
const td = curRows[idx].querySelectorAll('td')[2];
- if (td) td.innerHTML = '✅ ' + sec + 'с';
+ if (td) td.innerHTML = '
' + sec + 'с';
}
});
activeES.addEventListener('cancelled', function (e) {
@@ -813,7 +802,7 @@
finishProcUI();
const totalSec = ((performance.now() - t0) / 1000).toFixed(1);
st.className = 'status done';
- st.textContent = '⏹ Остановлено. Сохранено ' + d.saved + ' из ' + d.total + ' файлов + таблица замен (общее ' + totalSec + 'с)';
+ st.textContent = 'Остановлено. Сохранено ' + d.saved + ' из ' + d.total + ' файлов + таблица замен (общее ' + totalSec + 'с)';
const sb = document.getElementById('statsBlock');
document.getElementById('stTotalTime').textContent = totalSec + ' с';
if (d.llm_sec > 0) {
@@ -835,7 +824,7 @@
const d = JSON.parse(e.data);
const totalSec = ((performance.now() - t0) / 1000).toFixed(1);
st.className = 'status done';
- st.textContent = '✅ Обработано ' + d.total + ' файлов: общее ' + totalSec + 'с, из них ИИ ' + (d.llm_sec > 0 ? d.llm_sec + 'с' : '0с');
+ st.textContent = 'Обработано ' + d.total + ' файлов: общее ' + totalSec + 'с, из них ИИ ' + (d.llm_sec > 0 ? d.llm_sec + 'с' : '0с');
const sb = document.getElementById('statsBlock');
document.getElementById('stTotalTime').textContent = totalSec + ' с';
if (d.llm_sec > 0) {
@@ -957,7 +946,8 @@
- Файл ищется только в корне папки; имя без учёта регистра:
obscure.lst,
- OBSCURE.LST.
+ OBSCURE.LST.
+
- Если файла нет — обрабатываются все поддерживаемые документы (как раньше).
- Сам
obscure.lst не загружается и не обфусцируется.
- Другие
.lst игнорируются; вложенный subdir/obscure.lst фильтр не включает.
@@ -993,21 +983,25 @@
[a-z],
- [abc] |
+ [abc]
+
класс или диапазон
символов |
[!a],
- [^a] |
+ [^a]
+
любой символ, кроме
указанных |
- reports/ |
+ reports/
+
то же, что
- reports/** — всё поддерево |
+ reports/** — всё поддерево
+
@@ -1043,7 +1037,7 @@ reports/name*.docx
-
⏹ Остановить обработку?
+
Остановить обработку?
Будут сохранены: полностью обработанные файлы и таблица замен.
Необработанные файлы в результат не попадут.