# راهنمای نصب و راه‌اندازی — از صفر تا صد

این راهنما رو دقیق و به‌ترتیب دنبال کن. برای نصب تازه (دیتابیس و یوزرنیم جدید) نوشته شده.

---

## مرحله ۱: ساخت ربات در تلگرام (اگر قبلاً نساختی)

۱. به `@BotFather` پیام بده.
۲. دستور `/newbot` را بزن.
۳. یک اسم و یک یوزرنیم (باید به `bot` ختم شود) انتخاب کن.
۴. یک **توکن** می‌گیری، شبیه: `123456789:AAExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` — جایی کپی کن.
۵. به `@userinfobot` پیام بده تا **آیدی عددی خودت** را بگیری (مثلاً `987654321`) — این را هم یادداشت کن.

---

## مرحله ۲: آپلود فایل‌ها

۱. این زیپ را کامل روی هاست آپلود کن (مثلاً در `public_html/adsbot` یا یک ساب‌دامین جدا).
۲. Extract کن تا فایل‌ها و پوشه‌های `webhook.php`, `cron.php`, `config.php`, `bot/`, `modules/`, `database/`, `logs/` دیده شوند.

---

## مرحله ۳: ساخت دیتابیس و یوزر جدید (تازه)

۱. از پنل هاست، بخش **MySQL Databases** را باز کن.
۲. یک دیتابیس **جدید و خالی** بساز (اسمی که تا حالا برای هیچ پروژه دیگری استفاده نشده، مثلاً `adsbot_db`).
۳. یک یوزر MySQL جدید بساز و به همین دیتابیس دسترسی کامل (All Privileges) بده.
۴. اسم دیتابیس، یوزر و پسورد را یادداشت کن.

⚠️ **نکته مهم:** حتماً یک دیتابیس کاملاً تازه بساز، نه دیتابیسی که قبلاً برای ربات یا پروژه دیگری استفاده شده — وگرنه ممکن است با جدول‌های قدیمی تداخل پیدا کند.

### ویرایش فایل قبل از ایمپورت
فایل `database/tables.sql` را با یک ادیتور متنی (روی کامپیوتر خودت، نه داخل ربات) باز کن و خط آخر را پیدا کن:
```
VALUES (000000000, 'مدیر اصلی', 'super', 'active');
```
عدد `000000000` را با آیدی عددی خودت (از مرحله ۱) جایگزین کن، مثلاً:
```
VALUES (987654321, 'مدیر اصلی', 'super', 'active');
```
ذخیره کن.

### ایمپورت
از phpMyAdmin، وارد دیتابیس تازه‌ای که ساختی شو → تب **Import** → فایل `database/tables.sql` (همان که ویرایش کردی) را انتخاب کن → **Go**.

باید پیام موفقیت ببینی و این ۷ جدول ساخته شوند:
`admins, channels, messages, message_map, schedules, logs, settings`

(فایل‌های `migration_*.sql` داخل پوشه database را **نادیده بگیر** — آن‌ها فقط برای کسانی هستند که نسخه قدیمی‌تر را از قبل نصب کرده بودند و می‌خواهند دیتابیس موجودشان را حفظ کنند. برای نصب تازه لازم نیستند.)

---

## مرحله ۴: تنظیم config.php

فایل `config.php` را باز کن و این مقادیر را با اطلاعات خودت جایگزین کن:

```php
define('BOT_TOKEN', 'توکنی که از BotFather گرفتی');
define('BOT_USERNAME', 'یوزرنیم ربات بدون @');

define('DB_HOST', 'localhost');
define('DB_NAME', 'اسم دیتابیس تازه‌ای که ساختی');
define('DB_USER', 'یوزر تازه‌ای که ساختی');
define('DB_PASS', 'پسورد همان یوزر');

define('SUPER_ADMIN_ID', 987654321); // همان آیدی که در tables.sql هم گذاشتی
```
ذخیره کن.

---

## مرحله ۵: دسترسی نوشتن روی پوشه logs

از File Manager، روی پوشه `logs` راست‌کلیک → Permissions → مقدار را `755` بگذار (اگر خطا داد، `775` یا `777` را امتحان کن).

---

## مرحله ۶: تنظیم Webhook

آدرس دقیق فایل `webhook.php` روی هاستت را مشخص کن، مثلاً:
`https://bot.سایتت.com/webhook.php`

این لینک را (با توکن و آدرس خودت) در مرورگر باز کن:
```
https://api.telegram.org/bot توکن_ربات/setWebhook?url=https://bot.سایتت.com/webhook.php
```
باید ببینی: `{"ok":true,"result":true,"description":"Webhook was set"}`

**تست:** در تلگرام به ربات `/start` بزن — باید منوی اصلی را ببینی.

اگر جواب نداد، این را باز کن و پیام `last_error_message` را بررسی کن:
```
https://api.telegram.org/bot توکن_ربات/getWebhookInfo
```

---

## مرحله ۷: تنظیم Cron Job (برای زمان‌بندی‌ها)

بدون این مرحله، بخش «⏰ زمان‌بندی‌ها» کار نمی‌کند.

۱. از پنل هاست برو بخش **Cron Jobs**.
۲. یک Cron جدید بساز که **هر دقیقه** اجرا شود.
۳. دستور اجرا (مسیر را با مسیر واقعی فایل `cron.php` روی هاستت جایگزین کن):
```
php /home/یوزرهاستینگ/public_html/adsbot/cron.php
```
اگر پنل هاست گزینه «هر دقیقه» نداشت، هر ۵ دقیقه هم قابل قبول است (فقط با کمی تاخیر اجرا می‌شود).

---

## مرحله ۸: اضافه کردن کانال‌ها و گروه‌ها

برای هر کانال/گروه:

۱. ربات را (با یوزرنیمش) به کانال/گروه اضافه کن.
   - برای **کانال**: حتماً ادمین کن، با دسترسی «ارسال پیام»، «ویرایش پیام» و «حذف پیام».
   - برای **گروه**: عضویت ساده کافی است برای ارسال؛ برای حذف/ویرایش هم ادمینش کن.
۲. در چت خصوصی با ربات: «📢 مدیریت کانال‌ها» → «➕ افزودن کانال یا گروه جدید».
۳. یک پیام از همان کانال/گروه فوروارد کن، یا آیدی/یوزرنیمش را بفرست.
۴. نوع (کانال یا گروه) خودکار تشخیص داده می‌شود.

این کار را برای همه کانال/گروه‌ها تکرار کن.

---

## مرحله ۹: تست نهایی

۱. «📢 ارسال تبلیغ» → یک متن ساده بفرست → یک یا دو کانال تست انتخاب کن → با صدا/بی‌صدا و پیش‌نمایش لینک را رد کن یا انتخاب کن → تایید ارسال.
۲. کانال را چک کن که پیام رسیده.
۳. «🗑 حذف تبلیغ» → همان تبلیغ را انتخاب و حذف کن → ببین از کانال پاک شد.
۴. یک زمان‌بندی تستی بساز («⏰ زمان‌بندی‌ها» → «➕ زمان‌بندی ارسال») برای ۲-۳ دقیقه بعد، و ببین سر وقت خودش ارسال می‌شود (یعنی Cron درست کار می‌کند).

اگر این‌ها کار کرد، بقیه بخش‌ها (ویرایش، آمار، چند ادمین، Forward/Copy) هم روی همین زیرساخت کار می‌کنند.

---

## خلاصه دستورهای منو

| بخش | کاربرد |
|---|---|
| 📢 ارسال تبلیغ | ارسال فوری به کانال/گروه‌های انتخابی |
| 🗑 حذف تبلیغ | حذف فوری یک تبلیغ از همه مقصدها |
| ✏️ ویرایش تبلیغ | ویرایش متن/کپشن یا دکمه‌های یک تبلیغ ارسال‌شده |
| ⏰ زمان‌بندی‌ها | زمان‌بندی ارسال (+ حذف خودکار اختیاری) یا زمان‌بندی حذف تنها |
| 🔎 جستجوی تبلیغ | جستجو در تبلیغات قبلی بر اساس متن |
| 📊 آمار و گزارش | آمار روزانه/هفتگی/ماهانه/ساعتی |
| 📢 مدیریت کانال‌ها | افزودن/حذف/فعال‌سازی/غیرفعال‌سازی کانال و گروه |
| 👤 مدیریت ادمین‌ها | افزودن ادمین با سطح دسترسی (فقط مدیر کل) |

---

## اگر جایی گیر کردی

دقیقاً بگو تو کدوم مرحله بودی و چه پیامی دیدی (اسکرین‌شات هم بفرست) تا سریع بررسی کنم.
