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
d92d60ec7a
don't try to be clever with the +-/-+ commands, since it wasn't doing what I wanted
...
and it wasn't the right thing to do anyway
2010-12-15 20:29:25 -06:00
Brian S. Stephan
2690c0208c
trivial formatting fix
2010-12-08 22:15:26 -06:00
Brian S. Stephan
1709df19ec
properly self.reply in last commit
2010-12-08 22:14:34 -06:00
Brian S. Stephan
53e2da7bd3
self.reply karma_modify stuff, add return strings from double functions
...
note that there's only something to reply with if there was an sqlite error
2010-12-08 22:08:56 -06:00
Brian S. Stephan
7fa9c1f9a0
modify the karma_modify header:
...
* remove parameters i never intended to be necessary for the function in the first place
* return a string, rather than doing the reply thing
2010-12-08 22:05:46 -06:00
Mike Bloy
9340c76361
remove trailing whitespace
2010-12-01 10:58:04 -06:00
Mike Bloy
b425895107
optimist/pessimist report
2010-11-25 13:05:23 -06:00
Mike Bloy
acee8752a5
highest and lowest karma report
2010-11-25 13:01:23 -06:00
Mike Bloy
30d49bcd5d
karma stat command
...
added ability to get stats on a particular users karma
2010-11-25 11:41:12 -06:00
Mike Bloy
a434c3738f
error reporting in karma_modify
...
the connection and replypath paramaters are required for graceful error reporting
2010-11-25 11:20:48 -06:00
Mike Bloy
647a2edb5c
thinking about new karma commands
2010-11-23 23:38:56 -06:00
Mike Bloy
120dcc9fda
slightly more anal silly karma handling
2010-11-23 21:45:47 -06:00
Brian S. Stephan
daa018c64b
handle silly +- syntax, which will do both an increment and a decrement
...
(this won't impact the overall rank, of course, but does create log
entries that may be interesting for later analysis
2010-11-19 09:33:37 -06:00
Brian S. Stephan
50e45b2a0d
move the karma logging into a separate method, since i'm about to reuse it in a new way
2010-11-19 09:26:49 -06:00
Brian S. Stephan
12d5425644
vi modeline in Karma.py
2010-11-19 09:20:48 -06:00
Brian S. Stephan
526d553220
require whitespace or end of line after increment/decrement
...
this is to avoid stuff like http://somegross/url--more/garbage as being
a decrement of http://somegross/url
2010-11-17 10:25:49 -06:00
Brian S. Stephan
8cc411956e
much more permissive karma regexes
2010-11-17 10:21:30 -06:00
Brian S. Stephan
694f051994
allow karma to happen anywhere in a sentence (rather than just the start), switch to re.search() throughout
2010-10-29 13:08:48 -05:00
Brian S. Stephan
8fbd58e2c6
chmod -x modules/Karma.py
2010-10-28 20:56:59 -05:00
Brian S. Stephan
aabc8904ad
properly handle recursion, so that the alias actually works
2010-10-28 20:46:09 -05:00
Brian S. Stephan
0dfe8bcdd6
have karma module use the normal, non-alias-like command ('rank' rather than '!rank')
2010-10-28 20:15:48 -05:00
Brian S. Stephan
352b9e1830
more punctuation in the regex
2010-10-28 20:08:30 -05:00
Brian S. Stephan
1d73deda1c
sqlite related stuff as part of making sqlite the canonical backend
...
* Module.py __init__ sets up sqlite db connection by default
* Module.py __init__ calls init_db() which is empty, expects subclasses to implement as necessary
* Module.py doesn't close sqlite connection by default
Changes call for a couple updates in Karma.py, namely implementing db_init
and excepting sqlite3.Error rather than closing the connection
2010-10-27 17:59:01 -05:00
Brian S. Stephan
70b49ecbcc
whitespace nitpicking
2010-10-25 21:14:35 -05:00
Brian S. Stephan
3d65a6a158
Merge branch 'bloy-sqlite'
...
Resolved conflicts:
modules/Karma.py - re-added support for (long items)
2010-10-25 21:11:40 -05:00
Brian S. Stephan
8cfeef2efd
Revert "Merge branch 'bloy-sqlite'" because i want to merge this the right way
...
This reverts commit 5a76a9866a
.
2010-10-25 21:06:01 -05:00
Brian S. Stephan
c1c29648d7
Revert "whitespace nitpicking" because I want to merge this the right way
...
This reverts commit b9c2be8c54
.
2010-10-25 21:05:33 -05:00
Brian S. Stephan
b9c2be8c54
whitespace nitpicking
2010-10-25 20:50:59 -05:00
Brian S. Stephan
5a76a9866a
Merge branch 'bloy-sqlite'
2010-10-25 20:49:12 -05:00
Brian S. Stephan
5f6ced3066
add ' to karma matcher regex
2010-10-25 19:21:39 -05:00
Brian S. Stephan
9a1086e855
added support for karma for things with spaces, by wrapping it in ()
...
e.g.: (this is one really long thing that i like)++
2010-10-25 19:11:17 -05:00
Brian S. Stephan
2973d904f4
pythonic header
2010-10-25 18:44:28 -05:00
Brian S. Stephan
a4839fd35f
whitespace nitpickery
2010-10-25 18:37:30 -05:00
Mike Bloy
84ba3107f0
include rank in karma output
2010-10-24 15:13:01 -05:00
Mike Bloy
98f07105bc
karma data store moved to sqlite
2010-10-24 15:13:00 -05:00
Mike Bloy
40ab270324
fixed rank trigger for karma
2010-10-24 14:57:23 -05:00
Mike Bloy
e557137f82
fix karma formatting
2010-10-24 09:37:43 -05:00
Mike Bloy
e453778791
clean up karma module
2010-10-24 09:36:15 -05:00
Mike Bloy
a64c83ce59
working karma module
2010-10-23 22:52:15 -05:00