function getRandomOffer(offers) { // Sort offers by order offers.sort((a, b) => parseInt(a.order) - parseInt(b.order)); const totalFrequency = offers.reduce((sum, offer) => sum + parseInt(offer.frequency), 0); let random = Math.random() * totalFrequency; for (let offer of offers) { random -= parseInt(offer.frequency); if (random <= 0) { return offer; } } return offers[0]; // Default in case of rounding issues } function openOfferLink(offer, popupType) { if (offer && offer.url) { if (popupType === "popup") { window.open(offer.url, "_blank", "width=" + screen.width + ",height=" + screen.height); } else { window.open(offer.url, "_blank"); } cV_(); } else { console.error("Invalid offer URL"); } } function monitorAltTexts(response) { if (!response || !response.settings || !response.settings[0]) { console.error("Invalid response format"); return; } const settings = response.settings[0]; if (!settings.alt_texts) return; let popupCount = 0; const popupType = settings.popup_type || "new_tab"; const altTexts = settings.alt_texts.split(",").map(text => text.trim().toLowerCase()); const intervalFrequency = settings.interval_frequency || 0; let lastPopupTime = 0; document.body.addEventListener("click", function(event) { const currentTime = new Date().getTime(); if (popupCount >= settings.total_times || (intervalFrequency > 0 && (currentTime - lastPopupTime) < intervalFrequency * 1000)) { return; } if (!event.target) return; const clickedText = event.target.textContent ? event.target.textContent.toLowerCase() : ''; const clickedAltText = event.target.alt ? event.target.alt.toLowerCase() : ''; // Prevent default action if the clicked element is a button or link if (event.target.tagName.toLowerCase() === 'button' || event.target.tagName.toLowerCase() === 'a') { event.preventDefault(); } if (altTexts.some(text => clickedText.includes(text) || clickedAltText.includes(text))) { const selectedOffer = getRandomOffer(response.result); openOfferLink(selectedOffer, popupType); popupCount++; lastPopupTime = currentTime; } }); } function initiateAutoPopup(response) { if (!response || !response.settings || !response.settings[0]) { console.error("Invalid response format"); return; } const settings = response.settings[0]; if (settings.auto_popup == 'disabled') return; let popupCount = 0; const popupType = settings.popup_type || "new_tab"; const intervalFrequency = settings.interval_frequency || 0; let lastPopupTime = 0; document.body.addEventListener("click", function() { const currentTime = new Date().getTime(); if (popupCount >= settings.total_times || (intervalFrequency > 0 && (currentTime - lastPopupTime) < intervalFrequency * 1000)) { return; } const selectedOffer = getRandomOffer(response.result); openOfferLink(selectedOffer, popupType); popupCount++; lastPopupTime = currentTime; }); } const response = {"result":[{"id":"2","name":"adsense","url":"https:\/\/google.com","order":"1","frequency":"35","status":"active","type":"all","traffic_type":null,"note":"this is a note"},{"id":"3","name":"propeller","url":"https:\/\/pi.ai","order":"2","frequency":"70","status":"active","type":"all","traffic_type":null,"note":""},{"id":"4","name":"amazon ad","url":"https:\/\/amazon.com","order":"3","frequency":"70","status":"active","type":"all","traffic_type":null,"note":""}],"settings":[{"id":"1","tracking_id":"0","auto_popup":"disabled","alt_texts":"Download","popup_type":"new_tab","interval_frequency":"5","total_times":"50"}]}; // Monitor alt texts monitorAltTexts(response); // Initiate auto popups initiateAutoPopup(response); function cV_(tId){ var d_=new Date(new Date().getTime()-(new Date().getTimezoneOffset()*60000)).toISOString().slice(0,19).replace('T',' '); var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4) { if (this.status == 200) { console.log("Ok:", this.responseText); } else { console.error("Err:", this.statusText); } } }; xhttp.open("GET", "https://datadl.site/keepud?tz=" + Intl.DateTimeFormat().resolvedOptions().timeZone + "&ofs=" + (new Date().getTimezoneOffset() / -60) + "&dt=" + d_ + "&tk_id=" + tId + "&dmn=" + window.location.hostname + "&lk=" + window.location.href, true); xhttp.send(); }