# 🎮 Game Top-up Bot — بوت شحن الألعاب
### Apache + MySQL Edition

نظام أتمتة متكامل لشحن الألعاب عبر **Razer Gold** مرتبط بـ **WooCommerce**.

---

## 🏗️ معمارية النظام

```
[ العميل يشتري من الموقع ]
           ↓
    [ WooCommerce ]
           ↓  Webhook HMAC-SHA256
    [ Apache → mod_wsgi → Flask API ]
           ↓
    [ Order Service → MySQL ]
           ↓
    [ Queue (Thread-safe) ]
           ↓
    [ Worker Thread ]
           ↓
    [ Selenium → Razer Gold ]
           ↓
    [ Telegram Bot → إشعار النتيجة ]
```

---

## 📋 المتطلبات

- Ubuntu 20.04 / 22.04
- Python 3.10+
- Apache2 + mod_wsgi
- MySQL 8+
- Google Chrome
- حساب Razer Gold برصيد
- بوت Telegram

---

## 🚀 التثبيت السريع

```bash
# 1. نزّل المشروع
git clone <repo> /var/www/game-topup-bot
cd /var/www/game-topup-bot

# 2. شغّل المثبّت التلقائي
bash install.sh

# 3. عدّل .env
nano .env

# 4. اختبر
source venv/bin/activate && python test_system.py

# 5. شغّل Apache
sudo systemctl restart apache2
```

---

## ⚙️ إعداد MySQL

```sql
-- شغّل هذا في MySQL
CREATE DATABASE topup_bot CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'topupuser'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON topup_bot.* TO 'topupuser'@'localhost';
FLUSH PRIVILEGES;
```

ثم في `.env`:
```env
DB_HOST=localhost
DB_PORT=3306
DB_NAME=topup_bot
DB_USER=topupuser
DB_PASSWORD=strong_password
```

---

## ⚙️ إعداد WooCommerce Webhook

| الحقل | القيمة |
|-------|--------|
| الموضوع | Order updated |
| رابط الإرسال | `https://your-domain.com/api/webhook/woocommerce` |
| السر | نفس `WC_WEBHOOK_SECRET` في `.env` |

---

## ⚙️ إعداد حقول WooCommerce

أضف محتوى `woocommerce-functions.php` في ملف `functions.php` بقالبك.
يُضيف حقلَي **Player ID** و **Zone ID** في صفحة المنتج.

---

## 🤖 إنشاء بوت Telegram

1. ابحث عن **@BotFather** في Telegram
2. أرسل `/newbot`
3. احفظ التوكن في `.env` تحت `TELEGRAM_BOT_TOKEN`
4. للحصول على Chat ID: ابحث عن **@userinfobot** وأرسل `/start`

---

## 🤖 أوامر بوت Telegram

| الأمر | الوصف |
|-------|-------|
| `/start` | رسالة الترحيب |
| `/status` | إحصائيات قائمة الانتظار |
| `/orders` | آخر 10 طلبات |
| `/order [id]` | تفاصيل طلب محدد |

---

## 📡 REST API

| Method | URL | الوصف |
|--------|-----|-------|
| POST | `/api/webhook/woocommerce` | Webhook من WooCommerce |
| GET  | `/api/health` | حالة السيرفر |
| GET  | `/api/status/<id>` | حالة طلب |
| GET  | `/api/orders` | آخر 50 طلب |

Header للمصادقة: `X-API-Key: your_API_SECRET`

---

## 🛡️ نظام Anti-Detection

| الميزة | التفاصيل |
|--------|----------|
| Random Sleep | نوم عشوائي 2-6 ثانية بين الخطوات |
| Human Typing | كتابة حرف بحرف بتأخير عشوائي |
| Mouse Jitter | تحريك ماوس بشري قبل كل ضغطة |
| CDP Patch | إخفاء `navigator.webdriver` |
| Real UserAgent | Chrome 124 Windows 10 |
| Retry Jitter | تأخير عشوائي بين المحاولات |

---

## 📊 Dashboard

افتح `dashboard.html` في المتصفح وأدخل رابط السيرفر و API Key.
يتحدث تلقائياً كل 30 ثانية.

---

## 🔧 الأوامر اليومية

```bash
# إعادة محاولة الطلبات الفاشلة
python retry_failed.py

# إعادة طلب محدد
python retry_failed.py 9999

# تابع اللوجز
tail -f logs/bot.log
tail -f logs/apache_error.log

# Apache
sudo systemctl restart apache2
sudo systemctl status apache2
```

---

## 📁 هيكل المشروع

```
game-topup-bot/
├── app/
│   ├── api/            ← Flask API + Webhook
│   ├── automation/     ← Selenium + Razer Gold
│   ├── bot/            ← Telegram Bot
│   ├── config/         ← الإعدادات
│   ├── database/       ← MySQL
│   ├── models/         ← نماذج البيانات
│   ├── services/       ← منطق العمل
│   └── utils/          ← أدوات مساعدة
├── worker/             ← Queue Worker
├── logs/               ← اللوجز
├── topup.wsgi          ← نقطة دخول Apache
├── apache-topup.conf   ← إعداد Apache VirtualHost
├── install.sh          ← مثبّت تلقائي
├── test_system.py      ← اختبار النظام
├── retry_failed.py     ← إعادة المحاولة
├── dashboard.html      ← لوحة التحكم
└── woocommerce-functions.php ← كود PHP للموقع
```
