Commit Graph

118 Commits

Author SHA1 Message Date
Brian S. Stephan ed63e027d4 dr.botzo.py: optionally connect via ipv6, ssl 2013-01-22 17:12:37 -06:00
Brian S. Stephan 1ec2747f3e dr.botzo.py: whitespace/string cleanups
shockingly minor, it's a small file but i was expecting more egregious
code than there actually was
2012-12-18 23:40:54 -06:00
Brian S. Stephan 8b2269c441 pyflakes cleanups 2012-07-27 20:38:45 -05:00
Brian S. Stephan 7bd5558f05 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin for case-sensitivity 2012-07-27 14:57:41 -05:00
Brian S. Stephan 1a36becead convert to a MySQL backend
WARNING!
there's no going back now. this change is *huge* but it was overdue.
WARNING!

the database backend is now mysql. modules that should use a database
but don't yet were left untouched, they'll come later. scripts haven't
been converted yet, though i'm pretty sure i'll need to soon.

while i was going through everything, connection/cursor idioms were
cleaned up, as were a bunch of log messages and exception handling. this
change is so gross i'm happy things appear to be working, which is
the case --- all modules are lightly tested.
2012-07-27 02:18:01 -05:00
Brian S. Stephan 732c7229a8 dr.botzo.py: clarify the warning about missing module_list
(not modlist)
2012-07-26 21:18:07 -05:00
Brian S. Stephan 04369f95cf dr.botzo: only warn when config specifies no modules
this is still 100% wrong, but it's not an error, per se
2012-07-26 20:43:51 -05:00
Brian S. Stephan 257c9d446e dr.botzo: abort if the database isn't set
it's become pretty important, and is only going to get moreso
2012-07-26 20:43:21 -05:00
Brian S. Stephan 26596e5e00 add debug logging to irclib rather than the gross print()ing
note that with the default logging config, nothing is printed at INFO,
so irclib is silent. but this is better control over the debugging
2012-07-26 20:17:58 -05:00
Brian S. Stephan e6be873f3d rename logger to drbotzo for clarity's sake 2012-07-26 20:09:22 -05:00
Brian S. Stephan f017422e69 dr.botzo, Module: misc cleaning up of old crap 2012-07-26 19:38:18 -05:00
Brian S. Stephan 9654f4de98 switch to use python's logging, with config file i'm not entirely happy about 2012-07-15 21:32:12 -05:00
Brian S. Stephan 25d0f2f5c3 connect to sqlite with isolation_level=None as an attempt to avoid (invalid) database is locked errors 2012-03-29 20:09:50 -05:00
Brian S. Stephan 70e1ee017f make drbotzo_modules.module a primary key so that we can use INSERT OR REPLACE INTO
WARNING! if you have an existing drbotzo_modules, you MUST RECREATE IT
WITH THE PRIMARY KEY. things will be wonky without it.

easiest way is to (by hand) create drbotzo_modules_temp as shown in the code,
INSERT INTO drbotzo_modules_temp SELECT * FROM drbotzo_modules, DROP the old
table, and ALTER TABLE RENAME TO the new one.

again, if you don't do this, newer modules will do all sorts of crazy
things, namely trying to create tables that already exist (because they have
multiple, differing values in drbotzo_modules)
2011-07-26 18:32:06 -05: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 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
Brian S. Stephan b487caf12d make the config file argument optional.
this should probably be robustified (--config-file=foo) eventually
2011-01-06 22:43:10 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 7a9b68f2c4 remove unnecessary method, preferring register_handlers 2010-12-15 20:53:52 -06:00
Brian S. Stephan da9e4b3142 better method of loading modules --- don't import *, import each individually 2010-12-10 23:25:56 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 599106e447 require config file on the command line 2010-10-02 21:44:03 -05:00
Brian S. Stephan 466eb6eff1 attempt to give up if we're doing too many splits 2010-09-30 19:38:21 -05:00
Brian S. Stephan 54af309bbc and username, password options to bot, and properly connect with those options. 2010-09-08 20:32:43 -05:00
Brian S. Stephan 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
Brian S. Stephan 4d41314195 standardize config sections to use class name. NOTE: USERS NEED TO UPDATE THEIR CONFIG 2010-08-01 11:41:26 -05:00
Brian S. Stephan 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
Brian S. Stephan 7feb90242d renaming 'irclib' dir to 'extlib' 2010-07-30 18:34:10 -05:00
Brian S. Stephan 262ee2e3e1 PEP 257ifying dr.botzo.py and Module.py 2010-07-30 13:34:51 -05:00
Brian S. Stephan e1fe0eb4ca do splitting in DrBotServerConnection.privmsg 2010-07-30 08:01:45 -05:00
Brian S. Stephan 88186e1425 slight documentation and whitespace for subclassing irclib.IRC, irclib.ServerConnection 2010-07-29 23:26:30 -05:00
Brian S. Stephan 9191f25052 load modules at startup based on config file, remove that item from TODO 2010-07-29 23:13:15 -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 a3da4f39c8 remove unnecessary stuff from dr.botzo.py import 2010-07-29 00:32:20 -05:00
Brian S. Stephan 91e535978f comment nitpicking and restyling 2010-07-29 00:04:01 -05:00
kad 02df2ca783 Cleanup code 2010-07-28 12:25:49 -06:00
kad 0c17196b32 Add some modelines and fix indentation, I hope. 2010-07-27 23:11:58 -06: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 19:29:28 -06:00
Brian S. Stephan c9c3b0e499 move irclib into its own subdirectory 2010-07-27 19:29:28 -06:00
Brian S. Stephan 74371727ed making comments more standard 2010-07-27 19:29:28 -06:00
Brian S. Stephan ea1b89540b add GPL notice to dr.botzo.py 2010-07-27 19:29:28 -06:00
kad 1c728b14bd Try to dynamically create modules 2010-07-26 21:46:48 -06:00
Brian S. Stephan 4f0908f873 move irclib into its own subdirectory 2010-07-26 22:36:07 -05:00
Brian S. Stephan 35b6545425 making comments more standard 2010-07-26 21:59:11 -05:00