تحويل - ستار آبس
بواسطة SY |
يوليو 28, 2026
|
🔒 يتم فحص الرابط والتأكد من الأمان...
🔒 رابط آمن 100%
🛡️ تم فحص الملف
💡 قد يعجبك أيضاً في متجرنا:
<!-- عنصر إعدادات الوقت لقالب بلوجر (يمكنك تغيير data-time="12" لأي رقم تريد) -->
<div id="redirect-config" data-time="12" style="display:none;"></div>
<style>
:root {
--primary-color: #10b981;
--primary-dark: #059669;
--accent-blue: #2563eb;
--bg-light: #f8fafc;
--text-dark: #1e293b;
--text-muted: #64748b;
--border-color: #e2e8f0;
}
/* حركة دخول ناعمة للبطاقة (Fade + Scale) */
.redirect-card-animated {
background: #ffffff;
max-width: 480px;
margin: 20px auto;
padding: 30px 25px;
border-radius: 20px;
border: 1px solid var(--border-color);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
text-align: center;
font-family: inherit;
animation: fadeScale 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
opacity: 0;
transform: scale(0.92);
}
@keyframes fadeScale {
to {
opacity: 1;
transform: scale(1);
}
}
/* شعار متجر StarApps الثابت */
.store-brand-logo {
width: 65px;
height: 65px;
margin: 0 auto 15px auto;
border-radius: 16px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
object-fit: cover;
border: 1px solid var(--border-color);
}
/* ظهور تدريجي وسلس لصورة التطبيق */
#app-image {
width: 90px;
height: 90px;
border-radius: 18px;
display: block;
margin: 0 auto 12px;
box-shadow: 0 6px 16px rgba(0,0,0,0.12);
object-fit: cover;
border: 1px solid #e2e8f0;
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
#app-image.loaded {
opacity: 1;
}
/* العداد الدائري */
.timer-circle-wrap {
position: relative;
width: 100px;
height: 100px;
margin: 0 auto 15px auto;
display: flex;
justify-content: center;
align-items: center;
}
.timer-val {
position: absolute;
font-size: 28px;
font-weight: 800;
color: var(--primary-dark);
}
.circular-bg {
fill: none;
stroke: #e2e8f0;
stroke-width: 7;
}
.circular-progress {
fill: none;
stroke: var(--primary-color);
stroke-width: 7;
stroke-linecap: round;
stroke-dasharray: 264;
stroke-dashoffset: 0;
transition: stroke-dashoffset 0.1s linear; /* انزلاق سلس ودقيق مع وقت التحديث */
transform: rotate(-90deg);
transform-origin: 50% 50%;
}
/* شريط التقدم */
.progress-bar-bg {
background-color: #f1f5f9;
border-radius: 10px;
height: 8px;
width: 100%;
overflow: hidden;
margin-bottom: 20px;
border: 1px solid var(--border-color);
}
.progress-bar-fill {
height: 100%;
background: linear-gradient(90deg, var(--primary-color), #34d399);
width: 0%;
transition: width 0.1s linear; /* انزلاق سلس ودقيق */
}
/* شارات الأمان */
.security-badges {
display: flex;
justify-content: center;
gap: 10px;
margin-bottom: 20px;
flex-wrap: wrap;
}
.badge-item {
background: #f0fdf4;
color: #166534;
border: 1px solid #bbf7d0;
padding: 5px 12px;
border-radius: 30px;
font-size: 12px;
font-weight: 600;
}
/* زر التحميل التلقائي/اليدوي */
.btn-download-now {
display: none;
background: var(--primary-color);
color: #ffffff !important;
padding: 13px 28px;
border-radius: 10px;
text-decoration: none;
font-weight: bold;
font-size: 15px;
box-shadow: 0 4px 12px rgba(16, 185, 129, 0.25);
transition: all 0.2s ease;
}
.btn-download-now:hover {
background: var(--primary-dark);
}
/* قسم المقترحات */
.suggestions-box {
margin-top: 25px;
padding-top: 18px;
border-top: 1px dashed var(--border-color);
text-align: right;
}
.suggestion-link {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 10px;
background: #f8fafc;
border: 1px solid #f1f5f9;
border-radius: 10px;
text-decoration: none;
color: var(--text-dark);
margin-top: 8px;
font-size: 13px;
font-weight: 600;
transition: background 0.2s ease;
}
.suggestion-link:hover {
background: #f1f5f9;
}
.suggestion-img {
width: 42px;
height: 42px;
border-radius: 10px;
object-fit: cover;
border: 1px solid var(--border-color);
}
</style>
<div id="redirect-box" style="padding: 20px 10px;">
<div class="redirect-card-animated">
<!-- شعار متجر StarApps -->
<div>
<img alt="StarApps Logo" class="store-brand-logo" decoding="async" loading="eager" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1467nwlMWTToUzxe_pJ6xoGSCbkOV1uyvOvMGaLKIbgR5gJJ_tbSCU8Bu0AHtnXkH48WlE4j1YTktOaFMDlA1cQcKN3c_ejGyMmyb-DX-VMAmyv2_KfRqmNWbCNdbzgFBHPyFE1Bj7V8wY2KhKlOBC0k8VD3DJfO8DG7rUKDzTy5w2k7OSDvaihoBQMmL/s320/ChatGPT%20Image%2028%20%D9%8A%D9%88%D9%84%D9%8A%D9%88%202026%D8%8C%2003_03_18%20%D9%85.png">
</div>
<!-- معلومات التطبيق -->
<div id="app-info" style="display: none; margin-bottom: 20px;">
<img alt="تطبيق" decoding="async" id="app-image" loading="lazy" src=""
/>
<h2
id="app-title"
style="font-size: 19px; color: var(--text-dark); margin: 0; line-height: 1.4; font-weight: 700;"
></h2>
</div>
<!-- رسالة الحالة -->
<h3 id="status-title" style="color: var(--text-dark); font-size: 16px; margin-bottom: 12px; font-weight: 600; line-height: 1.5; min-height: 48px; display: flex; align-items: center; justify-content: center;">
🔒 يتم فحص الرابط والتأكد من الأمان...
</h3>
<!-- العداد الدائري -->
<div class="timer-circle-wrap" id="timer-wrap">
<svg width="100" height="100">
<circle class="circular-bg" cx="50" cy="50" r="42"></circle>
<circle class="circular-progress" id="circle-progress" cx="50" cy="50" r="42"></circle>
</svg>
<div class="timer-val" id="countdown-number">12</div>
</div>
<!-- شريط التقدم -->
<div class="progress-bar-bg">
<div class="progress-bar-fill" id="progress-fill"></div>
</div>
<!-- شارات الأمان -->
<div class="security-badges">
<span class="badge-item">🔒 رابط آمن 100%</span>
<span class="badge-item">🛡️ تم فحص الملف</span>
</div>
<!-- زر التحميل -->
<div style="margin-top: 10px;">
<a class="btn-download-now" href="#" id="download-now-btn">
📥 اضغط هنا للتحميل المباشر
</a>
</div>
<!-- قسم المقترحات -->
<div class="suggestions-box">
<div style="font-size: 13px; color: var(--text-muted); font-weight: 700; margin-bottom: 8px;">💡 قد يعجبك أيضاً في متجرنا:</div>
<div id="rss-suggestions-container">
<!-- تحميل المقالات تلقائياً -->
</div>
</div>
</div>
</div>
<script>
// تخزين عناصر الـ DOM مرة واحدة لتحسين الأداء
const els = {
config: document.getElementById("redirect-config"),
appInfo: document.getElementById("app-info"),
appTitle: document.getElementById("app-title"),
appImg: document.getElementById("app-image"),
statusTitle: document.getElementById("status-title"),
timerWrap: document.getElementById("timer-wrap"),
countdown: document.getElementById("countdown-number"),
progressFill: document.getElementById("progress-fill"),
circleProgress: document.getElementById("circle-progress"),
downloadBtn: document.getElementById("download-now-btn"),
rssContainer: document.getElementById("rss-suggestions-container")
};
// قراءة وقت الانتظار من القالب
const totalTime = parseInt(els.config?.dataset.time) || 12;
const totalTimeMs = totalTime * 1000;
const urlParams = new URLSearchParams(window.location.search);
const targetUrl = urlParams.get("url");
// دعم جلب البيانات عبر URL مكملاً لـ SessionStorage
const appTitle = sessionStorage.getItem("redirectTitle") || urlParams.get("title");
const appImage = sessionStorage.getItem("redirectImage") || urlParams.get("img");
if (appTitle) {
els.appTitle.textContent = appTitle;
els.appInfo.style.display = "block";
}
// صورة افتراضية
const fallbackLogo = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1467nwlMWTToUzxe_pJ6xoGSCbkOV1uyvOvMGaLKIbgR5gJJ_tbSCU8Bu0AHtnXkH48WlE4j1YTktOaFMDlA1cQcKN3c_ejGyMmyb-DX-VMAmyv2_KfRqmNWbCNdbzgFBHPyFE1Bj7V8wY2KhKlOBC0k8VD3DJfO8DG7rUKDzTy5w2k7OSDvaihoBQMmL/s320/ChatGPT%20Image%2028%20%D9%8A%D9%88%D9%84%D9%8A%D9%88%202026%D8%8C%2003_03_18%20%D9%85.png";
els.appImg.onload = function() {
this.classList.add("loaded");
};
els.appImg.onerror = function() {
this.src = fallbackLogo;
this.classList.add("loaded");
};
els.appImg.src = appImage || fallbackLogo;
const circleLength = 2 * Math.PI * 42;
// التحقق من صحة الرابط والأمان
const allowedDomains = [
"mbdownload.com",
"s1.mbdownload.com",
"mediafire.com",
"drive.google.com",
"github.com",
"t.me"
];
function isValidUrl(urlStr) {
if (!urlStr) return false;
try {
const u = new URL(urlStr);
if (u.protocol !== "http:" && u.protocol !== "https:") return false;
// لتفعيل تقييد النطاقات المسموح بها، قم بإلغاء التعليق عن السطور التالية:
// const isAllowed = allowedDomains.some(domain => u.hostname === domain || u.hostname.endsWith("." + domain));
// return isAllowed;
return true;
} catch (e) {
return false;
}
}
const isLinkValid = isValidUrl(targetUrl);
if (isLinkValid) {
els.downloadBtn.href = targetUrl;
} else {
els.downloadBtn.removeAttribute("href");
els.downloadBtn.style.pointerEvents = "none";
els.downloadBtn.style.opacity = "0.5";
}
// إظهار زر التحميل بناءً على نصف الوقت
setTimeout(() => {
if (isLinkValid) {
els.downloadBtn.style.display = "inline-block";
}
}, totalTime * 500);
// حساب الوقت الفعلي بالـ Milliseconds للانزلاق السلس
const startTime = Date.now();
const endTime = startTime + totalTimeMs;
let timerInterval = null;
function updateTimerUI() {
const now = Date.now();
const remainingMs = Math.max(0, endTime - now);
const remainingSec = Math.ceil(remainingMs / 1000);
// تحديث الرقم الظاهر للمستخدم (بالثواني)
els.countdown.textContent = remainingSec;
// الملاحظة 2: حساب النسبة بالوقت الحقيقي بالمللي ثانية لانزلاق أنيق وسلس
const elapsedMs = now - startTime;
const percentage = Math.min(100, Math.max(0, (elapsedMs / totalTimeMs) * 100));
els.progressFill.style.width = percentage + "%";
const offset = circleLength - (percentage / 100) * circleLength;
els.circleProgress.style.strokeDashoffset = offset;
// رسائل الفحص التفاعلية
if (percentage >= 25 && percentage < 55) {
els.statusTitle.innerHTML = "⚡ جاري إنشاء رابط التحميل المباشر...";
} else if (percentage >= 55 && percentage < 85) {
els.statusTitle.innerHTML = "🛡️ جاري فحص الملف والتأكد من خلوه من الفيروسات...";
} else if (percentage >= 85) {
els.statusTitle.innerHTML = "✨ اكتمل الفحص، جاري تجهيز الملف للتنزيل...";
}
if (remainingMs <= 0) {
clearInterval(timerInterval);
if (isLinkValid) {
els.timerWrap.style.display = "none";
els.statusTitle.innerHTML = "✅ تم تجهيز الرابط بنجاح!<br><small style='font-size: 13px; color: #10b981; margin-top: 4px; display: block;'>سيتم التحميل الآن تلقائياً...</small>";
els.downloadBtn.style.display = "inline-block";
sessionStorage.removeItem("redirectTitle");
sessionStorage.removeItem("redirectImage");
setTimeout(function () {
window.location.replace(targetUrl);
}, 500);
} else {
els.statusTitle.textContent = "عذراً، الرابط غير صالح أو غير مسموح به!";
els.statusTitle.style.color = "#ef4444";
els.timerWrap.style.display = "none";
}
}
}
// الملاحظة 1: تحديث كل 100ms لضمان سلاسة حركة شريط التقدم والدائرة دون استهلاك الموارد
updateTimerUI();
timerInterval = setInterval(updateTimerUI, 100);
// طلب خلاصة الـ RSS مع Cache Busting دقيقي
const cacheBuster = Math.floor(Date.now() / 60000); // يتحدث كل دقيقة
fetch("/feeds/posts/default?alt=json&max-results=10&_=" + cacheBuster)
.then(response => response.json())
.then(data => {
const entries = data.feed.entry || [];
if (entries.length === 0) {
els.rssContainer.innerHTML = "<div style='text-align:center;color:#888;font-size:12px;padding:5px;'>لا توجد اقتراحات حالياً.</div>";
return;
}
let html = "";
let count = 0;
for (let i = 0; i < entries.length; i++) {
if (count >= 3) break;
const entry = entries[i];
const title = entry.title.$t;
// الملاحظة المباشرة: استخدام find أسرع وأسهل لاستخراج رابط المقال
const link = entry.link.find(l => l.rel === "alternate")?.href || "";
// استبعاد المقال الحالي بدقة عبر العنوان
if (appTitle && title.trim().toLowerCase() === appTitle.trim().toLowerCase()) continue;
let img = fallbackLogo;
if (entry.media$thumbnail) {
img = entry.media$thumbnail.url.replace('/s72-c/', '/s150-c/');
} else if (entry.content && entry.content.$t.includes('<img')) {
const match = entry.content.$t.match(/src=["']([^"']+)["']/);
if (match) img = match[1];
}
html += `
<a href="${link}" class="suggestion-link" target="_self">
<img src="${img}" class="suggestion-img" alt="${title}" loading="lazy" decoding="async">
<span style="display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;">${title}</span>
</a>
`;
count++;
}
els.rssContainer.innerHTML = html || "<div style='text-align:center;color:#888;font-size:12px;padding:5px;'>لا توجد اقتراحات حالياً.</div>";
})
.catch(() => {
els.rssContainer.innerHTML = "<div style='text-align:center;color:#888;font-size:12px;padding:5px;'>لا توجد اقتراحات حالياً.</div>";
});
</script>