# 🚀 Self Builder - ربات مدیریت پیشرفته تلگرام

یک سیستم کامل و Production-Ready برای مدیریت و فروش سرویس‌های تلگرام با قابلیت اتصال اکانت شخصی و مدیریت تمام امکانات از طریق ربات و پنل تحت وب.

## ✨ ویژگی‌های اصلی
- **اتصال اکانت تلگرام**: کاربران با ارسال شماره، اکانت خود را به سرویس متصل می‌کنند.
- **سیستم Diamond**: واحد مصرف با قیمت قابل تنظیم و کسر خودکار.
- **Self Client اختصاصی**: هر کاربر یک Worker مجزا دارد.
- **حالت متن**: ۷ نوع Formatting قابل فعال‌سازی (Bold, Italic, Quote, Spoiler, etc.)
- **ساعت**: نمایش ساعت در Name/Bio با Font و Format دلخواه.
- **نگهبان چت**: ذخیره پیام‌های حذف‌شده، ویرایش‌شده و View Once.
- **قفل‌ها**: ۷ نوع قفل برای PV (Username, Link, Reply, Photo, etc.)
- **اکشن**: ۷ دستور برای تبدیل محتوا (ویس, عکس, ویدیو گرد, etc.)
- **دوست و دشمن**: سیستم پاسخ‌های تصادفی با جواب‌های ثبت‌شده.
- **اسپم**: ارسال انبوه پیام با سرعت‌های مختلف.
- **عضویت اجباری**: کنترل دسترسی بر اساس عضویت در کانال‌ها.
- **منشی**: پاسخ خودکار در صورت عدم پاسخگویی.
- **سکوت**: حذف خودکار پیام‌های افراد مشخص.
- **پنل مدیریت کامل**: مدیریت کاربران، سرویس‌ها، الماس‌ها، تراکنش‌ها و تنظیمات.
- **سیستم امنیتی کامل**: رمزنگاری، CSRF، XSS، Rate Limit و لاگ‌گیری.

## 📋 پیش‌نیازهای سرور
| مورد | حداقل نیاز |
|------|-----------|
| **PHP** | نسخه 8.2 یا بالاتر |
| **MySQL** | نسخه 5.7 یا بالاتر / MariaDB 10.3+ |
| **cPanel** | با دسترسی به Cron Jobs و File Manager |
| **Extensions** | PDO, PDO_MySQL, JSON, cURL, GD, MBString, OpenSSL |
| **Composer** | برای مدیریت وابستگی‌ها |

## 🛠️ نصب روی cPanel
### مرحله ۱: دانلود و آپلود فایل‌ها
1. فایل `self-builder.zip` را دانلود کنید.
2. وارد **File Manager** cPanel شوید.
3. فایل ZIP را در پوشه `public_html` (یا زیرپوشه دلخواه) آپلود کنید.
4. فایل را از حالت فشرده خارج کنید (Extract).

### مرحله ۲: اجرای Installer خودکار
1. مرورگر خود را باز کنید.
2. به آدرس زیر بروید: `https://your-domain.com/install/`
3. Installer به‌صورت خودکار: پیش‌نیازها را بررسی می‌کند، اطلاعات دیتابیس را دریافت می‌کند، جداول را ایجاد می‌کند، فایل `.env` را می‌سازد، ادمین اولیه را ایجاد می‌کند، Webhook را تنظیم می‌کند و Cron Job را تنظیم می‌کند (در صورت دسترسی).

### مرحله ۳: تنظیم دستی Cron (در صورت نیاز)
اگر Installer نتوانست Cron را خودکار تنظیم کند، در cPanel به بخش **Cron Jobs** بروید، زمان را روی `Every Minute` تنظیم کنید و دستور زیر را در Command وارد کنید: `/usr/bin/php /home/username/public_html/self-builder/cron/run.php`

### مرحله ۴: تنظیم دستی Webhook (در صورت نیاز)
اگر Installer نتوانست Webhook را تنظیم کند، در مرورگر باز کنید: `https://api.telegram.org/bot{TOKEN}/setWebhook?url=https://your-domain.com/public/bot.php`

### مرحله ۵: ورود به پنل مدیریت
- آدرس: `https://your-domain.com/public/admin/`
- نام کاربری: `admin`
- رمز عبور: رمزی که در نصب تنظیم کردید.

## ⚙️ تنظیمات اولیه
۱. تنظیم قیمت Diamond: وارد پنل مدیریت شده و به بخش **Settings > Diamond** بروید و قیمت هر Diamond را تنظیم کنید.
۲. تنظیم نرخ مصرف: در بخش **Settings > Features**، نرخ مصرف Diamond (پیش‌فرض: ۲ عدد در ساعت) را تغییر دهید.
۳. فعال/غیرفعال کردن قابلیت‌ها: تمام قابلیت‌ها در بخش **Settings > Features** قابل فعال/غیرفعال‌سازی هستند.

## 🔧 ساختار دیتابیس
جداول اصلی: `users`, `admins`, `telegram_accounts`, `services`, `sessions`, `diamonds`, `diamond_transactions`, `payments`, `features`, `feature_settings`, `content`, `auto_replies`, `friends`, `enemies`, `friend_replies`, `enemy_replies`, `reactions`, `forced_memberships`, `guardian_logs`, `silence_list`, `worker_logs`, `system_logs`, `settings`

## 🔒 امنیت
- تمام رمزهای عبور با bcrypt هش می‌شوند.
- جلسات کاربران با AES-256 رمزنگاری می‌شوند.
- تمام فرم‌ها دارای توکن CSRF هستند.
- تمام ورودی‌ها با htmlspecialchars خالص‌سازی می‌شوند.
- تمام کوئری‌ها با PDO Prepared Statements اجرا می‌شوند.
- هر کاربر محدودیت درخواست دارد.
- تمام عملیات ادمین دارای سطح دسترسی است.
- `.env` و `config.php` از دسترسی مستقیم محافظت می‌شوند.
- Directory Listing غیرفعال شده است.

## 🧪 Troubleshooting
۱. خطای Connection Refused در Worker: بررسی کنید که Cron Job به‌درستی تنظیم شده باشد.
۲. پیام‌های دریافتی پردازش نمی‌شوند: وضعیت Webhook را بررسی کنید: `https://api.telegram.org/bot{TOKEN}/getWebhookInfo`
۳. خطای ۵۰۰ در پنل مدیریت: لاگ‌های خطا را در `storage/logs/` بررسی کنید.
۴. Worker متوقف می‌شود: از Cron برای اجرای مجدد Worker استفاده کنید.
۵. خطای Permission Denied: مجوز پوشه‌های `storage/` و `cache/` را به 755 تغییر دهید.

## 📞 پشتیبانی
- **ایمیل:** support@your-domain.com
- **تلگرام:** @YourSupportBot
- **مستندات:** https://your-domain.com/docs

## 📝 مجوز
این پروژه تحت مجوز **MIT** منتشر شده است.

## ⭐ تشکر
از انتخاب Self Builder برای مدیریت سرویس‌های تلگرام متشکریم. لطفاً در صورت بروز مشکل، با تیم پشتیبانی تماس بگیرید.

**نسخه:** 1.0.0 | **تاریخ انتشار:** ۱۴۰۳/۰۶/۱۲ | **توسعه‌دهنده:** تیم Self Builder