AliceBot
إطار عمل روبوت متعدد الخلفية غير متزامن بسيط بيثون
التوثيق · الأدلة · مرجع واجهة برمجة التطبيقات · أمثلة
مقدمة
AliceBot عبارة عن إطار عمل روبوت متعدد الخلفية غير متزامن بسيط من نوع Python يدعم تعديلات متعددة على البروتوكول. يمكنك بسهولة كتابة المكونات الإضافية التي يسهل تعلمها واستخدامها لتوسيع وظائفها.
هذا المشروع مستوحى من مشروع NonBot. يمكنك التحقق من أوجه التشابه والاختلاف بين المشروعين في قسم المقارنة حتى تتمكن من اختيار إطار عمل الروبوت الأكثر ملاءمة لك.
سمات
- بسيط : يستخدم AliceBot طريقة كتابة مكون إضافي مرنة للغاية وسهلة الاستخدام، ما عليك سوى كتابة طريقتين لتنفيذ مكون إضافي قوي.
- مرن : بروتوكول التكيف الخاص بـ AliceBot غير مرتبط بأي مكتبة أو بروتوكول شبكة، ولك الحرية في اختيار أو كتابة المحول الذي يناسبك.
- الكفاءة : يعتمد AliceBot على عمليات الإدخال/الإخراج غير المتزامنة في Python ويمكنه بسهولة التعامل مع عدد كبير من الطلبات. تعبئة أقل، والسعي للحصول على أفضل أداء مع الحفاظ على سهولة الاستخدام.
حاليًا، يحتفظ AliceBot رسميًا بتعديلات البروتوكول التالية:
- بروتوكول OneBot (CQHTTP) (يدعم QQ، وما إلى ذلك) وطرق الاتصال العكسي ws
- بروتوكول OneBot v12 ws وطرق الاتصال العكسي ws
- بروتوكول Mirai-api-http 2.0+ طرق اتصال ws وreverse-ws
- طريقة الاتصال الصادرة (رد الاتصال) لـ DingTalk Enterprise Robot
- طرق استطلاع روبوت Telegram والاتصال عبر الويب
ويجري الآن تكييف المزيد من البروتوكولات...
مزيد من المعلومات: مقدمة - وثائق AliceBot
ابدأ الآن
ثَبَّتَ:
pip install alicebot[all]
مشروع AliceBot الأول:
from alicebot import Bot
bot = Bot ()
bot . load_adapters ( "alicebot.adapter.cqhttp" )
bot . run ()
أول مكون إضافي لـ AliceBot:
from alicebot import Plugin
class Echo ( Plugin ):
async def handle ( self ) -> None :
await self . event . reply ( self . event . message . replace ( "echo " , "" ))
async def rule ( self ) -> bool :
if self . event . adapter . name != "cqhttp" :
return False
if self . event . type != "message" :
return False
return self . event . message . startswith ( "echo " )
راجع وثائق AliceBot لمزيد من المعلومات.
مقابلة
هذا المشروع مستوحى من مشروع NonBot وفيما يلي مقدمة موجزة لأوجه التشابه والاختلاف بين الاثنين.
نقاط مماثلة:
- كلاهما مكتوب بلغة بايثون ويستخدمان أطر الروبوت عالية الأداء غير المتزامنة.
- كلاهما يدعم بروتوكولات متعددة.
- سيقوم كلاهما بتحليل ومعالجة الأحداث التي يتلقاها الروبوت، وتوزيعها على المكونات الإضافية (المستجيبين للأحداث) وفقًا للأولوية لإكمال وظائف محددة.
- كلاهما مفتوح المصدر بناءً على ترخيص MIT، مما يعني أنه يمكنك استخدام هذا المشروع طالما أنك تتبع الترخيص.
الاختلافات:
- بشكل عام، يعد NonBot إطار عمل روبوت أكثر شمولاً، في حين أن AliceBot عبارة عن إطار عمل روبوت صغير وموجز ولا يحتوي على بعض الميزات المتقدمة المعقدة، ولكنه أكثر مرونة وسهولة في التعلم.
- يختلف أسلوب كتابة المكونات الإضافية لـ AliceBot عن NonBot نسبيًا، يركز AliceBot بشكل أكبر على سهولة الدخول و"الإطار التقدمي"، مما يعني أن معظم وظائف AliceBot اختيارية ولا تحتاج إلا إلى معرفة القليل جدًا للبدء مع نمو مشروعك من حيث الحجم والتعقيد، يمكنك الاستمرار في البحث عن الميزات التي تحتاجها دون الحاجة إلى إتقانها جميعًا على الفور. "إنه إطار يمكن أن ينمو معك ويتكيف مع احتياجاتك المختلفة."
- يرتبط برنامج NonBot بشدة ببروتوكول اتصال HTTP/WebSocket من حيث التنفيذ، فهو يتطلب "برنامج تشغيل" يدعم بروتوكول خادم ASGI، بينما لا يرتبط AliceBot بأي بروتوكول حتى أنه يمكن استخدامه لتشغيل مكبر الصوت الذكي Raspberry Pi . بالطبع، لا يوجد فرق إذا كنت تحتاج فقط إلى إطار عمل روبوت يدعم أدوات الدردشة الشائعة على الويب.
- يتمتع برنامج NonBot بقاعدة مستخدمين وحجم مجتمع كبير نسبيًا، ويحتوي أيضًا على عدد كبير من المكونات الإضافية، بينما يعد AliceBot مشروعًا ناشئًا، مما يعني أنه إذا كنت تستخدم برنامج AnyBot فقد تجد أنه من الأسهل العثور على المكونات الإضافية التي تهمك التي تمت كتابتها، ويمكنك أيضًا العثور على المعلومات ذات الصلة أو الحصول على الإجابات بشكل أسرع عندما تواجه مشاكل.
بشكل عام، كلاهما لهما خصائصهما الخاصة، ويمكنك الاختيار وفقًا لاحتياجاتك.
رخصة
AliceBot مفتوح المصدر بموجب ترخيص MIT.
تم رسم أيقونة هذا المشروع بواسطة Misty Little Dream God وهي مفتوحة للاستخدام كجزء من هذا المشروع بموجب نفس ترخيص هذا المشروع.