Skip to content

Commit 4abbd4d

Browse files
authored
Add files via upload
1 parent c993bc5 commit 4abbd4d

1 file changed

Lines changed: 25 additions & 13 deletions

File tree

multi_cipher_v2_5.html

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124

125125
<div class="container">
126126
<h1>🔐 Multi-Cipher Cracker</h1>
127-
<div class="version">v2.5 <span class="new-badge">3 Workers Parallèles</span></div>
127+
<div class="version">v2.5 <span class="new-badge">3 Workers + Live Results</span></div>
128128
<p class="subtitle">
129129
<span class="worker-status">
130130
<span class="worker-dot" id="workerDot"></span>
@@ -624,6 +624,9 @@ <h2>⚙️ Options</h2>
624624
updateWorkerUI(workerId, 'Terminé', finalCases, elapsed, true);
625625
updateGlobalProgress();
626626

627+
// Afficher les résultats en LIVE dès qu'un worker termine
628+
displayLiveResults();
629+
627630
if (pendingWorkers === 0) {
628631
finishCracking();
629632
}
@@ -658,24 +661,26 @@ <h2>⚙️ Options</h2>
658661
document.getElementById('progressText').textContent = `${doneCount}/3 workers terminés — ${totalCases.toLocaleString()} cas — ${cpsStr}/s`;
659662
}
660663

661-
function finishCracking() {
662-
const elapsed = (Date.now() - crackStartTime) / 1000;
663-
const totalCases = workerStats.vig.cases + workerStats.beau.cases + workerStats.std.cases;
664-
const cps = elapsed > 0 ? Math.round(totalCases / elapsed) : 0;
665-
const cpsStr = cps > 1000 ? (cps/1000).toFixed(1) + 'k' : cps;
666-
667-
// Dédupliquer et trier
668-
allResults.sort((a, b) => b.score - a.score);
664+
function displayLiveResults() {
665+
// Trier et dédupliquer les résultats actuels
666+
const sorted = [...allResults].sort((a, b) => b.score - a.score);
669667
const seen = new Set();
670-
const unique = allResults.filter(r => {
668+
const unique = sorted.filter(r => {
671669
const k = r.text.slice(0, 80);
672670
if (seen.has(k)) return false;
673671
seen.add(k);
674672
return true;
675673
});
676674

677675
const maxResults = parseInt(document.getElementById('maxResults').value);
678-
displayResults(unique.slice(0, maxResults));
676+
displayResults(unique.slice(0, maxResults), pendingWorkers > 0);
677+
}
678+
679+
function finishCracking() {
680+
const elapsed = (Date.now() - crackStartTime) / 1000;
681+
const totalCases = workerStats.vig.cases + workerStats.beau.cases + workerStats.std.cases;
682+
const cps = elapsed > 0 ? Math.round(totalCases / elapsed) : 0;
683+
const cpsStr = cps > 1000 ? (cps/1000).toFixed(1) + 'k' : cps;
679684

680685
setWorking(false);
681686
document.getElementById('workerStatus').textContent = `Terminé (${totalCases.toLocaleString()} cas en ${elapsed.toFixed(1)}s — ${cpsStr}/s)`;
@@ -930,13 +935,20 @@ <h2>⚙️ Options</h2>
930935
}
931936
}
932937

933-
function displayResults(results) {
938+
function displayResults(results, isLive = false) {
934939
if (results.length === 0) {
935-
document.getElementById('results').innerHTML = '<div class="result-box">Aucun résultat ≥ ' + document.getElementById('minScore').value + '%</div>';
940+
document.getElementById('results').innerHTML = isLive
941+
? '<div class="result-box" style="border-left-color: #ffd700;"><span style="color:#ffd700;">⏳ Recherche en cours...</span></div>'
942+
: '<div class="result-box">Aucun résultat ≥ ' + document.getElementById('minScore').value + '%</div>';
936943
return;
937944
}
938945

939946
let html = '';
947+
948+
if (isLive) {
949+
html += '<div class="result-box" style="border-left-color: #ffd700; background: linear-gradient(90deg, #1a1a0a 0%, #0a0a15 100%);"><span style="color:#ffd700;">⏳ Résultats partiels — Workers en cours...</span></div>';
950+
}
951+
940952
for (let i = 0; i < results.length; i++) {
941953
const r = results[i];
942954
const isWinner = i === 0;

0 commit comments

Comments
 (0)