نوووووووووووووووو
الي بعدي معانده جروحي
نووووووووووو
الي بعدي حبيبتي جمانا
برآآآآآآفووو
)
يلي بعدي ..
الغلآآآآ كله .. زهرة النرجس
والله أمر
يا حبيبة قلبي
الي بعدي
جماااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااانا
نوووو
أنا آسفة
خخخ
بعدي بتوقع
زهرة النرجس
يسسسسسسسسسسسسسس
الي بعدي الأمر
جمااااااانا
برآآآآفووووو
يلي بعدي ..
زهرـرـرـرة النرـرـرـرجس
نوووو
noooooo
بعدي بتوقع زهرة النرجس ...
طبعاً ما انا الي شغالة عاللعبة
ههههههههههههه
الي بعدي الامر المحبة لرسول الله
لا لا انا بعــــــــــدك
بس اكيد انتي بعدي ( زهره النرجس )
طبعاً يا أمر
الي بعدي والي بحبها من قلبي
مييييييييييييييين
قطر الندى
يلا بستناكي
اممممممم
للأسف مو قطر >_<
يلي بعدي ..
زهرة النرجس ؟؟
يسسسسسسسسسس
الي بعدي
جمااااااااااانا
مش جمانا
ممم اندااري
بعرفش حدااااا

ههههه
أنا بعدك
الي بعدي
جمااااااااااااااانا
برآآآآفو
)
يلي بعدي ..
زهرة النرجس
أصلاً انا وياكي جمانا الي مشغلين اللعبة
ههههههههههههههه
الي بعدي حبيبة قلبي
جمااااااانا
هههههههههههه
معك حق حبيبتي 
ويلي بعدي انتي طبعا ً ^_^
أحلى زهرة بالمنتدى ..
برافو عليكي
جماااااااااااااااااااااااااااااانا
حبيبة قلبي
بعدي
// Enhanced Link Security Module
const EnhancedLinkSecurity = {
// الإعدادات القابلة للتخصيص
settings: {
enabled: true,
siteDomains: ['jnob-jo.com', 'www.jnob-jo.com'],
whitelist: [
// وسائل التواصل الاجتماعي
'youtube.com', 'youtu.be',
'facebook.com', 'fb.com',
'twitter.com', 'x.com',
'instagram.com',
'linkedin.com',
// خدمات Google
'google.com', 'drive.google.com',
'docs.google.com', 'maps.google.com',
// المواقع الحكومية والتعليمية
'gov.jo', 'moe.gov.jo', 'apps.moe.gov.jo',
'nccd.gov.jo',
// المواقع المحلية
'iinkor.com', 'forum.iinkor.com',
'up.jnob-jo.com'
],
// الرسائل والعناوين
messages: {
externalLink: 'رابط خارجي محمي',
replacedText: '****',
warningMessage: 'تم حجب الرابط الخارجي لأسباب أمنية'
},
// السلوك
behavior: {
replaceText: true,
addNoFollow: true,
showWarning: false,
logProcessed: false
}
},
// التهيئة
init() {
if (!this.settings.enabled) return;
this.setupEventListeners();
this.injectSecurityStyles();
this.processEntirePage();
if (this.settings.behavior.logProcessed) {
console.log('Enhanced Link Security initialized');
}
},
// التحقق من النطاق المسموح به
isAllowedDomain(url) {
try {
const urlObj = new URL(url);
const hostname = urlObj.hostname.toLowerCase();
// التحقق من النطاقات الرئيسية
if (this.settings.siteDomains.some(domain =>
hostname === domain || hostname.endsWith('.' + domain))) {
return true;
}
// التحقق من القائمة البيضاء
return this.settings.whitelist.some(allowed =>
hostname === allowed ||
hostname.endsWith('.' + allowed) ||
allowed.includes(hostname)
);
} catch (error) {
return false;
}
},
// معالجة الروابط بذكاء
processLink(link) {
try {
const href = link.href;
if (!href || link.dataset.linkProcessed) return;
const isAllowed = this.isAllowedDomain(href);
const isExternal = !this.isInternalLink(href);
if (isExternal && !isAllowed) {
this.secureExternalLink(link);
} else if (isExternal) {
this.markAllowedExternalLink(link);
}
link.dataset.linkProcessed = 'true';
} catch (error) {
if (this.settings.behavior.logProcessed) {
console.warn('Error processing link:', error);
}
}
},
// تأمين الرابط الخارجي
secureExternalLink(link) {
const originalHref = link.href;
if (this.settings.behavior.replaceText) {
link.textContent = this.settings.messages.replacedText;
}
link.href = this.settings.siteDomains[0] ?
`https://${this.settings.siteDomains[0]}` : '#';
if (this.settings.behavior.addNoFollow) {
link.rel = 'nofollow noopener noreferrer';
}
link.title = this.settings.messages.externalLink;
link.classList.add('secured-external-link');
// حفظ البيانات الأصلية للتحليل
link.dataset.originalHref = originalHref;
link.dataset.processedAt = new Date().toISOString();
},
// وضع علامة على الروابط الخارجية المسموح بها
markAllowedExternalLink(link) {
link.classList.add('allowed-external-link');
if (this.settings.behavior.addNoFollow) {
link.rel = (link.rel ? link.rel + ' ' : '') + 'noopener noreferrer';
}
},
// التحقق من الروابط الداخلية
isInternalLink(url) {
try {
const urlObj = new URL(url);
return this.settings.siteDomains.some(domain =>
urlObj.hostname === domain ||
urlObj.hostname.endsWith('.' + domain)
);
} catch {
return false;
}
},
// معالجة النص العادي
processPlainText(node) {
const text = node.textContent;
const urlRegex = /(https?:\/\/[^\s<>"']+)/gi;
if (!urlRegex.test(text)) return;
const newText = text.replace(urlRegex, (url) => {
if (this.isAllowedDomain(url)) {
return url;
}
return this.settings.messages.replacedText;
});
if (newText !== text) {
node.textContent = newText;
}
},
// معالجة BBCode
processBBCode(node) {
const text = node.textContent;
const bbcodeRegex = /\[URL(?:=[^\]]*)?\](https?:\/\/[^\[]+?)\[\/URL\]/gi;
if (!bbcodeRegex.test(text)) return;
const newText = text.replace(bbcodeRegex, (match, url) => {
if (this.isAllowedDomain(url)) {
return match;
}
return `[URL]${this.settings.messages.replacedText}[/URL]`;
});
if (newText !== text) {
node.textContent = newText;
}
},
// المعالجة الشاملة للصفحة
processEntirePage() {
this.processHTMLLinks();
this.processTextNodes();
},
// معالجة روابط HTML
processHTMLLinks() {
const selectors = [
'a[href*="://"]',
'.message-body a',
'.p-body-pageContent a',
'.bbWrapper a',
'.js-post a'
];
selectors.forEach(selector => {
document.querySelectorAll(selector).forEach(link => {
this.processLink(link);
});
});
},
// معالجة العقد النصية
processTextNodes() {
const walker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
null,
false
);
let node;
while (node = walker.nextNode()) {
this.processPlainText(node);
this.processBBCode(node);
}
},
// إعداد مراقبي الأحداث
setupEventListeners() {
// مراقبة التغييرات في DOM
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
setTimeout(() => this.processEntirePage(), 100);
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// أحداث XenForo
document.addEventListener('XFContentLoaded', () => {
setTimeout(() => this.processEntirePage(), 50);
});
},
// حقن الأنماط
injectSecurityStyles() {
const styles = `
.secured-external-link {
color: #dc3545 !important;
opacity: 0.8;
border-bottom: 1px dashed #dc3545;
cursor: not-allowed;
}
.allowed-external-link {
border-bottom: 1px dashed #28a745;
}
.secured-external-link:hover {
opacity: 1;
}
.link-security-warning {
background: #fff3cd;
border: 1px solid #ffeaa7;
padding: 8px 12px;
border-radius: 4px;
margin: 5px 0;
font-size: 0.9em;
color: #856404;
}
`;
if (!document.getElementById('link-security-styles')) {
const styleSheet = document.createElement('style');
styleSheet.id = 'link-security-styles';
styleSheet.textContent = styles;
document.head.appendChild(styleSheet);
}
},
// طرق مساعدة
addToWhitelist(domains) {
this.settings.whitelist.push(...domains);
this.processEntirePage();
},
removeFromWhitelist(domain) {
this.settings.whitelist = this.settings.whitelist.filter(d => d !== domain);
this.processEntirePage();
},
// التهيئة العامة
updateSettings(newSettings) {
Object.assign(this.settings, newSettings);
this.processEntirePage();
}
};
// التهيئة التلقائية
document.addEventListener('DOMContentLoaded', () => EnhancedLinkSecurity.init());
// لجعل الكود متاحاً globally
window.LinkSecurity = EnhancedLinkSecurity;