Commit Graph

30 Commits

Author SHA1 Message Date
Brian S. Stephan 2aa369add7 rewrite recursion/alias code for the 500th time.
more of a moving of the code, actually, it now exists in (an overridden)
_handle_event, so that recursions happen against irc events directly,
rather than an already partially interpreted object.

with this change, modules don't need to implement do() nor do we have a
need for the internal_bus, which was doing an additional walk of the
modules after the irc event was already handled and turned into text. now
the core event handler does the recursion scans.

to support this, we bring back the old replypath trick and use it again,
so we know when to send a privmsg reply and when to return text so that
it may be chained in recursion. this feels old hat by now, but if you
haven't been following along, you should really look at the diff.

that's the meat of the change. the rest is updating modules to use
self.reply() and reimplementing (un)register_handlers where appropriate
2011-02-17 01:08:45 -06:00
Brian S. Stephan 18fc614a4a assorted whitespace nitpicking 2011-01-20 14:15:10 -06:00
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 d637983ae1 apparently ply doesn't like docstrings in its functions 2011-01-07 18:42:56 -06:00
Brian S. Stephan acca8723b3 convert to/standardize docstrings a bit.
this got boring fast, so it's only half done
2011-01-06 23:25:46 -06:00
kad e1d5d9f522 Fix negative modifier issue 2010-10-31 17:01:15 -06:00
kad c2280aaf1e Remove diceply.py 2010-10-31 11:14:18 -06:00
kad 4f56e40ca7 Use PLY to parse dice strings 2010-10-30 14:09:16 -06:00
Brian S. Stephan 47022f9428 add ctech dice rolling method, for cthulhutech.
does greatest/best set/best straight methods. use normal roll for
stuff that should be summed, like damages
2010-09-05 11:00:11 -05:00
Brian S. Stephan 27ff7e257d fix a bug that was getting the trailing semicolon wrong, and do it better anyway. 2010-09-05 10:44:59 -05:00
Brian S. Stephan 8c1c10a4bc remove debugging print statement 2010-09-04 12:26:20 -05:00
Brian S. Stephan 92281151ff don't display the comment twice, now that we print the entire roll string 2010-09-04 12:09:37 -05:00
Brian S. Stephan a0fd33b070 only append the roller's nick once, at the end, if there is a reply 2010-09-04 12:08:13 -05:00
Brian S. Stephan 27b27ecb61 split roll string and properly ignore "roll" from roll attempt 2010-09-04 12:04:24 -05:00
Brian S. Stephan 5b44b66c4d demand a roll prefix on the Dice module 2010-09-04 11:56:35 -05:00
Brian S. Stephan 4bf2d344fc dice: only try sending something if we actually have something to say 2010-08-28 14:07:00 -05:00
Brian S. Stephan 88c83c1e45 dice: properly handle multiple-roll strings (d20; d20) in this post-
recursion world where we're supposed to return a string
2010-08-28 14:04:29 -05:00
Brian S. Stephan 594c4d297d remove_global_handler() for pubmsg and privmsg by default, since Module does the add_global_handler() (last commit) 2010-07-30 18:53:58 -05:00
Brian S. Stephan eb1efa4919 add_global_handler() for pubmsg and privmsg by default, since Module defines on_pubmsg/on_privmsg anyway, and that's been the default for almost every module so far 2010-07-30 18:50:56 -05:00
Brian S. Stephan 7feb90242d renaming 'irclib' dir to 'extlib' 2010-07-30 18:34:10 -05:00
Brian S. Stephan 5ba26107cc each module subclassing Module unnecessarily defined __init__, with the exception of IrcAdmin, whose SIGINT setup was moved to register_handlers 2010-07-30 14:38:28 -05:00
Brian S. Stephan ae4c1fa726 move common reply functionality into a method in Module 2010-07-30 00:34:57 -05:00
Brian S. Stephan 57090fdda4 long list of changes to allow modular Module reloads: server as module variable, class appends self to module list, unregister_handlers method which must be overridden, reload method which does the magic to create the a new object of the re-read class. drop use of the main rehash and reload_modules, and don't pass rehash around anymore. load initial objects 'the old way' again. feature modules change for compatability and implementation of all of the above changes 2010-07-29 22:36:08 -05:00
Brian S. Stephan 26d2e0c294 making imports fit my style convention, actually importing os in the module that needs it 2010-07-29 00:18:20 -05:00
Brian S. Stephan 91e535978f comment nitpicking and restyling 2010-07-29 00:04:01 -05:00
Brian S. Stephan 48498898bf vi modelines for split out files 2010-07-28 23:48:47 -05:00
Brian S. Stephan b65c01fb31 GPLv3 headers on the split out files 2010-07-28 23:47:29 -05:00
kad 0c17196b32 Add some modelines and fix indentation, I hope. 2010-07-27 23:11:58 -06:00
kad ec9acdd2ee Forgot to add files :( 2010-07-27 19:35:01 -06:00