--- title: Discord Ticket Bot emoji: 🎫 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 6.10.0 app_file: app.py pinned: true license: mit --- # 🎫 Discord Ticket Bot | بوت نظام التذاكر > نظام تذاكر متكامل ثنائي اللغة (عربي/إنجليزي) - Production Ready > Full bilingual ticket system (Arabic/English) - Built with discord.py --- ## 📦 الملفات | Files ``` discord-ticket-bot/ ├── main.py ← الكود الرئيسي للبوت ├── app.py ← نقطة دخول Hugging Face ├── requirements.txt ← المتطلبات └── README.md ← هذا الملف ``` --- ## 🚀 خطوات النشر على Hugging Face | Deployment Steps ### الخطوة 1 - إنشاء Space جديد 1. اذهب إلى: https://huggingface.co/spaces 2. اضغط على **"Create new Space"** 3. اختر الإعدادات التالية: - **Space name:** `discord-ticket-bot` (أو أي اسم تريده) - **License:** MIT - **SDK:** اختر `Docker` أو `Gradio` - **Hardware:** Free (CPU Basic) - كافٍ تماماً 4. اضغط **"Create Space"** --- ### الخطوة 2 - رفع الملفات **الطريقة الأولى (عبر Git):** ```bash git clone https://huggingface.co/spaces/USERNAME/discord-ticket-bot cd discord-ticket-bot # انسخ ملفاتك هنا git add . git commit -m "Add Discord Ticket Bot" git push ``` **الطريقة الثانية (عبر واجهة الويب):** 1. افتح الـ Space الذي أنشأته 2. اضغط على تبويب **"Files"** 3. اضغط **"Add file"** → **"Upload files"** 4. ارفع الملفات: `main.py`, `app.py`, `requirements.txt` --- ### الخطوة 3 - إضافة TOKEN البوت ⚠️ مهم جداً هذه أهم خطوة! لا تضع التوكن داخل الكود أبداً. 1. اذهب إلى إعدادات الـ Space: **Settings** → **Variables and secrets** 2. اضغط **"New secret"** 3. أدخل: - **Name:** `TOKEN` - **Value:** توكن بوتك من Discord Developer Portal 4. اضغط **"Save"** > **ملاحظة:** الـ Secrets مشفّرة ولا يمكن لأحد رؤيتها، حتى أنت لن تراها بعد حفظها. --- ### الخطوة 4 - إعداد Discord Developer Portal 1. اذهب إلى: https://discord.com/developers/applications 2. افتح بوتك أو أنشئ جديداً 3. من قسم **Bot**: - فعّل **"Message Content Intent"** ✅ - فعّل **"Server Members Intent"** ✅ - فعّل **"Presence Intent"** ✅ 4. من قسم **OAuth2** → **URL Generator**: - Scopes: `bot`, `applications.commands` - Bot Permissions: - `Manage Channels` (لإنشاء Threads) - `Send Messages` - `Manage Messages` (لحذف الرسائل المخالفة) - `Embed Links` - `Attach Files` - `Read Message History` - `View Channels` - `Create Public Threads` - `Create Private Threads` - `Manage Threads` - `Send Messages in Threads` 5. انسخ الرابط وادع البوت لسيرفرك --- ### الخطوة 5 - ملاحظات مهمة لـ Hugging Face إذا كنت تستخدم SDK = `gradio`، يحتاج Hugging Face لـ Gradio interface. **الحل الأسهل:** استخدم Docker SDK. #### إذا اخترت Docker: أنشئ ملف `Dockerfile`: ```dockerfile FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "main.py"] ``` #### إذا اخترت Gradio (لإبقاء الـ Space حياً): أضف هذا في بداية `app.py`: ```python import threading import gradio as gr def run_bot(): import asyncio import main as bot_main asyncio.run(bot_main.main()) # تشغيل البوت في thread منفصل bot_thread = threading.Thread(target=run_bot, daemon=True) bot_thread.start() # واجهة Gradio بسيطة لإبقاء الـ Space حياً demo = gr.Interface( fn=lambda: "🟢 Bot is Running | البوت يعمل", inputs=[], outputs="text", title="Discord Ticket Bot Status" ) if __name__ == "__main__": demo.launch() ``` --- ## ⚙️ الإعدادات القابلة للتعديل | Configuration افتح `main.py` وعدّل هذه القيم في قسم `CONFIGURATION`: ```python OWNER_ID = 1429183440485486679 # ← ID المالك ERROR_CHANNEL_ID = 1488536752691085552 # ← قناة الأخطاء TICKET_CHANNEL_ID = 1488536530019549344 # ← قناة التذاكر LOG_CHANNEL_ID = 1488536921813680218 # ← قناة اللوق TICKET_SLOWMODE = 10 # ← Slow Mode بالثواني COOLDOWN_SECONDS = 60 # ← Cooldown بعد الإغلاق ``` --- ## 🎮 أوامر البوت | Bot Commands | الأمر | الوصف | الصلاحية | |-------|--------|-----------| | `/setup-ticket-panel` | إنشاء Panel التذاكر | المالك فقط | | `/help` | كيفية فتح تذكرة | الجميع | --- ## 🛡️ ميزات الحماية | Protection Features - ✅ منع السبام (رسائل/إيموجي/حروف عشوائية) - ✅ منع فتح أكثر من تذكرة - ✅ Cooldown 60 ثانية بعد الإغلاق - ✅ Slow Mode 10 ثواني - ✅ حظر الروابط والملفات - ✅ حظر Voice Messages - ✅ إعادة تشغيل تلقائية عند الانهيار - ✅ إرسال الأخطاء للقناة المحددة --- ## 📝 ملاحظات مهمة | Important Notes 1. **Private Threads** تتطلب Server Boost Level 2، وإلا ستستخدم Public Threads تلقائياً 2. تأكد أن البوت لديه **Administrator** أو الصلاحيات المذكورة أعلاه 3. يجب أن يكون رتبة البوت **أعلى من رتب الموظفين** في قائمة الرتب --- *Built with ❤️ using discord.py | مبني بـ discord.py*