Commit Graph

104 Commits

Author SHA1 Message Date
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
4d6228b93a move DrBotIRC into a separate file, since we will probably be hacking more on it soon 2011-01-07 09:54:51 -06:00
b487caf12d make the config file argument optional.
this should probably be robustified (--config-file=foo) eventually
2011-01-06 22:43:10 -06:00
00d5502477 remove some stuff that's been commented out for a while now 2011-01-06 22:40:45 -06:00
Mike Bloy
8ffcecdff0 hacked out loading of all modules from __init__
Discussion with bss implies that this is no longer needed, now that
the dynamic loader and unload is in place.

empirical testing seems to confirm this
2010-12-17 22:52:53 -06:00
1bacfe047e fix (god i hope fix) unicode in Twitter
also remove some unnecessary unicode conversions right before printing?
commented out until i'm convinced there was no need for it.

protip: clearest description i've read to date:
http://stackoverflow.com/questions/368805/python-unicodedecodeerror-am-i-misunderstanding-encode#370199
2010-12-16 10:36:50 -06:00
7a9b68f2c4 remove unnecessary method, preferring register_handlers 2010-12-15 20:53:52 -06:00
da9e4b3142 better method of loading modules --- don't import *, import each individually 2010-12-10 23:25:56 -06:00
eeb8ff83bf fix a lack of encoding bug in a place where it's probably been lingering for a while. 2010-10-27 23:16:07 -05:00
898a4aa6c0 Revert "remove even more unicode()/encode() calls."
turns out there was a reason why i did this one.
This reverts commit 1afa34554f.
2010-10-27 23:12:46 -05:00
1afa34554f remove even more unicode()/encode() calls.
it's now to the point that i have no idea what convinced me to
make them in the first damn place.
2010-10-27 22:54:26 -05:00
Mike Bloy
48427ecd21 create the database if it doesn't exist, on startup 2010-10-24 15:11:37 -05:00
52b740a52c split the register_handlers into a method other than the object constructor
the reasoning behind this is that we may want to load one object
but have it connect to multiple servers. this allows that.
2010-10-09 18:52:51 -05:00
599106e447 require config file on the command line 2010-10-02 21:44:03 -05:00
466eb6eff1 attempt to give up if we're doing too many splits 2010-09-30 19:38:21 -05:00
54af309bbc and username, password options to bot, and properly connect with those options. 2010-09-08 20:32:43 -05:00
713b1e560b get around occasional utf8 conversion exceptions by swallowing
those exceptions and moving on, since the output never seemed
wrong in these cases anyway
2010-08-24 13:25:30 -05:00
4d41314195 standardize config sections to use class name. NOTE: USERS NEED TO UPDATE THEIR CONFIG 2010-08-01 11:41:26 -05:00
54d62dd587 unicode fixes, in part to support what is going on in an in-dev weather module 2010-07-30 19:57:10 -05:00
7feb90242d renaming 'irclib' dir to 'extlib' 2010-07-30 18:34:10 -05:00
262ee2e3e1 PEP 257ifying dr.botzo.py and Module.py 2010-07-30 13:34:51 -05:00
e1fe0eb4ca do splitting in DrBotServerConnection.privmsg 2010-07-30 08:01:45 -05:00
88186e1425 slight documentation and whitespace for subclassing irclib.IRC, irclib.ServerConnection 2010-07-29 23:26:30 -05:00
9191f25052 load modules at startup based on config file, remove that item from TODO 2010-07-29 23:13:15 -05:00
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
a3da4f39c8 remove unnecessary stuff from dr.botzo.py import 2010-07-29 00:32:20 -05:00
91e535978f comment nitpicking and restyling 2010-07-29 00:04:01 -05:00
kad
02df2ca783 Cleanup code 2010-07-28 13:25:49 -05:00
kad
0c17196b32 Add some modelines and fix indentation, I hope. 2010-07-28 00:11:58 -05:00
kad
1704fc7c50 Add ability to rehash modules. Split modules into separate files. Rehash is a bit flakey, not sure of a better way to do it. 2010-07-27 20:29:28 -05:00
c9c3b0e499 move irclib into its own subdirectory 2010-07-27 20:29:28 -05:00
74371727ed making comments more standard 2010-07-27 20:29:28 -05:00
ea1b89540b add GPL notice to dr.botzo.py 2010-07-27 20:29:28 -05:00
kad
1c728b14bd Try to dynamically create modules 2010-07-26 22:46:48 -05:00
4f0908f873 move irclib into its own subdirectory 2010-07-26 22:36:07 -05:00
35b6545425 making comments more standard 2010-07-26 21:59:11 -05:00
dbfcfd253d add GPL notice to dr.botzo.py 2010-07-26 21:51:03 -05:00
0fc413f2e3 remove executable bit, remove python shebang 2010-07-26 21:31:10 -05:00
c1da6cc052 use the with keyword to open the file, so that the file is properly closed 2010-07-26 21:08:34 -05:00
5927d361ef bite the bullet and load the entire file into memory rather than doing the fun only-load-one-line trick, so that it's easier to search with a regex later 2010-07-26 21:06:59 -05:00
3037364ef9 more unicode fake replacements, now that i reverted the real fix 2010-07-26 20:54:54 -05:00
497554c314 Revert "handle unicode escapes the right way, now that i properly looked up what was going on" because it turns out that result languages like ja mix the escaped unicode and the natural unicode and that screws up every method i've found to parse so far, as they all appear to expect all escaped or all native. here's an example:
\u0026lt;ハイテク\u0026gt;

if you can figure that out, un-revert and apply your fix.

This reverts commit 9836ebf11f.
2010-07-26 20:48:54 -05:00
22c423f8b5 creating custom classes inheriting from irclib, in an attempt to figure out this unicode stuff and to do privmsg splitting eventually 2010-07-26 20:05:17 -05:00
9836ebf11f handle unicode escapes the right way, now that i properly looked up what was going on 2010-07-26 19:29:52 -05:00
9eabef8abe more html character replacements 2010-07-26 19:02:57 -05:00
3bd8fb13c2 do a couple simple conversions of htmlified characters to their ascii equivalent 2010-07-26 18:33:10 -05:00
8fba54e33d fact module. gets a random line out of the file, still needs search support, adding, whatever else 2010-07-26 18:14:33 -05:00
c8e3a4354b support for recursion. took a lot of time, probably a bit brittle, and a bunch of other changes got caught in the wake as i made it work. there are a couple candidates for making things generic in Module somewhere (somehow?), as a lot of stuff around replypath is reused for each class 2010-07-26 00:49:15 -05:00
565aff193c convert all the miscellaneous irc interactions to an IrcAdmin Module. now everything is a module, and i can remove some other hooks. ugliest diff to date. 2010-07-25 22:06:51 -05:00
df91495652 making seen stuff a Module 2010-07-25 21:51:31 -05:00