UID: ...
0
Real Users
(Unique People)
0
Total UIDs
(In Database)
0
Online Now
0
Duplicates
0
Registered
0
Guests
$0.000000
Total Assets
0
World REG
0
World GUEST
0
Reward REG
0
Total Referral Joins 🔍 Touch to Track
Bhai! Yahan se aap kisi bhi user ko uske naam, email, phone ya IP se dhoond sakte hain. / یہاں سے آپ کسی bhi صارف کو تلاش کر سکتے ہیں۔
Real-time Location Visualization of All Users
0
Users
Locating...
Admin KM Mode
List of all active channel subscribers
0
Total Joined
Managing User Payouts & Balance Verification
بھائی، جب کوئی یوزر ودڈرال (Withdraw) کرے گا تو وہ یہاں نظر آئے گا۔ آپ نے پہلے یوزر کو اس کے نمبر پر رقم (Balance) بھیجنی ہے، اس کے بعد ہی یہاں سے 'Approve' کا بٹن دبانا ہے۔
0
Pending Requests
$0.000000
Total Pending Value
Bhai! Yahan se aap kisi bhi withdrawal request ko dhoond sakte hain. / یہاں سے ود ڈرا کی درخواستیں تلاش کریں۔
بائی! یہاں سے آپ تمام یوزرز کو ایک ساتھ پیغام بھیج سکتے ہیں۔ یہ پیغام یوزر ki اسکرین پر "نارنگی aur سبز" رنگوں में نظر आएगा۔
App Screen Preview
پیغام یہاں نظر آئے گا۔۔۔
Ready to broadcast
بائی! یہاں سے آپ بلاگر ki مختلف پلے لسٹس کے اشتہارات ریموٹلی کنٹرول کر سکتے ہیں۔ پلیئر کے اوپر یوٹیوب جیسا ویڈیو ایڈ لگانے کے لیے **"Video Overlay Ad"** wala khana istemal karein.
Put in "HTML/JavaScript" Gadget (Layout Section):
<script>
/**
* SATRANGI MASTER AD-HUNTER (Pro Edition V2)
* Works beautifully with: Blogger.com & any external HTML systems
* Supports: Video Overlays, Banners, Multi-Bottom Ads, Old Ad Cleaning, Accurate Drama/Episode Watch Tracking & Active Focus Duration
*/
(function() {
const firebaseURL = "https://satrangi9483-default-rtdb.firebaseio.com/admin_settings/external_ads.json";
const userBaseURL = "https://satrangi9483-default-rtdb.firebaseio.com/users/";
const getParam = (p) => new URLSearchParams(window.location.search).get(p);
let uid = getParam('uid');
if (uid) {
localStorage.setItem('satrangi_uid', uid);
} else {
uid = localStorage.getItem('satrangi_uid');
}
const rawTitle = document.title || "Unknown Content";
const cleanContentTitle = (title) => {
if (!title) return "Unknown Content";
return title
.replace(/ - Satrangi| - Blogger| - YouTube|: Satrangi|Satrangi/gi, '')
.replace(/\s+/g, ' ')
.trim();
};
const getTitleFromUrlSlug = () => {
try {
const url = window.location.href;
if (url.includes('.html')) {
const parts = url.split('/');
const lastPart = parts[parts.length - 1];
let slug = lastPart.replace(/\.html(\?.*)?$/i, '');
slug = slug.replace(/[-_]+/g, ' ');
return slug.split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
}
} catch (e) {
console.error("Error parsing slug: ", e);
}
return null;
};
const getPostTitleFromDOM = () => {
const selectors = [
'h1.post-title', 'h3.post-title', '.entry-title', 'h1.entry-title',
'.post-header h1', '.post h1', '.post-title', 'h1'
];
for (let sel of selectors) {
const el = document.querySelector(sel);
if (el && el.innerText && el.innerText.trim()) {
return el.innerText.trim();
}
}
return null;
};
const getComputedWatchTitle = () => {
const slugT = getTitleFromUrlSlug();
if (slugT) return slugT;
const url = window.location.href;
if (url.includes('/search/label/')) {
try {
const labelPart = decodeURIComponent(url.split('/label/')[1].split('?')[0]);
return "Browsing Category: " + (labelPart.charAt(0).toUpperCase() + labelPart.slice(1));
} catch (e) {}
}
const domT = getPostTitleFromDOM();
if (domT) return cleanContentTitle(domT);
return cleanContentTitle(document.title || "Unknown Content");
};
const pageTitle = getComputedWatchTitle();
let activityId = null;
let watchStartTime = Date.now();
let activeDuration = 0;
let isTabActive = true;
document.addEventListener('visibilitychange', () => {
if (document.hidden) {
isTabActive = false;
console.log("Satrangi Tracker: Watch paused (Tab backgrounded)");
} else {
isTabActive = true;
console.log("Satrangi Tracker: Watch resumed (Tab focused)");
}
});
const detectParentCategory = (computedTitle) => {
const url = window.location.href.toLowerCase();
const titleStr = ((computedTitle || "") + " " + rawTitle).toLowerCase();
const isDrama = url.includes("drama") || titleStr.includes("drama") || titleStr.includes("drame") || titleStr.includes("serial") || titleStr.includes("episode") || titleStr.includes("ep ") || titleStr.includes("ep-") || titleStr.includes("ep_") || titleStr.includes("season") || titleStr.includes("osman") || titleStr.includes("ertugrul") || titleStr.includes("ghazi") || titleStr.includes("s1") || titleStr.includes("s2") || titleStr.includes("s3") || titleStr.includes("s4") || titleStr.includes("s5") || titleStr.includes("dubbed");
if (isDrama) return "Dramas";
if (url.includes("movie") || titleStr.includes("movie") || titleStr.includes("film") || titleStr.includes("cinema")) return "Movies";
if (url.includes("song") || url.includes("music") || titleStr.includes("song") || titleStr.includes("music") || titleStr.includes("ghazal") || titleStr.includes("singing")) return "Music";
if (url.includes("cartoon") || titleStr.includes("cartoon") || titleStr.includes("kids") || titleStr.includes("anime") || titleStr.includes("motu patlu")) return "Cartoons";
if (url.includes("quran") || url.includes("religious") || url.includes("majlis") || url.includes("matam") || titleStr.includes("quran") || titleStr.includes("islamic") || titleStr.includes("majlis") || titleStr.includes("matam") || titleStr.includes("nohay") || titleStr.includes("nohe")) return "Religious";
if (url.includes("tv_category") || url.includes("tv.html") || titleStr.includes("tv live") || titleStr.includes("channel")) return "TV";
if (url.includes("fashion") || titleStr.includes("fashion")) return "Fashion";
if (url.includes("food") || titleStr.includes("recipe") || titleStr.includes("cooking") || titleStr.includes("chicken")) return "Food";
if (url.includes("social") || titleStr.includes("social")) return "Social";
return "Other";
};
const detectedCategory = detectParentCategory(pageTitle);
const detectDramaDetails = (title, url) => {
const fullStr = ((title || "") + " " + (url || "")).toLowerCase();
let dramaName = "N/A";
if (fullStr.includes("cid") || fullStr.includes("c.i.d")) {
dramaName = "C.I.D";
} else if (fullStr.includes("ertugrul") || fullStr.includes("dirilis")) {
dramaName = "Dirilis Ertugrul";
} else if (fullStr.includes("osman") || fullStr.includes("kurulus")) {
dramaName = "Kurulus Osman";
} else if (fullStr.includes("alparslan") || fullStr.includes("alp arslan")) {
dramaName = "Alparslan Büyük Selçuklu";
} else if (fullStr.includes("barbie")) {
dramaName = "Barbie Series";
} else if (fullStr.includes("motu") || fullStr.includes("patlu")) {
dramaName = "Motu Patlu";
} else if (fullStr.includes("destan")) {
dramaName = "Destan";
} else {
const words = (title || "").split(/\s+/).filter(w => !/episode|season|ep|part|hd|full|drame|drama|serial/i.test(w));
if (words.length > 0) {
dramaName = words.slice(0, 3).join(' ');
} else {
dramaName = title || "Unknown Video";
}
}
let ep = "N/A";
const epMatch = (title || "").match(/(?:episode|ep|part|epsiode)\s*[-_:#s\d]*/i);
if (epMatch) {
ep = epMatch[0].trim();
} else {
const numMatch = (title || "").match(/\b\d{1,4}\b/);
if (numMatch) {
ep = "Episode " + numMatch[0];
}
}
return { dramaName, ep };
};
const trackContent = () => {
if(!uid) {
console.log("Satrangi Tracker: No User UID. Bypassed.");
return;
}
const timestamp = Date.now();
let pktTimeString = "";
try {
pktTimeString = new Intl.DateTimeFormat('en-PK', {
timeZone: 'Asia/Karachi',
year: 'numeric', month: 'short', day: 'numeric',
hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: true
}).format(new Date());
} catch(e) {
pktTimeString = new Date().toLocaleString() + " PKT";
}
const { dramaName, ep } = detectDramaDetails(pageTitle, window.location.href);
const activityData = {
type: 'watch',
category: pageTitle,
parent_category: detectedCategory,
drama_name: dramaName,
episode: ep,
timestamp: timestamp,
date: pktTimeString,
url: window.location.href,
duration: 0
};
fetch(`${userBaseURL}${uid}/activity.json`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(activityData)
})
.then(r => r.json())
.then(data => {
if(data && data.name) {
activityId = data.name;
console.log("Satrangi Tracker: Registered Session: " + activityId);
setInterval(() => {
if (isTabActive) {
activeDuration += 10;
fetch(`${userBaseURL}${uid}/activity/${activityId}.json`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ duration: activeDuration })
}).catch(err => console.error("Duration Sync Error: ", err));
}
fetch(`${userBaseURL}${uid}/lastActive.json`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(Date.now())
}).catch(err => console.error("LastActive Sync Error: ", err));
}, 10000);
}
})
.catch(err => console.error("Satrangi Tracker Error: ", err));
};
const startAdHunter = () => {
if (window.location.pathname === "/" || window.location.pathname === "/index.html") return;
trackContent();
fetch(firebaseURL).then(r => r.json()).then(ads => {
if(!ads) return;
let cat = "Dramas";
const currentURL = window.location.href.toLowerCase();
Object.keys(ads).forEach(c => { if(currentURL.includes(c.toLowerCase())) cat = c; });
const d = ads[cat];
if(!d) return;
const postBody = document.querySelector('.post-body') || document.querySelector('.entry-content') || document.querySelector('.post-content');
if(!postBody) return;
const oldAds = postBody.querySelectorAll('script, ins, iframe:not([src*="youtube"]), .separator, div, center, span, a');
oldAds.forEach(el => {
if(el.querySelector('iframe') || (el.tagName === 'IFRAME' && el.src.includes('youtube'))) return;
const html = (el.innerHTML + el.outerHTML + el.id + el.className).toLowerCase();
if(['atoptions','adsbygoogle','socialbar','popunder','propellerads','adsterra','monetag','data-ad-'].some(s => html.includes(s))){
el.style.display = 'none'; try { el.remove(); } catch(e) {}
}
});
const player = postBody.querySelector('iframe');
if(player) {
player.parentNode.style.position = 'relative';
function showSmartAd() {
if(!d.videoAdCode) return;
if(document.getElementById('satrangi-video-overlay')) return;
const overlay = document.createElement('div');
overlay.id = "satrangi-video-overlay";
overlay.style = "position:absolute;inset:0;background:#000;z-index:99999;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;border:1px solid #222;";
overlay.innerHTML = `
${d.videoAdCode}
Wait...
`;
player.parentNode.appendChild(overlay);
executeScriptsIn(overlay);
let totalDur = parseInt(d.videoAdDuration) || 15;
let skipDelay = parseInt(d.videoAdSkipDelay) || 10;
let elapsed = 0;
const adTimer = setInterval(() => {
elapsed++;
const btn = document.getElementById('skip-btn');
if(!btn) { clearInterval(adTimer); return; }
if(elapsed >= totalDur) {
clearInterval(adTimer);
overlay.remove();
} else if(elapsed >= skipDelay) {
btn.innerText = "Skip Ad ➔";
btn.style.opacity = "1";
btn.style.pointerEvents = "auto";
btn.onclick = () => { overlay.remove(); clearInterval(adTimer); };
} else {
btn.innerText = "Wait... " + (skipDelay - elapsed) + "s";
}
}, 1000);
}
const intervalMin = parseInt(d.adInterval) || 0;
if(intervalMin > 0) {
setInterval(showSmartAd, intervalMin * 60 * 1000);
showSmartAd();
} else {
showSmartAd();
}
if(d.bannerBelowPlayer) {
const banner = document.createElement('div');
banner.style = "margin:20px auto; text-align:center; max-width:100%; clear:both; overflow:hidden;";
banner.innerHTML = d.bannerBelowPlayer;
player.parentNode.insertBefore(banner, player.nextSibling);
executeScriptsIn(banner);
}
}
const endBox = document.createElement('div');
endBox.style = "margin-top:40px; text-align:center; display:flex; flex-direction:column; gap:20px; clear:both;";
endBox.innerHTML = (d.e1||"") + (d.e2||"") + (d.e3||"") + (d.e4||"");
postBody.appendChild(endBox);
executeScriptsIn(endBox);
});
};
function executeScriptsIn(container) {
container.querySelectorAll('script').forEach(s => {
const n = document.createElement('script');
if(s.src) n.src = s.src; else n.textContent = s.textContent;
document.body.appendChild(n);
});
}
if (document.readyState === 'complete') startAdHunter();
else window.addEventListener('load', startAdHunter);
})();
</script>
Poori website ke buttons aur components ka size yahan se chota ya bara karein. / پوری ویب سائٹ کا سائز یہاں سے کنٹرول کریں۔
Background mein chalne wale sitaron (stars) ki tadad, size aur raftaar ko control karein. / بیک گراؤنڈ کے ستاروں کو کنٹرول کریں۔
Rainbow colors speed yahan se badlein. / رینبو اسپیڈ کی سیٹنگز۔
Website ke main Top aur Bottom banners ke keys aur universal script yahan set karein. / مین بینر اشتہارات یہاں سے کنٹرول کریں۔
Note: Ye code website load hotay hi auto-inject ho jaye ga.
Bhai! Yahan link aur interval (minutes mein) badlein. 0 rakhein ge to har click par link khule ga.
Bhai! Ye box APK buttons ke niche wale ad ke liye hai.
Bhai! Ye box page ke sab se niche wale ad ke liye hai.
بائی! یہاں سے آپ مخصوص کیٹیگریز (جیسے Movies, TikTok) کے لیے الگ ٹاپ aur باٹم بینر کنٹرول کر سکتے ہیں۔ جب یوزر اس کیٹیگری میں جائے گا تو یہ والے اشتہار نظر آئیں گے۔
Yahan se aap website par koi bhi zarori khabar (Notice) ON/OFF kar sakte hain.
Aap custom withdrawal confirmation message yahan set karein.
Reward ki raqam, timer aur messages ko yahan se manage karein. / انعام کی رقم اور میسجز یہاں سے کنٹرول کریں۔
Yahan se aap index.html aur index.js ki setting control kar sakte hain. Maintenance mode laganey ke liye toggle switch istemal karein. / ایپ کنٹرول سیٹنگز۔
Activate to block all non-admin users.
Allow user registry scanning (Debug only).
یہ سسٹم کی ڈیٹا بیس وزیبلٹی (visibility) سیٹنگ ہے، اسے آن کرنے پر کچھ مخصوص ڈیٹا بغیر ایڈمن لاگ ان کے بھی نظر آسکتا ہے۔ اسے صرف ٹیسٹنگ یا خرابی چیک کرنے کے لیے آن کریں، عام طور پر اسے 'آف' ہی رکھیں تاکہ سیکیورٹی بنی رہے۔
Website open hote hi jo welcome message nazar aata hai, uski mukammal setting yahan hai. / ویلکم میسج کی سیٹنگز۔
Balance patti ke upar wale do buttons (APK Buttons) aur heading ko yahan se badlein. / ہوم بیلنس سیکشن کے بٹن۔
Bhai! Yahan se aap دونوں buttons aur un ke upar wali heading ko control kar sakte hain.
Aap app ke contact section ke links yahan se manage kar sakte hain. WhatsApp, YouTube aur TikTok ke links yahan badlein. / سوشل میڈیا لنکس یہاں سے تبدیل کریں۔
Website par chalne wali charon (4) ticker strips ka text, size aur speed yahan se control karein. / ٹکر پٹیوں کا ٹیکسٹ اور اسپیڈ۔
Bhai! Jab naya user subscribe karega tabhi referrer ko reward milega. / Reward is given when the new user subscribes.
Website ke footer links aur Next Page button ka URL yahan se badlein. / فوٹر لنکس اور نیکسٹ پیج کا یو آر ایل۔
Bhai! Yahan "Next Page" button ka link badlein.
Manage all responses sent by users to your Zebra Messages. / صارفین کے جوابات یہاں دیکھیں۔
Referral Linkage & Network / ریفرل کنکشنز
LIVE TREE VIEWTrack referrers, their referred list, profile joining timestamps, cities, and country locations.