CmdBot est un bot IRC avec l'attitude cmd.
Pourquoi, oh, pourquoi!
tl; dr: parce que je en avais besoin.
Maintenant, avec la raison réelle ...
Oui, oui, oui, je sais. "Encore un autre IRC Bot" ... Mais pourquoi, oh pourquoi oh pourquoi avez-vous besoin de faire un nouveau? Il ya des tonnes d'entre eux: supybot Phenny, et l'Hubot super-hyper ... Voici l'affaire, non? Il ya beaucoup de bots, mais tous sucent à une chose: se souvenir. Habituellement, ces robots ne savent que pour effectuer de petites tâches qui ne demandent qu'un ping pong et un retour avec la réponse. Après avoir fait cette tâche, votre question et sa réponse sont partis, et le bot oublie à ce sujet.
Voici étais mon défi: je voulais pirater un bot qui pourrait gérer un petit jeu basé sur IRC-, avec plusieurs joueurs, un sous-ensemble de règles, de lancer des dés, garder scores pendant le jeu, et un gagnant lorsque le score d'un joueur a été atteint l'objectif. Pour ce faire, votre bot a besoin d'un cerveau.
Le cas de Hubot
Je ai été tenté de le construire en utilisant Hubot et son adaptateur Hubot-irc. Mais je ai perdu trois soirées pleines essayant de le faire fonctionner, sans succès. Mon rapport de bogue plomb pour le résoudre. Il pourrait changer à l'avenir, mais mes compétences de noeud-js sont proches de zéro, et mon Javascript est un peu au-dessus de ce niveau.
Je avais besoin pour réussir. Construire une "dumb" bot IRC est assez facile. Il ya des tonnes d'exemples que vous pouvez trouver sur le web. Vous pouvez étendre ces robots en ajoutant un système de plugin, comme Supybot de phenny ou de. Mais ce ne est pas bon pour mon utilisation, car il «seulement» se compose d'une fonction de rappel éphémère. Je avais besoin d'un bot "plus intelligent".
Présentation CmdBot
Voici mon point de vue. Ce est loin d'être parfait à 100%, mais je pense qu'il prend le meilleur du mécanisme d'introspection de Python.
Par ailleurs, pourquoi le nom "CmdBot"? Parce que son système fonction de chargement a été inspiré par le module de cmd du Python, qui utilise membre de la classe introspection pour attraper les fonctions désignées et les exécuter
Exigences :.
- Python
Commentaires non trouvées