Initial commit.

This commit is contained in:
2021-04-10 22:44:45 +02:00
commit acc661d15b
19 changed files with 4127 additions and 0 deletions

211
template/add.html Normal file
View File

@@ -0,0 +1,211 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Basic Page Needs
-->
<meta charset="utf-8" />
<title>OpenMovieDB - Bookshelf</title>
<meta name="description" content="OpenMovieDB - Bookshelf" />
<meta name="author" content="TheGreydiamond" />
<!-- Mobile Specific Metas
-->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- FONT
-->
<link
href="//fonts.googleapis.com/css?family=Raleway:400,300,600"
rel="stylesheet"
type="text/css"
/>
<!-- CSS
-->
<link rel="stylesheet" href="css/normalize.css" />
<link rel="stylesheet" href="css/skeleton.css" />
<style>
/* In order to place the tracking correctly */
canvas.drawing, canvas.drawingBuffer {
position: absolute;
left: 0;
top: 0;
}
</style>
<!-- Favicon
-->
<link rel="icon" type="image/png" href="images/favicon.png" />
<script src="https://kit.fontawesome.com/d7b80a780b.js" crossorigin="anonymous"></script>
<script src="https://cdn.rawgit.com/serratus/quaggaJS/0420d5e0/dist/quagga.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<body>
<div class="container">
<div class="row">
<div class="one-half column" style="margin-top: 15%" id="mainCont">
<h4>OpenMovieDB - Add a new movie</h4>
<!-- Div to show the scanner -->
<% if(it.isDisplay == true) { %>
<%= it.titleByAPI %><br>
<%= it.id %><br>
<img src="<%= it.cover %>" alt="Cover image" style="height: 200px;"></img><br>
<button onclick="saveToLibary()"> Add to libary</button>
<% } else{ %>
<div id="scanner-container"></div>
<input type="button" id="btn" value="Start/Stop the scanner" />
<div id="currentEAN">EAN: Waiting for valid EAN...</div>
<button onclick="sendEanConvRequest()" disabled id="searchBtn"> <i class="fas fa-search"></i>Search</button>
<button onclick="window.location.href = '/'"><i class="fas fa-home"></i> Back to home</button>
<% } %>
</div>
</div>
</div>
<!-- Include the image-diff library -->
<script>
setTimeout(function(){
document.getElementById("btn").style.backgroundColor = "rgba(255, 0, 0, 0.5)";
document.getElementById("searchBtn").style.backgroundColor = "rgba(10, 10, 10, 0.5);"
}, 20)
var _scannerIsRunning = false;
function startScanner() {
Quagga.init({
inputStream: {
name: "Live",
type: "LiveStream",
target: document.querySelector('#scanner-container'),
constraints: {
width: 480,
height: 320,
facingMode: "environment"
},
},
decoder: {
readers: [
"code_128_reader",
"ean_reader",
"ean_8_reader",
"code_39_reader",
"code_39_vin_reader",
"codabar_reader",
"upc_reader",
"upc_e_reader",
"i2of5_reader"
],
debug: {
showCanvas: false,
showPatches: false,
showFoundPatches: false,
showSkeleton: false,
showLabels: false,
showPatchLabels: false,
showRemainingPatchLabels: false,
boxFromPatches: {
showTransformed: false,
showTransformedBox: false,
showBB: false
}
}
},
}, function (err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
// Set flag to is running
_scannerIsRunning = true;
});
/*Quagga.onProcessed(function (result) {
//var drawingCtx = Quagga.canvas.ctx.overlay,
//drawingCanvas = Quagga.canvas.dom.overlay;
/*if (result) {
if (result.boxes) {
drawingCtx.clearRect(0, 0, parseInt(drawingCanvas.getAttribute("width")), parseInt(drawingCanvas.getAttribute("height")));
result.boxes.filter(function (box) {
return box !== result.box;
}).forEach(function (box) {
Quagga.ImageDebug.drawPath(box, { x: 0, y: 1 }, drawingCtx, { color: "green", lineWidth: 2 });
});
}
if (result.box) {
Quagga.ImageDebug.drawPath(result.box, { x: 0, y: 1 }, drawingCtx, { color: "#00F", lineWidth: 2 });
}
if (result.codeResult && result.codeResult.code) {
Quagga.ImageDebug.drawPath(result.line, { x: 'x', y: 'y' }, drawingCtx, { color: 'red', lineWidth: 3 });
}
}
});*/
Quagga.onDetected(function (result) {
console.log("Barcode detected and processed : [" + result.codeResult.code + "]", result);
if(String(result.codeResult.code).length == 13){
document.getElementById("currentEAN").innerHTML = "EAN: " + result.codeResult.code
console.log(result.codeResult.code)
document.getElementById("searchBtn").style.backgroundColor = "color: #555;"
document.getElementById("searchBtn").disabled = false;
}
});
}
// Start/stop scanner
document.getElementById("btn").addEventListener("click", function () {
if (_scannerIsRunning) {
document.getElementById("btn").style.backgroundColor = "rgba(255, 0, 0, 0.5)";
Quagga.stop();
} else {
document.getElementById("btn").style.backgroundColor = "rgba(0, 255, 0, 0.5)";
startScanner();
}
}, false);
function sendEanConvRequest(){
curEan = document.getElementById("currentEAN").innerHTML
curEan = curEan.replace("EAN: ", "")
document.getElementById("mainCont").innerHTML = "<h4>OpenMovieDB - Add a new movie</h4><center><div class=\"lds-grid\"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div><br><i>Searching database...</i></center>";
if(curEan[0] == "0"){
curEan = curEan.substring(1);
}
url = "/apiCallBack?ean=" + curEan;
//window.open(url)
$.get(url,function(data,status) {
var respon = JSON.parse(data)
if(respon.state == "OK"){
url = "/returnSaveResult?reponseID=" + respon.reponseID;
window.location.href = url
}else{
// alert("An error with the api occured.")
document.getElementById("mainCont").innerHTML = "<h4>OpenMovieDB - Add a new movie</h4><center><i style='color: #cc0000; font-size: 100px;' class=\"fas fa-exclamation-circle\"></i><br>Ohno, the API returned an error. Errorcode: <br> <code>" + respon.state + "</code><br><br><button onclick=\"window.location.href = '/'\"><i class=\"fas fa-home\"></i> Back to home</button></center>"
}
console.log(data);
},'html');
//alert(curEan)
}
function saveToLibary(){
url = "/save?ean=<%= it.ean %>";
$.get(url,function(data,status) { console.log(data); console.log(status) },'html');
}
</script>
</body>
</html>