window.Telegram.WebApp.ready(); Telegram.WebApp.expand(); Telegram.WebApp.setHeaderColor('#000000'); // Telegram.WebApp.MainButton.hide(); Telegram.WebApp.enableClosingConfirmation() const init=window.Telegram.WebApp.initData // showLoading() getUser() function generateDeviceID() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); } // Retrieve or generate the device ID let deviceId = localStorage.getItem('device_id'); if (!deviceId) { deviceId = generateDeviceID(); localStorage.setItem('device_id', deviceId); } function getUser() { $.ajax({ type: "POST", url: "./api/user.php", data: { init: init, device_id: localStorage.getItem('device_id') }, success: function (json) { $(".preLoader").hide(); // alert("Raw Response: ", json); try { var res = JSON.parse(json); if (res.code == 200) { // setTimeout(function () { // $(".preLoader").hide(); Telegram.WebApp.setHeaderColor('#4e29a2'); // }, 2000); sessionStorage.setItem('tap_income', res.tap_income); if(res.profile_type=='text'){ $(".profileHeader").html(`
${res.profile}
${res.name}ID : ${res.userid}
`) }else{ $(".profileHeader").html(`
${res.name}ID : ${res.userid}
`) } $("#balance").html(res.balance); $(".balance_prob>div").html(res.balance); $(".balance_now>span").html(res.balance); var fixed = (res.balance * 1).toFixed(2); $(".balanceFlex>.balance_old").html(fixed); $(".profit_perhour:eq(0)>span>b").html("+" + res.tap_income); $(".profit_perhour:eq(1)>span>b").html("+" + res.pph); $("#used").html(res.tap_left); sessionStorage.setItem("tap_count", res.tap_count); var width = res.tap_left * 100 / 1000; $("#total_product").html(res.product); $("#pph_value").html(res.pph); $(".progressbar>.progressCount").css("width", width + "%"); $("#userid").html(res.userid); $(".sendInviteNow").click(function () { location.href = res.referLink; }); getTask(); getProduct(); getLevel(); getDepositHistory(); getWithdrawHistory(); checkIncome(); getSpinHistory(); hideLoading() } else { showLoading() showFail(res.msg); } } catch (e) { console.error("JSON Parse Error: ", e.message); } }, error: function (xhr, status, error) { console.error("AJAX Error: ", status, error); } }); } let touchStarted = false; function earnCoin(event) { if (event.type === 'touchstart') { touchStarted = true; } else if (event.type === 'click' && touchStarted) { touchStarted = false; return; } event.preventDefault(); //add cut here var used=$("#used").html()*1; var total=1000; if(used<=0){ return; } var tap_count=sessionStorage.getItem("tap_count")*1; sessionStorage.setItem("tap_count",tap_count+1); var usednow=used-1; var width=usednow*100/total*1 $(".progressbar>.progressCount").css("width",width+"%") $("#used").html(used-1) var per_tap_income=sessionStorage.getItem('tap_income'); const touches = event.changedTouches ? event.changedTouches : [event]; // var per_tap_income = '+'; plusBalance(per_tap_income) for (let i = 0; i < touches.length; i++) { const touch = touches[i]; const coin = event.target; const rect = coin.getBoundingClientRect(); const x = touch.clientX - rect.left; const y = touch.clientY - rect.top; const centerX = rect.width / 2; const centerY = rect.height / 2; let tiltX = 0; let tiltY = 0; if (x < centerX) { tiltX = -10; } else { tiltX = 10; } if (y < centerY) { tiltY = -10; } else { tiltY = 10; } coin.style.transform = `rotateX(${tiltY}deg) rotateY(${tiltX}deg)`; setTimeout(() => { coin.style.transform = ''; }, 200); const tapText = document.createElement('div'); tapText.className = 'tap-animation'; tapText.innerText = per_tap_income; tapText.style.left = `${x}px`; tapText.style.top = `${y}px`; coin.appendChild(tapText); tapText.addEventListener('animationend', () => { tapText.remove(); }); } // Reset touchStarted flag after a short delay to allow for next touch/click setTimeout(() => { touchStarted = false; }, 300); }