MiLAD Bot Panel — ربات و پنل مدیریت تلگرام
==========================================

این نسخه به‌طور کامل بازنویسی و تکمیل شده و شامل امکانات زیر است:

ربات تلگرام
------------
- تشخیص واقعی ادمین بر اساس آیدی عددی (ADMIN_IDS در config.php) و منوی جدا برای ادمین/کاربر عادی
- منوی کاربر: موزیک، جوک، سخن بزرگان، چت با ادمین، ارسال پست به کانال، و دانلود از شبکه‌های اجتماعی
- منوی ادمین: آمار ربات، کاربران، ارسال به کانال، افزودن موزیک/جوک/سخن، لینک پنل وب
- چت دو طرفه با ادمین: کاربر پیام می‌فرستد، مستقیم برای همه‌ی ادمین‌ها فوروارد می‌شود؛
  ادمین با ریپلای‌کردن روی همان پیام در تلگرام، پاسخ را مستقیم برای همان کاربر ارسال می‌کند.
- فوروارد به کانال: ادمین دکمه «ارسال به کانال» را می‌زند و هر محتوایی (متن/عکس/ویدیو/فایل) بفرستد
  به CHANNEL_ID کپی می‌شود. کاربران عادی هم با سهمیه‌ی روزانه (قابل تنظیم در پنل) می‌توانند پست بفرستند.
- ماژول موزیک: افزودن با فایل صوتی، فوروارد از کانال دیگر، یا لینک مستقیم mp3.
  همیشه حداقل ۱۰ موزیک در دیتابیس نگه داشته می‌شود (تابع ensureMinMusic).
- ماژول جوک و سخن بزرگان با بذرپاشی خودکار حین نصب.
- مسدودسازی کاربران (کاربر مسدود دیگر پاسخی از ربات دریافت نمی‌کند).

📥 دانلود از شبکه‌های اجتماعی (جدید)
--------------------------------------
از منوی اصلی ربات، دکمه‌ی «📥 دانلود از یوتیوب/اینستا/اسپاتیفای/ساندکلاد/پینترست» یک زیرمنو باز می‌کند
که کاربر سرویس موردنظر را انتخاب کرده و لینک را ارسال می‌کند. ربات لینک را در صف دانلود (`download_jobs`)
ثبت می‌کند و بلافاصله (بدون قفل‌شدن webhook) دانلود را در پس‌زمینه انجام داده و فایل نهایی
(ویدیو/صدا/عکس/فایل، بسته به نوع خروجی) را مستقیماً برای همان کاربر در تلگرام ارسال می‌کند.

نیازمندی روی سرور:
- `yt-dlp` برای یوتیوب / ساندکلاد / پینترست / اینستاگرام
- `spotdl` برای اسپاتیفای
- دسترسی اجرای `exec`/`shell_exec` در PHP (بسیاری از هاست‌های اشتراکی این را غیرفعال می‌کنند؛
  در این صورت با باز کردن `diagnose.php` در مرورگر می‌توانید وضعیت را بررسی کنید)

`worker.php` به‌عنوان پشتیبان برای هاست‌هایی که اجرای پس‌زمینه از PHP-FPM را محدود می‌کنند در نظر گرفته شده؛
با Cron زیر (هر ۱ دقیقه) اجرا کنید:

    php /PATH/TO/bot/worker.php --secret=WORKER_SECRET

مقدار WORKER_SECRET را در config.php به یک مقدار تصادفی و امن تغییر دهید.
تمام درخواست‌های دانلود (موفق/ناموفق) در پنل وب، بخش «📥 دانلودها» قابل مشاهده و مدیریت هستند
(تلاش مجدد برای job‌های ناموفق، حذف، مشاهده‌ی خطای دقیق).

⚠️ توجه: دانلود محتوای دارای کپی‌رایت ممکن است با قوانین استفاده‌ی هر پلتفرم در تضاد باشد؛
مسئولیت استفاده از این قابلیت با مدیر ربات و کاربران آن است.

پنل مدیریت وب (admin/) — MiLAD Bot Panel
--------------------------------------------
- طراحی حرفه‌ای و ریسپانسیو با تم تیره/طلایی، فونت فارسی Vazirmatn (Google Fonts)،
  سایدبار با منوی موبایل (☰) و صفحه‌ی ورود بازطراحی‌شده
- داشبورد: آمار کلی (کاربران، پیام‌ها، موزیک، جوک، سخن، صف دانلود و ...)
- کاربران: لیست کامل با جستجو، مشاهده وضعیت، مسدود/رفع مسدود، لینک ورود به چت
- چت لحظه‌ای: صفحه اختصاصی هر کاربر که پیام‌های رد و بدل شده را هر ۲.۵ ثانیه به‌روزرسانی می‌کند
  و امکان ارسال پیام مستقیم از پنل به کاربر را فراهم می‌کند
- موزیک: افزودن از لینک، حذف، پخش پیش‌نمایش، تکمیل خودکار تا حداقل ۱۰ عدد
- جوک و سخن بزرگان: افزودن/حذف با تب‌بندی
- مدیریت کانال: مدیریت سهمیه‌ی روزانه‌ی هر کاربر برای ارسال به کانال + تاریخچه‌ی کامل ارسال‌ها
- دانلودها: مشاهده و مدیریت کامل صف دانلود کاربران (وضعیت، خطا، تلاش مجدد، حذف)
- امنیت: CSRF token روی همه‌ی فرم‌ها، محدودیت نشست ۶ ساعته، محدودیت تلاش ورود، فایل‌های .htaccess
  برای مسدودسازی دسترسی مستقیم به data/ (شامل پوشه‌ی downloads/) و core/

نصب
----
۱) همه فایل‌ها را روی هاست PHP (نسخه ۷٫۴ به بالا، با پسوند pdo_sqlite، mbstring و curl فعال) آپلود کنید.
۲) فایل config.php را باز کرده و مقادیر زیر را ویرایش کنید:
     BOT_TOKEN      -> توکن ربات از @BotFather
     CHANNEL_ID     -> آیدی یا یوزرنیم کانال (ربات باید ادمین کانال باشد)
     ADMIN_IDS      -> آرایه‌ای از آیدی عددی ادمین‌ها (با @userinfobot پیدا کنید)
     ADMIN_PASSWORD -> رمز عبور ورود به پنل وب
     WORKER_SECRET  -> یک مقدار تصادفی و امن برای اجرای worker.php از طریق Cron
۳) آدرس install.php را در مرورگر باز کنید تا دیتابیس ساخته و محتوای اولیه بذرپاشی شود.
   (توجه: برای تکمیل خودکار موزیک باید حداقل یکی از ادمین‌ها قبلا با /start ربات را استارت زده باشد؛
   در غیر این‌صورت بعدا از دکمه «تکمیل خودکار» در admin/music.php استفاده کنید)
۴) وبهوک ربات را ست کنید (یک‌بار در مرورگر باز کنید یا با curl):
     https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://YOURDOMAIN/webhook.php
۵) وارد پنل وب شوید: https://YOURDOMAIN/admin/login.php
۶) (اختیاری ولی توصیه‌شده برای قابلیت دانلود) yt-dlp و spotdl را روی هاست نصب کنید و Cron مربوط به
   worker.php را طبق بخش «دانلود از شبکه‌های اجتماعی» بالا تنظیم کنید.

نکات امنیتی
------------
- حتما ADMIN_PASSWORD و WORKER_SECRET را تغییر دهید.
- بعد از نصب، دسترسی به install.php و diagnose.php را محدود یا حذف کنید.
- فایل‌های .htaccess همراه پروژه از دسترسی مستقیم به دیتابیس، فایل‌های دانلودشده‌ی موقت و فایل‌های داخلی
  جلوگیری می‌کنند (روی هاست‌های Nginx باید معادل این قوانین را در تنظیمات سرور اضافه کنید).

