KongDuitara

Live Stream Housie

Ticket Marker – Claim

CLAIM PRIZE

const SCRIPT_URL = "https://script.google.com/macros/s/AKfycbwCwh0DGJdAWa9DWjRVc0zzdqnzTTZKK7GS23rAkcIfw7OZHtnrYffiHUIz1n0svkZZig/exec"; const file = document.getElementById('hl-file'); const img = document.getElementById('hl-img'); const canvas = document.getElementById('hl-canvas'); const ctx = canvas.getContext('2d', { willReadFrequently: true }); const stage = document.getElementById('hl-stage'); const undoBtn = document.getElementById('hl-undo'); const pencilBtn = document.getElementById('tool-pencil'); const ticketNameInput = document.getElementById('ticketName'); const prizeInput = document.getElementById('prize'); const submitBtn = document.getElementById('submitBtn'); const root = document.getElementById('hl-root'); let dpr = window.devicePixelRatio || 1; let drawing = false; let pencil = false; let history = []; let cssW = 0, cssH = 0; function resizeCanvas(w,h){ cssW=w; cssH=h; stage.style.width=w+'px'; stage.style.height=h+'px'; canvas.style.width=w+'px'; canvas.style.height=h+'px'; canvas.width=w*dpr; canvas.height=h*dpr; ctx.setTransform(dpr,0,0,dpr,0,0); ctx.clearRect(0,0,canvas.width,canvas.height); history=[]; undoBtn.disabled=true; } file.onchange = e => { const f=e.target.files[0]; if(!f) return; const r=new FileReader(); r.onload=ev=>{ img.onload=()=>{ const availableWidth = root.clientWidth - 32; const maxW = Math.min(420, availableWidth); const s = Math.min(1, maxW / img.naturalWidth); resizeCanvas(Math.round(img.naturalWidth*s), Math.round(img.naturalHeight*s)); }; img.src=ev.target.result; }; r.readAsDataURL(f); file.value = ''; }; pencilBtn.onclick=()=>{ pencil=!pencil; pencilBtn.classList.toggle('active',pencil); canvas.style.touchAction = pencil ? 'none' : 'pan-y'; }; function pos(e){ const r=canvas.getBoundingClientRect(); const clientX = e.clientX || (e.touches && e.touches[0].clientX); const clientY = e.clientY || (e.touches && e.touches[0].clientY); return { x: clientX - r.left, y: clientY - r.top }; } const startDrawing = (e) => { if(!pencil) return; history.push(ctx.getImageData(0,0,canvas.width,canvas.height)); undoBtn.disabled=false; const p=pos(e); ctx.beginPath(); ctx.moveTo(p.x,p.y); ctx.strokeStyle='rgba(244,114,114,0.18)'; ctx.lineWidth=4; ctx.lineCap='round'; drawing=true; }; const draw = (e) => { if(!drawing) return; const p=pos(e); ctx.lineTo(p.x,p.y); ctx.stroke(); }; const stopDrawing = () => { drawing=false; }; canvas.addEventListener('mousedown', startDrawing); canvas.addEventListener('mousemove', draw); window.addEventListener('mouseup', stopDrawing); canvas.addEventListener('touchstart', (e) => { if(pencil) e.preventDefault(); startDrawing(e); }, {passive: false}); canvas.addEventListener('touchmove', (e) => { if(pencil) e.preventDefault(); draw(e); }, {passive: false}); canvas.addEventListener('touchend', stopDrawing); undoBtn.onclick=()=>{ if(!history.length) return; ctx.putImageData(history.pop(),0,0); undoBtn.disabled=!history.length; }; submitBtn.onclick=async()=>{ if(!img.src) return alert('Upload ticket first'); if(!ticketNameInput.value.trim()) return alert('Enter ticket name'); if(!prizeInput.value) return alert('Select prize'); const originalText = submitBtn.textContent; submitBtn.textContent = "Submitting..."; submitBtn.disabled = true; try{ if (cssW === 0 || cssH === 0) { const availableWidth = root.clientWidth - 32; const maxW = Math.min(420, availableWidth); const s = Math.min(1, maxW / img.naturalWidth); cssW = Math.round(img.naturalWidth * s); cssH = Math.round(img.naturalHeight * s); } const out=document.createElement('canvas'); out.width=cssW*dpr; out.height=cssH*dpr; const o=out.getContext('2d', { willReadFrequently: true }); o.scale(dpr,dpr); o.drawImage(img,0,0,cssW,cssH); o.drawImage(canvas,0,0,cssW,cssH); const base64Data = out.toDataURL('image/png').split(',')[1]; const payload={ ticketName: ticketNameInput.value.trim(), prize: prizeInput.value, mimeType: 'image/png', imageBase64: base64Data }; const r=await fetch(SCRIPT_URL, { method: 'POST', headers: {'Content-Type': 'text/plain;charset=utf-8'}, body: JSON.stringify(payload) }); const j=await r.json(); if(j.status==='success') alert('✅ ' + j.message); else alert('Upload failed: ' + j.message); }catch(e){ alert('Error: ' + e.message); }finally{ submitBtn.textContent = originalText; submitBtn.disabled = false; } };
Buy Housie Ticket

🎟️ Buy Housie Ticket

Total: ₹0

const PRICE_MAP = { 1: 20, 2: 40, 3: 50 }; document.getElementById("ticketCount").addEventListener("change", () => { const count = document.getElementById("ticketCount").value; const total = PRICE_MAP[count] || 0; document.getElementById("totalPrice").innerText = `Total: ₹${total}`; }); function buyTicket() { const name = document.getElementById("buyerName").value.trim(); const count = document.getElementById("ticketCount").value; if (!name) { alert("Please enter your name"); return; } if (!count || count < 1) { alert("Please enter number of tickets"); return; } const baseUrl = "https://wa.me/918575848391"; const total = PRICE_MAP[count]; const message = `Hello, my name is ${name}. I want to buy ${count} Housie ticket(s). Total amount: ₹${total}.`; const url = `${baseUrl}?text=${encodeURIComponent(message)}`; window.open(url, "_blank"); }
Copy Number
Copy number and click GPay to pay
7005245069
function copyNumber(){ const text = document.getElementById("num").innerText; navigator.clipboard.writeText(text).then(() => { alert("Number copied!"); }); }
Kongduitara Housie is an online housie game played every Saturday and Sunday.
You can buy tickets through WhatsApp. Once the payment is made, we will send the ticket to you.

🔗 https://kongduitara.in/#buyticket
Each ticket has your name and a unique ID. All tickets are securely stored in our database for verification.
You will receive a notification when the game is about to start.
Upload your ticket at

🔗 https://kongduitara.in/#livestream

and play live with everyone without delay.
To claim a prize, enter your ticket name and the prize you are claiming, then send it on WhatsApp. Please remember to copy your ticket and paste it in WhatsApp.
When there is a winner, the ticket is verified live so everyone can see and check it.
If any ticket is altered or tampered with number, it will be considered invalid.
No refunds. Once a ticket is generated, refunds are not accepted.
document.querySelectorAll('.faq-q').forEach(btn=>{ btn.onclick=()=>{ btn.parentElement.classList.toggle('open') } })