CmdBot is een IRC bot met cmd houding.
Waarom, oh, waarom!
tl; dr: omdat ik het nodig had.
Nu met de werkelijke reden ...
Ja, ja, ja, ik weet het. "Nog een andere IRC Bot" ... Maar waarom oh waarom oh waarom heb je nodig om een nieuwe te maken? Er zijn tonnen van hen: SupyBot Phenny, en de super-hyper Hubot ... Hier is de deal, toch? Er zijn een heleboel van bots, maar allemaal zijn ze zuigen op een ding: herinneren. Meestal zijn deze bots weet alleen hoe kleine taken die alleen een ping en een pong terug met het antwoord vereisen. Na het doen van deze taak, uw vraag en het antwoord zijn verdwenen, en de bot vergeet het.
Hier was mijn uitdaging: Ik wilde een bot die kan omgaan met een kleine IRC- based spel, met meerdere spelers, een subset van regels, dobbelstenen rollen, het bijhouden van scores tijdens het spel, en een winnaar hack als de score van een speler is het bereiken van het doel. Om dat te doen, je bot heeft een brein.
Het geval van Hubot
Ik heb de verleiding om het te bouwen met behulp van Hubot, en haar Hubot-irc-adapter. Maar ik heb drie volle avonden proberen om het te laten werken verloren, zonder succes. Mijn bug report leiden tot het op te lossen. Het zou kunnen veranderen in de toekomst, maar mijn knooppunt-js vaardigheden zijn dicht bij nul, en mijn Javascript is een beetje boven dit niveau.
Ik nodig had om te slagen. Het bouwen van een "domme" IRC bot is vrij eenvoudig. Er zijn vele voorbeelden die u kunt vinden op het web. U kunt deze bots te breiden door het toevoegen van een plugin-systeem, zoals Supybot of phenny's. Maar dat is niet goed voor mijn gebruik, omdat het "slechts" bestaat uit een ephemereal callback functie. Ik had een "slimmer" bot.
Introductie CmdBot
Hier is mijn nemen. Het is verre van 100% perfect, maar ik denk dat het neemt het beste van Python's introspectie mechanisme.
By the way, waarom de naam "CmdBot"? Omdat de functie van laadsysteem is geïnspireerd door de Python's cmd-module, die gebruik maakt van de klas lid introspectie naar de aangewezen functies te vangen en uit te voeren hen
Eisen .
- Python
Reacties niet gevonden