AliceBot
Kerangka kerja robot multi-backend asinkron Python sederhana
Dokumentasi · Panduan · Referensi API · Contoh
Perkenalan
AliceBot adalah kerangka robot multi-backend asinkron Python sederhana yang mendukung beberapa adaptasi protokol. Anda dapat dengan mudah menulis plug-in yang mudah dipelajari dan digunakan untuk memperluas fungsinya.
Proyek ini terinspirasi oleh proyek NoneBot. Anda dapat memeriksa persamaan dan perbedaan kedua proyek di bagian perbandingan sehingga Anda dapat memilih kerangka robot yang lebih cocok untuk Anda.
Fitur
- Sederhana : AliceBot menggunakan metode penulisan plug-in yang sangat fleksibel dan mudah digunakan. Anda hanya perlu menulis dua metode untuk mengimplementasikan plug-in yang kuat.
- Fleksibel : Protokol adaptasi AliceBot tidak terikat pada perpustakaan atau protokol jaringan apa pun. Anda bebas memilih atau menulis adaptor yang sesuai untuk Anda.
- Efisien : AliceBot didasarkan pada I/O asinkron Python dan dapat dengan mudah menangani permintaan dalam jumlah besar. Lebih sedikit kemasan, mengejar kinerja terbaik dengan tetap menjaga kemudahan penggunaan.
Saat ini, AliceBot secara resmi mempertahankan adaptasi protokol berikut:
- Protokol OneBot (CQHTTP) (mendukung QQ, dll.) metode koneksi ws dan ws-reverse
- Protokol OneBot v12 ws dan metode koneksi ws-reverse
- protokol mirai-api-http 2.0+ ws dan metode koneksi reverse-ws
- Metode koneksi keluar (panggilan balik) dari DingTalk Enterprise Robot
- Polling robot Telegram dan metode koneksi webhook
Lebih banyak protokol sedang diadaptasi...
Informasi lebih lanjut: Pendahuluan - Dokumentasi AliceBot
Mulai sekarang
Memasang:
pip install alicebot[all]
Proyek AliceBot pertama:
from alicebot import Bot
bot = Bot ()
bot . load_adapters ( "alicebot.adapter.cqhttp" )
bot . run ()
Plugin AliceBot pertama:
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 " )
Lihat dokumentasi AliceBot untuk informasi lebih lanjut.
kontras
Proyek ini terinspirasi dari proyek NoneBot. Berikut pengenalan singkat persamaan dan perbedaan keduanya.
Poin serupa:
- Keduanya ditulis dengan Python dan menggunakan kerangka kerja robot berkinerja tinggi asinkron coroutine.
- Keduanya mendukung banyak protokol.
- Keduanya akan mengurai dan memproses peristiwa yang diterima robot, dan mendistribusikannya ke plug-in (event responder) sesuai prioritas untuk menyelesaikan fungsi tertentu.
- Keduanya bersifat open source berdasarkan lisensi MIT, artinya Anda dapat menggunakan proyek ini selama Anda mengikuti lisensinya.
Perbedaan:
- Secara umum, NoneBot adalah kerangka robot yang lebih komprehensif, sedangkan AliceBot adalah kerangka robot kecil dan ringkas yang tidak berisi beberapa fitur canggih yang rumit, namun lebih fleksibel dan mudah dipelajari.
- Gaya penulisan plug-in AliceBot berbeda dengan NoneBot. Secara relatif, AliceBot lebih berfokus pada kemudahan masuk dan "kerangka progresif", yang berarti bahwa sebagian besar fungsi AliceBot bersifat opsional dan Anda hanya perlu mengetahui sedikit pengetahuan untuk memulai, dan seiring bertambahnya ukuran dan kompleksitas proyek Anda, Anda dapat terus menelusuri fitur-fitur yang Anda perlukan tanpa harus langsung menguasai semuanya. “Ini adalah kerangka kerja yang dapat tumbuh bersama Anda dan beradaptasi dengan berbagai kebutuhan Anda.”
- NoneBot sangat terikat dengan protokol komunikasi HTTP/WebSocket dalam hal implementasi. Ini memerlukan "driver" yang mendukung protokol server ASGI, sementara AliceBot tidak terikat pada protokol apa pun. Ia bahkan dapat digunakan untuk menggerakkan speaker pintar Raspberry Pi Anda . Tentu saja, tidak ada bedanya jika Anda hanya memerlukan kerangka bot yang mendukung alat obrolan web umum.
- NoneBot memiliki basis pengguna dan ukuran komunitas yang relatif besar, dan juga memiliki sejumlah besar plug-in, sedangkan AliceBot adalah proyek yang baru lahir, yang berarti jika Anda menggunakan NoneBot Anda mungkin akan lebih mudah menemukan plug-in yang Anda minati. di dalamnya telah ditulis, dan Anda juga dapat menemukan informasi yang relevan atau mendapatkan jawaban lebih cepat ketika Anda menemui masalah.
Secara keseluruhan, keduanya memiliki ciri khas masing-masing, dan Anda bisa memilih sesuai kebutuhan.
lisensi
AliceBot adalah sumber terbuka di bawah lisensi MIT.
Ikon untuk proyek ini digambar oleh Misty Little Dream God dan terbuka untuk digunakan sebagai bagian dari proyek ini di bawah lisensi yang sama dengan proyek ini.