مقدمة
يشرح هذا الدليل كيفية تشغيل بوت ديسكورد على خادم لينكس. يُعد بوت ديسكورد وسيلة رائعة لتعلم أساسيات تطوير الويب والبرمجيات الخلفية، مع الاستمتاع بوقتك مع أصدقائك. ومع التوسع الأخير لمنصة ديسكورد للاستخدام العام، يُمكن أن يُصبح تعلم كيفية إنشاء وتشغيل بوتات ديسكورد مشروعًا جانبيًا ممتعًا. بناء بوت ديسكورد ليس بالأمر الصعب، ولكنه يتطلب اتباع مجموعة من الخطوات المحددة لضمان أمان بوت ديسكورد واستمرارية عمله.
بما أن روبوتات ديسكورد تُشغّل أكوادًا وتستطيع التفاعل مع خوادم ديسكورد بطرق معقدة للغاية، فإنها تحتاج إلى استضافة على خوادم. مع أن بإمكانك الحصول على خدمات مدفوعة لاستضافة روبوت ديسكورد الخاص بك على الإنترنت، إلا أنه بعد الدروس التي ستتعلمها هنا، ستجد أنه من الأسهل بكثير استضافة روبوت ديسكورد الخاص بك بنفسك.
يستخدم هذا الدرس التعليمي لغة بايثون مع مكتبة discord.py. تُكتب روبوتات ديسكورد في الغالب بلغة بايثون (مكتبة discord.py) أو جافا سكريبت (مكتبة discord.js)، وكلاهما بيئتان رائعتان تتوافقان مع جميع المكتبات الأخرى المكتوبة بتلك اللغة. ونتيجةً لذلك، فإن معظم الخطوات متشابهة في كلتيهما (باستثناء الخطوات الخاصة بكل لغة). مع ذلك، يُعد البدء باستخدام مكتبة بايثون أسهل، ولهذا السبب تم اختيارها لهذا الدرس التعليمي.
سيكون مثال روبوت Discord في هذه المكتبة عبارة عن روبوت بسيط لتصحيح الأخطاء الإملائية، والذي سيعرض لك بعضًا من أهم الأوامر في مكتبة discord.py.
المتطلبات الأساسية
- خادم افتراضي خاص (VPS)
إذا لم يكن لديك العديد من المستخدمين أو كان برنامج الروبوت الخاص بك يقوم بمهمة بسيطة، فلا توجد عمليًا أي متطلبات للأجهزة وكل ما تحتاج إلى أن تكون قادرًا على القيام به هو تشغيل بايثون.
- أي نظام تشغيل لينكس 64 بت (x86-64 أو Arm64)
يفترض هذا البرنامج التعليمي أنك تستخدم نظام التشغيل أوبونتو، ولكن نفس الخطوات ستعمل على توزيعات لينكس الأخرى ونظام ويندوز مع تعديلات طفيفة.
- حساب ديسكورد مع خادم ديسكورد حيث لديك صلاحيات المسؤول.
معرفة أساسية أو متوسطة بلغة بايثون
الخطوة 1 - إعداد بيئة افتراضية
قبل البدء، يُنصح باستخدام بيئة افتراضية للغة بايثون تُسمى virtualenv، والتي تُمكّن كل مشروع من استخدام إصدارات مُحددة من المكتبات الخاصة به فقط، لتجنب أي تعارض بين المشاريع التي قد تتطلب إصدارات مُعينة من المكتبات. يُوصى بشدة باستخدام هذه الطريقة مع روبوتات ديسكورد التي تعمل بلغة بايثون، حيث تضمن لك هذه الطريقة عمل الروبوت بشكل دائم، كما تُسهّل نقله إلى خادم آخر.
افتح الطرفية على نظام لينكس الخاص بك أو اتصل بخادمك عبر SSH (الصدفة الآمنة) وقم بتشغيل الأوامر التالية:
apt update && apt install python3.10-venv
mkdir discord-bot && cd discord-bot/
python3 -m venv discord-bot-env
source discord-bot-env/bin/activateسيؤدي هذا إلى تثبيت حزمة بايثون اللازمة لإنشاء بيئات افتراضية، وإنشاء مجلد لروبوت ديسكورد، وتفعيل بيئة بايثون الافتراضية. يجب أن تبدو نافذة الأوامر لديك الآن كما يلي: (discord-bot-env) قبل عرض اسم المستخدم الخاص بك، قم بتثبيت مكتبة discord.py.
python3 -m pip install --upgrade discord.pyمرحله 2 – ربات خود را با Discord ثبت کنید
قبل تشغيل أي سكربتات، عليك تسجيل بوت ديسكورد الخاص بك لدى ديسكورد والحصول على رمز مميز سيستخدمه البوت للمصادقة مع ديسكورد. هذه عملية بسيطة، وإن كانت تستغرق بعض الوقت. ما عليك سوى اتباع الخطوات التالية:
1- افتح متصفح الويب.
2- قم بتسجيل الدخول إلى موقع ديسكورد.
3- ادخل إلى بوابة مطوري ديسكورد.
4- انقر على تطبيق جديد.

5- في قسم "إنشاء تطبيق"، قم بتسمية الروبوت الخاص بك.

6- انقر على البوت وانتقل إلى قسم البوت.
7- تأكد من تحديد "البوت العام" وعدم تحديد "يتطلب منح رمز OAuth2".
٨- انقر على "إعادة تعيين الرمز المميز" ودوّن الرمز المميز الخاص بك. تأكد من عدم فقدان هذا الرمز. إذا فقدته، فسيتعين عليك النقر على الزر مرة أخرى، والحصول على رمز مميز جديد، وتحديث الرمز المميز في التعليمات البرمجية الخاصة بك بالرمز الجديد.

9- انزل لأسفل واقرأ القسم بأكمله "«نوايا البوابة المميزة» فعّل هذا الخيار. سيسمح هذا للبوت بالعمل. بما أن البوت الخاص بك لا يحتوي على أي كود حتى الآن، فإن شروط وجود أكثر من 100 خادم لا تنطبق عليه.

١٠- انتقل إلى قسم OAuth2 ثم إلى قسم مُنشئ عنوان URL. يتيح لك عنوان URL هذا، ولأي شخص آخر يرغب في استخدام برنامجك الآلي، إضافة برنامجك الآلي إلى خادمك بسهولة مع منح الأذونات والوظائف التي يرغبون بها فقط.
11- في قسم "النطاقات"، انقر فوق "بوت".

12- في القسم "«أذونات البوت»انقر على جميع الأذونات التي ترغب في منحها للروبوت الذي تريده. يعتمد هذا على ما تريد أن يكون الروبوت قادرًا على فعله. بالنسبة للروبوت البسيط في هذا المثال، ينبغي أن تكون الأذونات التالية كافية.
13- في قسم "عنوان URL المُنشأ"، انقر فوق "نسخ".

14- ضع عنوان URL هذا في شريط البحث وانتقل إلى الرابط.
١٥- اقرأ المعلومات المُقدمة حول ما يمكن للروبوت فعله، ثم أضفه إلى الخادم. لا يمكنك إضافة الروبوت إلا إلى خادم لديك فيه صلاحيات إدارية.
16_روي“يكمل”"انقر"

١٧- اختر الصلاحيات التي تريد منحها لروبوتك على الخادم الذي تضيفه إليه. حاول منح الروبوت أقل عدد ممكن من الصلاحيات التي تضمن عمله بكفاءة تامة. قد يُشكل منحه صلاحيات إضافية خطرًا أمنيًا في حال حصول شخص ما على رمز الروبوت الخاص بك.

الخطوة 3 - اكتب رمز البوت الخاص بك
بعد تسجيل البوت في ديسكورد، عليك كتابة الكود الخاص به. لحسن الحظ، إنشاء بوت بسيط على ديسكورد أمر سهل، وملفات discord.py مثالية لهذا الغرض.
في نفس المجلد الذي نفذت فيه الأوامر في "الخطوة 1"، يوجد ملف يسمى discord_bot_script.py أنشئ النص باستخدام محرر النصوص المفضل لديك. في هذا المثال، سأستخدم محرر nano.
nano discord_bot_script.pyانسخ والصق الكود التالي واستبدل الرمز المميز في السطر الأخير بالرمز المميز الخاص بك:
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]
@client.event
async def on_ready():
print("Bot successfully logged in as " + client.user)
@client.event
async def on_message(message):
if message.author == client.user:
return
for word in words:
if word[0] in message.content:
await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)
client.run('<YOUR-TOKEN-HERE>')من خط به خط نمیروم، اما این ربات ساده بیشتر آنچه را که برای شروع ایجاد رباتهای Discord خود در پایتون باید بدانید را نشان میدهد. با اعلام مقاصد شروع می شود، که اساساً فیلترهایی هستند که ربات شما برای قضاوت در مورد رویدادهایی که ثبت می کند و به آنها پاسخ می دهد استفاده می کند. برای مثال، اگر یک ربات غلطگیر املا دارید، فقط به رویدادهای پیام پاسخ میدهید، اما رویدادهایی مانند پیوستن افراد به سرور یا انجام بازیهای خاص را نادیده میگیرید. میتوانید در صفحه مستندات discord.py درباره مقاصد بیشتر بخوانید.
جاهز، وهو الوقت الذي يتم فيه تحميل برنامج البوت ويتصل البوت بخوادمه.رسالة نصيةعندما يكتب شخص ما رسالة جديدة على أي خادم متصل به البوت. يحتوي هذا الحدث أيضًا على وسيطة تمرر محتوى الرسالة وبياناتها الوصفية إلى الدالة.
للوظيفة جاهزيقوم هذا الكود ببساطة بكتابة رسالة إلى الطرفية. يمكنك استخدام وظيفة الطباعة لتسجيل الأحداث أثناء التطوير.
للوظيفة on_messageأولًا، يتحقق الكود مما إذا كان مُرسِل الرسالة هو البوت نفسه، وإذا كان كذلك، فإنه يُنهي عمله. في حال عدم إجراء هذا التحقق، قد يعلق البوت في حلقة لا نهائية تُعيد فيها الرد على رسائله. بعد ذلك، يتحقق الكود مما إذا كانت أي من الكلمات الموجودة في القائمة موجودة في الرسالة المُستلمة. إذا كانت موجودة، فإنه يرد على الرسالة المُرسلة باستخدام دالة الإرسال. تُعد هذه الدالة من أهم وأقوى الدوال في ملف discord.py، وسيُمكّنك إتقان استخدامها من بناء بوتات مُثيرة للاهتمام ومعقدة.
بعد كتابة برنامج الروبوت الخاص بك، احفظ الكود وقم بتشغيله باستخدام الدالة التالية:
python3 discord_bot_script.py









