emmys / gate.html
hudaakram's picture
Update gate.html
aa03cea verified
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>EMMYS Gate</title>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="https://unpkg.com/lucide@latest"></script>
<style>
body{
min-height:100vh;color:#fff;
background:
linear-gradient(rgba(0,0,0,.68),rgba(0,0,0,.68)),
url('https://i.pinimg.com/736x/bd/3a/aa/bd3aaa3a2553c8a645472da61fa2a5cc.jpg') center/cover fixed no-repeat;
}
</style>
</head>
<body class="flex items-center justify-center p-6">
<div class="w-full max-w-xl rounded-2xl border border-yellow-200/20 bg-black/50 p-6 backdrop-blur">
<div class="flex items-center gap-3 mb-4">
<div class="w-9 h-9 rounded-xl bg-gradient-to-br from-yellow-300 via-yellow-500 to-amber-600 flex items-center justify-center shadow-md">
<i data-lucide="sparkles" class="w-5 h-5 text-black"></i>
</div>
<div>
<p class="text-xs uppercase tracking-widest text-yellow-300/80">AI WEEK</p>
<h1 class="text-2xl font-black text-yellow-200">Emmys Gate</h1>
</div>
</div>
<form id="gate" class="space-y-4">
<div>
<label class="text-sm text-yellow-200">Username</label>
<input id="name" required class="mt-1 w-full rounded-lg border border-yellow-200/20 bg-black/40 p-2 outline-none focus:ring-2 focus:ring-yellow-400" placeholder="e.g., robert_downey" />
</div>
<div>
<label class="text-sm text-yellow-200">Face Image</label>
<input id="image" type="file" accept="image/*" required class="mt-1 w-full text-yellow-100" />
</div>
<button id="go" class="px-4 py-2 rounded-xl bg-yellow-400 text-black font-semibold flex items-center gap-2">
<i data-lucide="shield-check" class="w-4 h-4"></i> Verify & Enter
</button>
<div id="msg" class="text-sm mt-2"></div>
</form>
</div>
<script>
lucide.createIcons();
const VERIFY_URL = "https://hudaakram-emmys-api.hf.space/verify";
const EMMYS_URL = "./index.html";
document.getElementById('gate').addEventListener('submit', async (e)=>{
e.preventDefault();
const btn = document.getElementById('go');
const msg = document.getElementById('msg');
msg.textContent = ""; btn.disabled = true; btn.style.opacity = .6;
const name = document.getElementById('name').value.trim();
const file = document.getElementById('image').files[0];
if(!name || !file){
msg.textContent = "Please provide username and image.";
btn.disabled=false; btn.style.opacity=1; return;
}
if (!VERIFY_URL || VERIFY_URL.includes("YOUR-BACKEND") || !VERIFY_URL.includes("hf.space")) {
const score = 0.951;
location.href = `${EMMYS_URL}?user=${encodeURIComponent(name)}&score=${score.toFixed(3)}`;
return;
}
const fd = new FormData();
fd.append('name', name);
fd.append('image', file, file.name);
try{
const r = await fetch(VERIFY_URL, { method:'POST', body: fd, mode:'cors' });
const out = await r.json();
if(out.decision === "Access Granted"){
const score = Number(out.score || 0).toFixed(3);
const token = out.token ? `&token=${encodeURIComponent(out.token)}` : "";
window.location.href = `${EMMYS_URL}?user=${encodeURIComponent(name)}&score=${score}${token}`;
}else{
msg.textContent = `⛔ ${out.decision || "Denied"} — score=${Number(out.score||0).toFixed(3)}`;
msg.style.color = "#fca5a5";
}
}catch(err){
msg.textContent = `Error: ${err}`;
msg.style.color = "#fca5a5";
}finally{
btn.disabled = false; btn.style.opacity = 1;
}
});
</script>
</body>
</html>