AliceBot
Estrutura simples de robô multi-backend assíncrono em Python
Documentação · Guias · Referência de API · Exemplos
Introdução
AliceBot é uma estrutura de robô multi-backend assíncrona Python simples que suporta múltiplas adaptações de protocolo. Você pode escrever facilmente plug-ins que são fáceis de aprender e usar para expandir sua funcionalidade.
Este projeto é inspirado no projeto NoneBot. Você pode verificar as semelhanças e diferenças entre os dois projetos na seção de comparação para que possa escolher uma estrutura de robô mais adequada para você.
Características
- Simples : AliceBot usa um método de escrita de plug-in muito flexível e fácil de usar. Você só precisa escrever dois métodos para implementar um plug-in poderoso.
- Flexível : O protocolo de adaptação do AliceBot não está vinculado a nenhuma biblioteca ou protocolo de rede. Você é livre para escolher ou escrever um adaptador que mais lhe convier.
- Eficiente : AliceBot é baseado na E/S assíncrona do Python e pode lidar facilmente com um grande número de solicitações. Menos embalagens, buscando o melhor desempenho mantendo a facilidade de uso.
Atualmente, o AliceBot mantém oficialmente as seguintes adaptações de protocolo:
- Protocolo OneBot (CQHTTP) (suporta QQ, etc.) métodos de conexão ws e ws-reverse
- Protocolo OneBot v12 métodos de conexão ws e ws-reverse
- protocolo mirai-api-http 2.0+ ws e métodos de conexão reversa-ws
- Método de conexão de saída (retorno de chamada) do DingTalk Enterprise Robot
- Pesquisa de robôs do Telegram e métodos de conexão de webhook
Mais protocolos estão sendo adaptados...
Mais informações: Introdução - Documentação do AliceBot
Comece agora
Instalar:
pip install alicebot[all]
Primeiro projeto AliceBot:
from alicebot import Bot
bot = Bot ()
bot . load_adapters ( "alicebot.adapter.cqhttp" )
bot . run ()
O primeiro plug-in 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 " )
Consulte a documentação do AliceBot para obter mais informações.
contraste
Este projeto é inspirado no projeto NoneBot. A seguir está uma breve introdução às semelhanças e diferenças entre os dois.
Pontos semelhantes:
- Ambos são escritos em Python e usam estruturas de robôs assíncronos de alto desempenho.
- Ambos suportam vários protocolos.
- Ambos irão analisar e processar os eventos recebidos pelo robô e distribuí-los aos plug-ins (respondentes de eventos) de acordo com a prioridade para completar funções específicas.
- Ambos são de código aberto baseado na licença MIT, o que significa que você pode usar este projeto desde que siga a licença.
Diferenças:
- Em geral, NoneBot é uma estrutura de robô mais abrangente, enquanto AliceBot é uma estrutura de robô pequena e concisa que não contém alguns recursos avançados complexos, mas é mais flexível e fácil de aprender.
- O estilo de escrita do plug-in do AliceBot é diferente do NoneBot. Relativamente falando, o AliceBot se concentra mais na facilidade de entrada e na "estrutura progressiva", o que significa que a maioria das funções do AliceBot são opcionais e você só precisa saber muito pouco para começar. à medida que seu projeto cresce em tamanho e complexidade, você pode continuar a detalhar os recursos necessários sem ter que dominá-los todos imediatamente. “É uma estrutura que pode crescer com você e se adaptar às suas diferentes necessidades.”
- NoneBot está profundamente ligado ao protocolo de comunicação HTTP/WebSocket em termos de implementação. Ele requer um "driver" que suporte o protocolo do servidor ASGI, enquanto AliceBot não está vinculado a nenhum protocolo. Ele pode até ser usado para acionar seu alto-falante inteligente Raspberry Pi. . Claro, não há diferença se você só precisa de uma estrutura de bot que suporte ferramentas comuns de chat na web.
- NoneBot tem uma base de usuários e tamanho de comunidade relativamente grandes, e também possui um grande número de plug-ins, enquanto AliceBot é um projeto nascente, o que significa que se você usar o NoneBot, poderá achar mais fácil encontrar plug-ins de seu interesse em que foram escritos, e Você também pode encontrar informações relevantes ou obter respostas mais rapidamente quando encontrar problemas.
Em suma, ambos têm características próprias e você pode escolher de acordo com sua necessidade.
licença
AliceBot é de código aberto sob a licença do MIT.
O ícone deste projeto foi desenhado por Misty Little Dream God e está aberto para uso como parte deste projeto sob a mesma licença deste projeto.