CmdBot è un bot IRC con atteggiamento cmd.
Perché, oh, perché!
tl; dr: perché ne avevo bisogno.
Ora, con la vera ragione ...
Sì, sì, sì, lo so. "Ancora un altro Bot IRC" ... Ma perché oh perché oh perché hai bisogno di fare una nuova? Ci sono tonnellate di loro: SupyBot Phenny, e il super-iper Hubot ... Ecco il punto, giusto? Ci sono un sacco di bot, ma tutti succhiano a una cosa: ricordare. Di solito, questi bot conoscono solo come eseguire piccoli compiti che richiedono solo un ping pong e una posteriore con la risposta. Dopo aver fatto questa operazione, la tua domanda e la sua risposta non ci sono più, e il bot dimentica su di esso.
Qui era la mia sfida: volevo incidere un bot in grado di gestire un piccolo gioco basato IRC-con diversi giocatori, un sottoinsieme di regole, dadi di rotolamento, mantenendo i punteggi durante il gioco, e un vincitore quando il punteggio di un giocatore stava raggiungendo l'obiettivo. Per fare questo, il bot ha bisogno di un cervello.
Il caso di Hubot
Sono stato tentato di costruire utilizzando Hubot, e il suo adattatore Hubot-irc. Ma ho perso tre serate piene cercando di farlo funzionare, senza successo. Il mio rapporto bug portare a risolverlo. Si potrebbe cambiare in futuro, ma le mie capacità nodo-js sono vicini allo zero, e la mia Javascript è un po 'al di sopra di questo livello.
Avevo bisogno di avere successo. Costruire una "stupida" IRC bot è abbastanza facile. Ci sono tonnellate di esempi si possono trovare sul web. È possibile estendere questi bot aggiungendo un sistema di plugin, come Supybot di o phenny di. Ma non è un bene per il mio uso, perché "solo" è costituito da una funzione di callback ephemereal. Avevo bisogno di un bot "intelligenti".
Introduzione CmdBot
Ecco il mio prendere. E 'lontano dall'essere perfetto al 100%, ma penso che prende il meglio di meccanismo di introspezione di Python.
A proposito, perché il nome di "CmdBot"? Poiché il suo sistema di funzione di caricamento è stato ispirato dal modulo cmd del Python, che usa membro della classe introspezione per catturare le funzioni selezionate e li esegue
Requisiti :.
- Python
I commenti non trovato