209 lines
6.4 KiB
HTML
209 lines
6.4 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<link rel="icon" type="image/x-icon" href="/ipfs/QmUuSv5rZjatksqSzg16UdJQYfEoCWQozNhiM35FKuE7r8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<script src="/ipfs/QmQLQ5WdCEc7mpKw5rhUujUU1URKweei4Bb4esyVNd9Atx/G1PalPay_fichiers/jquery-3.6.3.min.js"></script>
|
|
<script src="/ipfs/QmQLQ5WdCEc7mpKw5rhUujUU1URKweei4Bb4esyVNd9Atx/G1PalPay_fichiers/instascan.min.js"></script>
|
|
<title>ẐenCard scanner</title>
|
|
<style>
|
|
html,* { font-family: 'Inter'; box-sizing: border-box; }
|
|
body { background-color: #fafafa; line-height:1.6;}
|
|
.lead { font-size: 1.5rem; font-weight: 300;background: linear-gradient(to right, #000000 0%, #000000 50%,#999999 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color:transparent; }
|
|
.container { margin: 10px auto; max-width: 960px; }
|
|
.reset{ top:50px; left:50px; position: absolute; padding: 1.1rem; border:0; border-radius:35px; background-color:#4F46E5; color:#fff;cursor:pointer; text-decoration:none;}
|
|
.reset:hover{color: #fff}#carbonads{display:block;overflow:hidden;max-width:728px;position:relative;font-size:18px;box-sizing:content-box}
|
|
#terminal {
|
|
background-color: #746;
|
|
padding: 10px;
|
|
border-radius: 10px;
|
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
|
|
width: fit-content;
|
|
}
|
|
.flex-container {
|
|
display: flex;
|
|
justify-content: space-between; /* Adjust as needed */
|
|
align-items: center;
|
|
}
|
|
#video-container {
|
|
width: 100%;
|
|
max-width: 180px;
|
|
max-height: 180px;
|
|
margin: auto 20px;
|
|
border: 2px solid #ccc;
|
|
border-radius: 15px;
|
|
overflow: hidden;
|
|
}
|
|
#preview {
|
|
width: 100%;
|
|
height: auto;
|
|
transform: scaleX(-1);
|
|
}
|
|
#password {
|
|
margin-top: 20px;
|
|
font-size: 18px;
|
|
text-align: center;
|
|
padding: 10px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 5px;
|
|
}
|
|
#astroid {
|
|
margin-top: 20px;
|
|
font-size: 18px;
|
|
}
|
|
#received {
|
|
margin-top: 20px;
|
|
font-size: 8px;
|
|
}
|
|
#zenpub {
|
|
margin-top: 20px;
|
|
font-size: 18px;
|
|
}
|
|
#message {
|
|
margin-top: 20px;
|
|
font-size: 18px;
|
|
}
|
|
</style>
|
|
<link rel="stylesheet" href="pinMeBB.css">
|
|
<script src="pinMeBB.js"></script>
|
|
<script>
|
|
var pinPadVisible = true;
|
|
var ASTROID = "";
|
|
var CODE = "";
|
|
var MONTANT = "";
|
|
var ASTROID = "";
|
|
|
|
$(document).ready(function () {
|
|
createPinPad(0);
|
|
});
|
|
|
|
function createPinPad(sec=0) {
|
|
const pinform = pinMeBB("pinpad", { limit: 4, minChar: 4, show: sec });
|
|
pinform.addEventListener("onEnter", (e) => {
|
|
// When Enter is pressed
|
|
var pin = e.detail.password();
|
|
CODE = pin;
|
|
alert("Enter Pressed!\nCODE: " + pin);
|
|
});
|
|
pinform.addEventListener("onMaxChar", (e) => {
|
|
// When max length is reached
|
|
var pin = e.detail.password();
|
|
alert("MAXED Char Reached!\nCODE: " + pin);
|
|
});
|
|
pinform.addEventListener("onEmpty", (e) => {
|
|
// When some pin is still missing
|
|
alert("CODE Can't be Empty!");
|
|
});
|
|
}
|
|
|
|
function togglePinPad() {
|
|
if (pinPadVisible) {
|
|
// If pin pad is visible, remove it
|
|
removePinPad();
|
|
} else {
|
|
// If pin pad is not visible, create it
|
|
createPinPad(1);
|
|
}
|
|
// Toggle the visibility status
|
|
pinPadVisible = !pinPadVisible;
|
|
}
|
|
|
|
function removePinPad() {
|
|
// Remove the existing pin pad
|
|
$("#pinpad").empty();
|
|
}
|
|
|
|
function RESET() {
|
|
// RESET ALL
|
|
console.log('RESET');
|
|
removePinPad();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<button onclick="togglePinPad()">PAD</button>
|
|
|
|
<div id="terminal" class="flex-container">
|
|
<div id="video-container">
|
|
<video id="preview" style="transform: scaleX(-1);width: 180px;height: 180px;" autoplay="autoplay" class="active"></video>
|
|
</div>
|
|
<div id="pinpad">Scan ZenCard AstroID to activate Terminal</div>
|
|
</div>
|
|
<p>
|
|
<a class="reset" onclick="RESET()">RESET</a>
|
|
</p>
|
|
|
|
|
|
<p class="lead">
|
|
Scan ZenCard AstroID to activate Terminal.
|
|
</p>
|
|
<div id="password">PASS</div>
|
|
<div id="received">CONTENT</div>
|
|
<div id="astroid">ASTROID</div>
|
|
<div id="zenpub">ZENCARD</div>
|
|
|
|
</div>
|
|
<script>
|
|
|
|
////////////////////// ACTIVATE WEBCAM QRCODE SCANNER
|
|
let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
|
|
|
|
scanner.addListener('scan', function (content) {
|
|
|
|
document.getElementById("received").innerText = content;
|
|
|
|
if (content.startsWith('~~~~~')) {
|
|
// STORE ASTROID
|
|
document.getElementById('received').innerText = "";
|
|
document.getElementById("astroid").innerText = content;
|
|
ASTROID = content;
|
|
|
|
// "PLEASE ENTER PASS" for 2 seconds
|
|
document.getElementById('password').innerText = "PLEASE ENTER PASS";
|
|
setTimeout(() => {
|
|
document.getElementById('password').innerText = "";
|
|
}, 2000);
|
|
|
|
document.getElementById('pinpad').style.visibility = 'visible'
|
|
}
|
|
|
|
if (content.endsWith(':ZEN')) {
|
|
|
|
document.getElementById('received').innerText = "";
|
|
document.getElementById("zenpub").innerText = content;
|
|
ZENPUB = content;
|
|
|
|
} else {
|
|
|
|
alert("??? : " + content);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
Instascan.Camera.getCameras().then(function (cameras) {
|
|
|
|
if (cameras.length > 0) {
|
|
|
|
scanner.start(cameras[0]);
|
|
|
|
} else {
|
|
|
|
console.error('No cameras found.');
|
|
|
|
}
|
|
|
|
}).catch(function (e) {
|
|
|
|
console.error(e);
|
|
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|