Commit Graph

26 Commits

Author SHA1 Message Date
Brian S. Stephan 359ca24856 remove replypath and all the places it was used.
with alias calling do() internally, there is no need for all this
replypath nonsense, and if there's ever a module that needs to reply
to stuff on its own outside of do(), it'd have to be implementing
all of this anyway, so it was pretty irrelevant.

this makes DrBotIRC alias/recursion stuff a bit cleaner.
2011-01-07 23:09:07 -06:00
Brian S. Stephan 0bd681c324 convert most modules to use ! commands.
okay, it's time. we got around for a while with all sorts of silly
config options and exceptions and common strings triggering bot
commands. but now it's time to man up and expect modules to be
more strict and less loosey-goosey.

convert the popular modules (i.e. the ones that still work) to
trigger on !pi rather than pi, etc. usually, this is achieved via
regex searches, although there are some weird bugs (ones i'm hoping
are caused by other recursion/alias bugs and not this commit).

more code around this will be gutted soon, but this, at least,
means you can't say 'tweet that shit, yo' and accidentally trigger
the bot.
2011-01-07 20:37:24 -06:00
Brian S. Stephan 01d3c7c80c migrate some code that became pivotal to the bot into DrBotIRC.
this is a big change. DrBotIrc is now in charge of module loading
and unloading, aliases, and recursion. the Alias module is no more,
and a bunch of functionality was moved out of IrcAdmin, including
also config file saving, the sigint handler, and quitting the bot.

additionally, a lot of stuff got caught in the wake. dr.botzo.py
is simpler now, and lets DrBotIRC do the dynamic loading stuff.
Module.__init__ changed, modules no longer get modlist and instead
get a reference to the DrBotIRC object. IrcAdmin still has the same
exposed methods, but now calls out to DrBotIRC to achieve some of
them.

naturally, a recursion/alias rewrite was included with this change.
it is clearer now (i think), but probably brittle somewhere.
additionally, currently any module that has registered a pubmsg
handler can potentially fire more than once on one input (without
recursion). this may be the next thing to fix. do() may need to
be split, or maybe it's time to stop having modules deal with
pubmsg/privmsg entirely. need to decide.

WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
2011-01-07 17:38:26 -06:00
Brian S. Stephan 02b3266b46 give MegaHAL priority 95 (which is low priority, which always confuses me) 2011-01-07 11:24:38 -06:00
Brian S. Stephan b4f1c5facd MegaHAL: docstring stuff 2011-01-07 11:23:46 -06:00
Brian S. Stephan 85c5c69cb9 weird megahal corruption strikes again.
i should probably work this out one of these times rather than just
doing random hacks to dodge it
2011-01-06 22:26:24 -06:00
Brian S. Stephan 5913e0b183 remove MegaHAL's nullifying of reload() since it's obsolete.
note that the new module appears to support unload properly via shutdown()
2011-01-06 19:58:58 -06:00
Brian S. Stephan 9c5d78891c make a deep copy of the string to feed to mh_python.
we were passing the same string everything else uses for input (by
reference), and it appears mh_python does some uppercasing
2011-01-06 17:15:57 -06:00
Brian S. Stephan 0878c8809d implement a save() for modules, use it in MegaHAL to sync brain to disk 2011-01-06 00:28:50 -06:00
Brian S. Stephan 9732ed2f34 use a different megahal implementation, which seems to be better at saving the brain.
note that nothing megahal is shipped with the bot now, including
train files. this bot will expect a ./megahal.trn, and will write
to ./megahal.brn (in addition to a slew of other ./megahal.*
files).

implementation is from http://megahal.alioth.debian.org/
2011-01-06 00:14:16 -06:00
Brian S. Stephan 41a5c43284 use the right signature for Module.reload() 2010-12-24 13:18:23 -06:00
Brian S. Stephan f590daf5cd have all modules run a shutdown() when quitting, use it to have MegaHAL close the brain 2010-12-24 10:41:12 -06:00
Brian S. Stephan 0ff44e1a47 don't have megahal learn internal commands 2010-12-24 09:48:04 -06:00
Brian S. Stephan 9ed1586783 shouldn't need this unicode workaround anymore (fingers crossed) 2010-12-24 09:42:49 -06:00
Brian S. Stephan c513a0bebc extlib/megahal.py: don't crash when the input string ends in ' 2010-12-23 10:01:11 -06:00
Brian S. Stephan e0565a9bb1 take a stab at commenting how MegaHAL reload is broken, keep it unimplemented for the moment 2010-12-15 20:55:40 -06:00
Brian S. Stephan f4dc667c77 dodge another unicode crash 2010-11-22 20:25:28 -06:00
Brian S. Stephan 9014e076bf drop the timeout to 1 sec 2010-11-03 22:52:42 -05:00
Brian S. Stephan 436fcd1132 provide timeout to the megahal system, so that the bot doesn't spin forever on a reply
not that that just happened or anything
2010-11-03 22:50:34 -05:00
Brian S. Stephan 95a27cc44b read brainfile filename from config file, allow default 2010-10-09 20:37:15 -05:00
Brian S. Stephan 05f1ce325a put MegaHAL module load in __init__, which is now being implemented here
obviously, we need to call Module.__init__ as well, and as a nice
side effect, doing all of this lets us not need to do the on_connect
nonsense, which was the wrong thing to do anyway
2010-10-09 19:36:00 -05:00
Brian S. Stephan 827d1b2c86 megahal library crashes if the text ends with ' for some reason, so work around it 2010-09-13 20:22:08 -05:00
Brian S. Stephan 1988662c0a have ^megahal$ trigger a no-input reply from the megahal module.
mostly useful for chaining random bot nonsense into other commands
2010-09-08 22:22:43 -05:00
Brian S. Stephan 3e91000acc now that we have meta.strip_bot_name_from_input there is no need to overload on_pubmsg 2010-09-08 19:51:18 -05:00
Brian S. Stephan b1e1254564 reloading MegaHAL.py seems broken somehow, so just avoid doing it 2010-09-04 11:49:18 -05:00
Brian S. Stephan 1f27078f82 MegaHAL module, lets the bot partake in inane conversations. doesn't
assume a learning file or anything, starts with an empty brain and
learns from IRC
2010-09-04 09:53:11 -05:00