Update index.html
Browse files- index.html +44 -4
index.html
CHANGED
|
@@ -333,8 +333,8 @@
|
|
| 333 |
<div class="modal-overlay" id="upgradeModal">
|
| 334 |
<div class="modal-box">
|
| 335 |
<div class="upgrade-icon">👑</div>
|
| 336 |
-
<h3 style="font-weight: 800; color: #333;">دانلود مخصوص اعضای ویژه</h3>
|
| 337 |
-
<p style="margin-bottom: 25px; line-height: 1.6;">برای دانلود آهنگهای ساخته شده با کیفیت اصلی و بدون محدودیت، لطفا حساب کاربری خود را به نسخه نامحدود ارتقا دهید.</p>
|
| 338 |
<div class="modal-actions" style="flex-direction: column;">
|
| 339 |
<button class="btn-modal btn-upgrade" id="btnGoPremium">⭐️ ارتقا به نسخه کامل</button>
|
| 340 |
<button class="btn-modal btn-cancel" onclick="closeUpgradeModal()" style="width: 100%;">فعلاً نه</button>
|
|
@@ -367,6 +367,8 @@
|
|
| 367 |
const deleteModal = document.getElementById('deleteConfirmModal');
|
| 368 |
const upgradeModal = document.getElementById('upgradeModal');
|
| 369 |
const statusBadge = document.getElementById('statusBadge');
|
|
|
|
|
|
|
| 370 |
|
| 371 |
const getVal = (id) => document.getElementById(id).value;
|
| 372 |
const getNum = (id) => Number(document.getElementById(id).value);
|
|
@@ -381,6 +383,17 @@
|
|
| 381 |
});
|
| 382 |
}
|
| 383 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 384 |
// --- مدیریت اشتراک و ارتباط با آیفریم مادر ---
|
| 385 |
function isUserPaid(userObject) {
|
| 386 |
return userObject && userObject.isLogin && userObject.accessible_pages &&
|
|
@@ -396,7 +409,6 @@
|
|
| 396 |
} else {
|
| 397 |
statusBadge.textContent = 'نسخه رایگان';
|
| 398 |
statusBadge.className = 'status-badge visible badge-free';
|
| 399 |
-
// در حالت رایگان آیکون قفل به دکمه دانلود (اختیاری) اضافه نمیکنیم تا کاربر کلیک کند و مودال ببیند
|
| 400 |
}
|
| 401 |
}
|
| 402 |
|
|
@@ -421,6 +433,9 @@
|
|
| 421 |
if (e) e.preventDefault();
|
| 422 |
|
| 423 |
if (userSubscriptionStatus === 'free') {
|
|
|
|
|
|
|
|
|
|
| 424 |
upgradeModal.classList.add('open');
|
| 425 |
} else {
|
| 426 |
// ارسال درخواست دانلود به آیفریم مادر
|
|
@@ -582,7 +597,32 @@
|
|
| 582 |
|
| 583 |
try {
|
| 584 |
loaderText.innerText = "آلفا در حال نوشتن شعر و ملودی...";
|
| 585 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 586 |
const data = await response.json();
|
| 587 |
if (data.error) throw new Error(data.error);
|
| 588 |
|
|
|
|
| 333 |
<div class="modal-overlay" id="upgradeModal">
|
| 334 |
<div class="modal-box">
|
| 335 |
<div class="upgrade-icon">👑</div>
|
| 336 |
+
<h3 style="font-weight: 800; color: #333;" id="upgradeModalTitle">دانلود مخصوص اعضای ویژه</h3>
|
| 337 |
+
<p style="margin-bottom: 25px; line-height: 1.6;" id="upgradeModalText">برای دانلود آهنگهای ساخته شده با کیفیت اصلی و بدون محدودیت، لطفا حساب کاربری خود را به نسخه نامحدود ارتقا دهید.</p>
|
| 338 |
<div class="modal-actions" style="flex-direction: column;">
|
| 339 |
<button class="btn-modal btn-upgrade" id="btnGoPremium">⭐️ ارتقا به نسخه کامل</button>
|
| 340 |
<button class="btn-modal btn-cancel" onclick="closeUpgradeModal()" style="width: 100%;">فعلاً نه</button>
|
|
|
|
| 367 |
const deleteModal = document.getElementById('deleteConfirmModal');
|
| 368 |
const upgradeModal = document.getElementById('upgradeModal');
|
| 369 |
const statusBadge = document.getElementById('statusBadge');
|
| 370 |
+
const upgradeModalTitle = document.getElementById('upgradeModalTitle');
|
| 371 |
+
const upgradeModalText = document.getElementById('upgradeModalText');
|
| 372 |
|
| 373 |
const getVal = (id) => document.getElementById(id).value;
|
| 374 |
const getNum = (id) => Number(document.getElementById(id).value);
|
|
|
|
| 383 |
});
|
| 384 |
}
|
| 385 |
|
| 386 |
+
// --- مدیریت اثر انگشت (Fingerprint) ---
|
| 387 |
+
function getFingerprint() {
|
| 388 |
+
let fp = localStorage.getItem('user_fingerprint');
|
| 389 |
+
if (!fp) {
|
| 390 |
+
// تولید یک شناسه تصادفی و ذخیره آن
|
| 391 |
+
fp = 'user_' + Math.random().toString(36).substr(2, 9) + Date.now().toString(36);
|
| 392 |
+
localStorage.setItem('user_fingerprint', fp);
|
| 393 |
+
}
|
| 394 |
+
return fp;
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
// --- مدیریت اشتراک و ارتباط با آیفریم مادر ---
|
| 398 |
function isUserPaid(userObject) {
|
| 399 |
return userObject && userObject.isLogin && userObject.accessible_pages &&
|
|
|
|
| 409 |
} else {
|
| 410 |
statusBadge.textContent = 'نسخه رایگان';
|
| 411 |
statusBadge.className = 'status-badge visible badge-free';
|
|
|
|
| 412 |
}
|
| 413 |
}
|
| 414 |
|
|
|
|
| 433 |
if (e) e.preventDefault();
|
| 434 |
|
| 435 |
if (userSubscriptionStatus === 'free') {
|
| 436 |
+
// تنظیم متن مودال برای دانلود
|
| 437 |
+
upgradeModalTitle.innerText = "دانلود مخصوص اعضای ویژه";
|
| 438 |
+
upgradeModalText.innerText = "برای دانلود آهنگهای ساخته شده با کیفیت اصلی و بدون محدودیت، لطفا حساب کاربری خود را به نسخه نامحدود ارتقا دهید.";
|
| 439 |
upgradeModal.classList.add('open');
|
| 440 |
} else {
|
| 441 |
// ارسال درخواست دانلود به آیفریم مادر
|
|
|
|
| 597 |
|
| 598 |
try {
|
| 599 |
loaderText.innerText = "آلفا در حال نوشتن شعر و ملودی...";
|
| 600 |
+
|
| 601 |
+
// ارسال درخواست به سرور با فینگرپرینت و وضعیت اشتراک
|
| 602 |
+
const response = await fetch('/api/refine', {
|
| 603 |
+
method: 'POST',
|
| 604 |
+
headers: {'Content-Type': 'application/json'},
|
| 605 |
+
body: JSON.stringify({
|
| 606 |
+
idea: ideaInput.value,
|
| 607 |
+
fingerprint: getFingerprint(),
|
| 608 |
+
is_premium: userSubscriptionStatus === 'paid'
|
| 609 |
+
})
|
| 610 |
+
});
|
| 611 |
+
|
| 612 |
+
// بررسی خطای محدودیت روزانه (429)
|
| 613 |
+
if (response.status === 429) {
|
| 614 |
+
loader.style.display = 'none';
|
| 615 |
+
step1.style.display = 'block';
|
| 616 |
+
historySection.style.display = 'block';
|
| 617 |
+
processBtn.disabled = false;
|
| 618 |
+
|
| 619 |
+
// نمایش مودال ارتقا با متن مناسب
|
| 620 |
+
upgradeModalTitle.innerText = "محدودیت ساخت روزانه";
|
| 621 |
+
upgradeModalText.innerText = "شما به سقف ۵ آهنگ رایگان در روز رسیدهاید. برای ساخت آهنگهای بیشتر و نامحدود، لطفا حساب خود را ارتقا دهید.";
|
| 622 |
+
upgradeModal.classList.add('open');
|
| 623 |
+
return;
|
| 624 |
+
}
|
| 625 |
+
|
| 626 |
const data = await response.json();
|
| 627 |
if (data.error) throw new Error(data.error);
|
| 628 |
|