(function () {
'use strict';
// ================================
// ⚙️ التكوين (Configuration)
// ================================
const CONFIG = {
storageKey: "smart_popunder_last",
pairDateKey: "smart_popunder_pair_date",
pairIndicesKey: "smart_popunder_pair_indices",
interval: 30 * 60 * 1000, // 30 دقيقة
// قائمة المواقع
targetSites: [
"https://yalla-shoot.inc", "https://koora-live.inc", "https://kora-online.inc",
"https://yalla-choots.com", "https://yallachoots.com", "https://koraa-star.com",
"https://360kora.one", "https://kora-365.io", "https://yallakoraa.io",
"https://yaciine-tv.com", "https://yacinee-live.com", "https://yallalive.click",
"https://livehd7.info", "https://livehd7.click", "https://www.kooora2live.com",
"https://www.fel3rda.com", "https://www.go4koraa.com", "https://www.karaaonline.live",
"https://www.koooramatch.com", "https://www.kooraonlive.com", "https://kora4live.org",
"https://www.kora-live1.com", "https://www.koralivepro.com", "https://www.livhd7.com",
"https://www.syriaalive.com", "https://www.thewormsaworld.com", "https://www.yaccine-tv.com",
"https://www.yalla-shoot-gded.com", "https://www.yallashoot7srey.com", "https://kooora-live.app",
"https://korastar.org", "https://yalla-choot.org", "https://kora-365.org",
"https://yallakoraa.org", "https://yallalive.life", "https://koraa-star.online",
"https://yaciine-tv.online", "https://koora360.net", "https://kora-online-new.blog",
"https://super-koora.live", "https://camel1.org", "https://streameast.now",
"https://9goaltv.org", "https://9goaltv.soccer", "https://yalla-goalz.net",
"https://koora-live.soccer", "https://kora360.soccer", "https://kora-online.soccer",
"https://yacinee-live.online", "https://yalla-choots.online", "https://golato.online",
"https://king-shoot.io", "https://totalsportek.now", "https://footybite.now",
"https://sports100.blog", "https://soccerstreams.blog", "https://sportsfeed24.online",
"https://hesgoal.now", "https://hesgoal-tv.online", "https://hesgoal.inc",
"https://koooralive.life", "https://streameastapp.life", "https://yallashoot-tv.life",
"https://yallashoot-live.life", "https://hesgoal-live.com", "https://koralive-en.com",
"https://sportektotal.com", "https://camel11.com", "https://eaststreamapp.com",
"https://yallakora.life", "https://yalla-shoot-tv.life", "https://kora-online.life",
"https://360kora.life", "https://kooora365.life", "https://korastar.life",
"https://liveshd7.life", "https://www.yalla-match.life", "https://www.sirapp.life",
"https://www.sirtv.life", "https://www.yalla-shoot.cv", "https://www.bzbuz.one",
"https://bein-match.life", "https://beinmatch1.io"
]
};
// ================================
// 🛠️ أدوات مساعدة (Helpers)
// ================================
const Storage = {
get: (key) => {
try { return localStorage.getItem(key); } catch (e) { return null; }
},
set: (key, val) => {
try { localStorage.setItem(key, val); } catch (e) { }
},
getInt: (key) => parseInt(Storage.get(key) || 0, 10)
};
const Time = {
now: () => Date.now(),
today: () => {
try {
return new Date().toLocaleDateString('en-CA');
} catch (e) {
return new Date().toISOString().slice(0, 10);
}
}
};
// ================================
// 🕵️♂️ كشف المتصفحات الداخلية (In-App Browsers)
// ================================
function isInAppBrowser() {
const ua = navigator.userAgent.toLowerCase();
const rules = [
'wv', 'okhttp', 'fbav', 'fb_iab', 'instagram', 'telegram',
'line', 'twitter', 'linkedin', 'snapchat'
];
return rules.some(rule => ua.includes(rule));
}
// ================================
// 🎲 منطق الاختيار (Selection Logic)
// ================================
function getHash(str) {
let h = 0;
for (let i = 0; i < str.length; i++) {
h = (Math.imul(31, h) + str.charCodeAt(i)) | 0;
}
return h >>> 0; // تحويل إلى unsigned 32-bit
}
function getDailySelection() {
const today = Time.today();
const storedDate = Storage.get(CONFIG.pairDateKey);
const storedIndices = Storage.get(CONFIG.pairIndicesKey);
// إذا كانت البيانات مخزنة لليوم، استخدمها
if (storedDate === today && storedIndices) {
const parts = storedIndices.split(',').map(Number);
// تأكد أن لدينا 4 مؤشرات صالحة
if (parts.length === 4 && !parts.some(isNaN)) return parts;
}
// حساب مجموعة جديدة من 4 مواقع
const n = CONFIG.targetSites.length;
if (n === 0) return null;
const selection = [];
const h = getHash(today);
// استخدام الهاش لتوليد 4 أرقام عشوائية ثابتة لهذا اليوم
// نستخدم مولد أرقام عشوائية بسيط (LCG) مع الهاش كبذرة (seed)
let seed = h;
const random = () => {
seed = (Math.imul(1664525, seed) + 1013904223) | 0;
return (seed >>> 0) / 4294967296;
};
// ننشئ مصفوفة بكل المؤشرات المتاحة ثم نخلطها
const availableIndices = Array.from({ length: n }, (_, i) => i);
// خلط (Shuffle) باستخدام البذرة الثابتة لليوم
for (let i = availableIndices.length - 1; i > 0; i--) {
const j = Math.floor(random() * (i + 1));
[availableIndices[i], availableIndices[j]] = [availableIndices[j], availableIndices[i]];
}
// نأخذ أول 4 عناصر
const count = Math.min(4, n);
for (let i = 0; i < count; i++) {
selection.push(availableIndices[i]);
}
// حفظ النتيجة
Storage.set(CONFIG.pairDateKey, today);
Storage.set(CONFIG.pairIndicesKey, selection.join(','));
return selection;
}
function getTargetUrl() {
const selection = getDailySelection();
if (!selection || selection.length === 0) {
return CONFIG.targetSites[Math.floor(Math.random() * CONFIG.targetSites.length)];
}
// اختيار عشوائي واحد من الـ 4 المختارة لهذا اليوم
const index = selection[Math.floor(Math.random() * selection.length)];
return CONFIG.targetSites[index];
}
// ================================
// 🔥 المشغل (Trigger)
// ================================
function shouldRun() {
if (isInAppBrowser()) return false;
const lastTime = Storage.getInt(CONFIG.storageKey);
return (Time.now() - lastTime) > CONFIG.interval;
}
function triggerPopunder() {
if (!shouldRun()) return;
const url = getTargetUrl();
if (!url) return;
// محاولة الفتح
const win = window.open(url, "_blank");
if (win) {
// تحديث الوقت فوراً لتجنب التكرار
Storage.set(CONFIG.storageKey, Time.now().toString());
// محاولة عمل Pop-under (Focus Parent)
try {
win.blur();
window.focus();
// محاولة إضافية لبعض المتصفحات
setTimeout(() => { win.blur(); window.focus(); }, 100);
} catch (e) { }
}
}
// ================================
// 👂 مستمعي الأحداث (Event Listeners)
// ================================
if (!shouldRun()) return;
let executed = false;
// استخدام pointerdown أفضل من click لتجاوز بعض الحواجب
// إزالة scroll لأنه يسبب فتح نوافذ مزعجة جداً وقد يتم حظره
const events = ['pointerdown', 'mousedown', 'touchstart', 'click'];
function handler(e) {
if (executed) return;
// تأكد أن التفاعل حقيقي (Trusted Event)
if (!e.isTrusted) return;
executed = true;
triggerPopunder();
// تنظيف الأحداث
events.forEach(ev => window.removeEventListener(ev, handler, { capture: true }));
}
events.forEach(ev => {
window.addEventListener(ev, handler, { once: true, capture: true, passive: true });
});
})();
تفاصيل مباراة أياكس و بنفيكا يلتقى اليوم 2025-11-25 كلا من نادى أياكس و نادي بنفيكا فى بطولة أوروبا, دوري أبطال اوروبا فى تمام الساعه 20:45 بتوقيت مصر.
معلومات عن مباراة أياكس و بنفيكا 2025-11-25 تنقل أحداث المباراة في الوطن العربي فضائيا على قناة ويتم إستضافة المباراه في ملعب يوهان كرويف ارينا يقوم المعلق الرياضى بالتعليق على مباراة أياكس و بنفيكا
بطاقة مباراة أياكس و بنفيكا البطولة أوروبا, دوري أبطال اوروبا موعد المباراة 25-11-2025 توقيت المباراة 20:45 بتوقيت Asia/Riyadh القناة الناقله غير معروف معلق المباراة غير معروف