Improve visuals and quality of scanning

This commit is contained in:
Vivianne Langdon 2022-02-26 20:19:26 -08:00
parent 649ffe571a
commit 8d0e549480
3 changed files with 25 additions and 11 deletions

View file

@ -12,3 +12,13 @@
width: 100%; width: 100%;
} }
} }
#barcode-status {
:dir(ltr) .select {
float: right;
}
:dir(rtl) .select {
float: left;
}
}

View file

@ -655,10 +655,13 @@ let BookWyrm = new (class {
} }
} }
function cleanup() { function cleanup(clearDrawing = true) {
Quagga.stop(); Quagga.stop();
scannerNode.replaceChildren();
cameraListNode.removeEventListener('change', changeListener); cameraListNode.removeEventListener('change', changeListener);
if (clearDrawing) {
scannerNode.replaceChildren();
}
} }
Quagga.onProcessed((result) => { Quagga.onProcessed((result) => {
@ -683,7 +686,14 @@ let BookWyrm = new (class {
} }
}); });
let lastDetection = null;
Quagga.onDetected((result) => { Quagga.onDetected((result) => {
// Detect the same code twice as an extra check to avoid bogus scans.
if (lastDetection === null || lastDetection !== result.codeResult.code) {
lastDetection = result.codeResult.code;
return;
}
const code = result.codeResult.code; const code = result.codeResult.code;
statusNode.querySelector('.isbn').innerText = code; statusNode.querySelector('.isbn').innerText = code;
@ -692,7 +702,7 @@ let BookWyrm = new (class {
const search = new URL('/search', document.location); const search = new URL('/search', document.location);
search.searchParams.set('q', code); search.searchParams.set('q', code);
cleanup(); cleanup(false);
location.assign(search); location.assign(search);
}); });
@ -711,12 +721,6 @@ let BookWyrm = new (class {
constraints: { constraints: {
facingMode: "environment", facingMode: "environment",
}, },
area: {
top: "25%",
right: "25%",
left: "25%",
bottom: "25%",
}
}, },
decoder : { decoder : {
readers: [ readers: [

View file

@ -12,7 +12,7 @@
<div id="barcode-status" class="block"> <div id="barcode-status" class="block">
<div class="grant-access is-hidden"> <div class="grant-access is-hidden">
<span class="is-size-5">{% trans "Requesting camera" %}</span></br> <span class="is-size-5">{% trans "Requesting camera..." %}</span></br>
<span>{% trans "Grant access to the camera to scan a book's barcode." %}</span> <span>{% trans "Grant access to the camera to scan a book's barcode." %}</span>
</div> </div>
<span class="is-size-5 access-denied is-hidden">{% trans "Could not access camera." %}</span> <span class="is-size-5 access-denied is-hidden">{% trans "Could not access camera." %}</span>
@ -25,7 +25,7 @@
<span>{% trans "Align your book's barcode with the camera." %}</span> <span>{% trans "Align your book's barcode with the camera." %}</span>
</div> </div>
<div class="found is-hidden"> <div class="found is-hidden">
<span class="is-size-5">{% trans "ISBN found" context "barcode scanner" %}</span><br/> <span class="is-size-5">{% trans "ISBN scanned, searching..." context "barcode scanner" %}</span><br/>
<span class="isbn"></span> <span class="isbn"></span>
</div> </div>
</div> </div>