89905ac771
Twitter: tweet_or_retweet_text -> _return_tweet_or_retweet_text
2011-01-19 19:26:28 -06:00
7c05f60ffd
Markov: implement a min_size, which tries to make a chain of at least min_size words.
...
note that this isn't guaranteed, if the chain is such that the
current tuple has nowhere to go but to the end of the line, then
it will follow it --- it doesn't try to go back and rebuilt a different
chain or anything.
2011-01-19 18:44:07 -06:00
ac0429569e
Markov: size -> max_size, since I'm going to try adding a min_size soon
2011-01-19 18:35:01 -06:00
176ca25c68
Markov: increase the default max length from 25 words to 100 words.
...
it's expected that, usually, the chain will have hit an end before this.
2011-01-19 18:32:15 -06:00
d592d3f3bb
Markov: regexes should only match start of line --- add ^
2011-01-19 10:20:20 -06:00
3283fac1ff
Markov: remove some debugging i forgot to clean out before the initial commit
2011-01-18 22:51:40 -06:00
8dd223f778
Markov: a module to implement a chatterbot via markov chains.
...
yeah, we have MegaHAL, but i can't find a good implementation in
python that actually works and is stable, so we'll implement a
simple thing ourselves. works pretty much like MegaHAL does, but
without the string corruption.
original code provided by ape, care of mike bloy
2011-01-18 22:30:59 -06:00
8f86b7484a
Storycraft: fix progress math
2011-01-09 22:36:56 -06:00
10cbe1944f
Storycraft: add a terse progress string to the output when messaging players.
...
this is so that people know when they should start wrapping their
story up.
2011-01-09 22:17:22 -06:00
e9c22d33f3
Storycraft: write completed story to disk via !storycraft export #
2011-01-09 21:41:23 -06:00
e39d55f03d
Storycraft: display how over the user went when writing their line, if they went over
2011-01-09 21:40:03 -06:00
2f001e274b
Storycraft: notify (via privmsg) a player who has had a game newly assigned to them, and show the line.
2011-01-09 13:50:16 -06:00
487ca2e862
Storycraft: display the number of logged lines when doing an in progress status
2011-01-09 12:30:55 -06:00
7ae2a75732
Storycraft: when picking a new random player in the middle of a game, avoid picking the same person as the last turn
2011-01-09 12:28:37 -06:00
b133b37d61
Storycraft: list games waiting for me.
...
shows games in progress where the current line is assigned to the queryer,
and games open (waiting for registrations) that the queryer started
2011-01-09 11:51:10 -06:00
26a510ff40
Storycraft: add 'list games my games', which is the open/in progress games the queryer is in
2011-01-09 11:32:09 -06:00
ce7d9e8010
Storycraft: allow listing of completed games
2011-01-09 11:16:36 -06:00
940ed57f2e
Storycraft: tell the master channel when someone joins a game
2011-01-09 11:13:06 -06:00
797f660a9e
Storycraft: don't flood the target with storycraft_listgames, display only ids if count > 5
2011-01-09 11:12:27 -06:00
fd22cb64d4
Storycraft: add command to show the assignee the line to reply to.
...
apparently at 3 AM i forgot to implement important features, because
this is pretty critical to the game actually being playable. let
the assignee, if the game is still open, get the text of the line
they are to reply to.
also display it, rather than the add line command, where appropriate.
2011-01-09 10:41:57 -06:00
8c1d98cb74
Storycraft: order by id in addition to time in _get_lines_for_game query
2011-01-09 10:39:08 -06:00
22d3ce44bf
Storycraft: trivial comment correction
2011-01-09 10:38:25 -06:00
656468f955
Storycraft: proper argument order in _update_line
2011-01-09 10:36:21 -06:00
95e7a243d1
tighten up the regexes since we only use integer IDs for operations.
...
i'd originally intended to use strings, too, but never decided on
if there should be a game name, or the commands should search
something, or what, so i'll just quit waffling and remove it. numbers
only for now.
2011-01-09 10:12:27 -06:00
90d38c1741
Storycraft - collaborative nonsense story writing
...
this module implements a game where players write a line in a story,
probably a nonsensical one, a couple lines at a time. once the player
who started the story has written something, the last line is
passed along to someone else in the game, who continues the story ---
or disregards the small bit of context entirely and writes their own
thing.
eventually you get a story like this:
line 1 by user 1
line 2 by user 1
line 3 by user 2 (who only read line 2)
line 4 by user 2
line 5 by user 3 (who only read line 4)
...
conceptually, that's the idea of the game. the code itself is still
a bit rough around the edges, but i can bang through a game by
myself. it needs some robustification, but it's fairly well
documented and the module does try to provide some clues to IRC while
you're playing.
config option explanations, more such options, etc. to come. critically
important is a way to get completed stories out of the bot, of course.
more to come, i'll shut up now and commit.
2011-01-09 03:27:12 -06:00
Mike Bloy
66a736b108
added help for the IrcAdmin module
2011-01-08 23:41:41 -06:00
Mike Bloy
d68487de95
added help for Karma module
2011-01-08 23:21:36 -06:00
Mike Bloy
07d3775842
added help text to the Help module
2011-01-08 22:47:51 -06:00
Mike Bloy
87088e67d1
attempt to ask the modules for help text
2011-01-08 22:32:18 -06:00
Mike Bloy
763f8906d7
Help module responds to commands
...
Responding to
!help
!help module
!help module [detail...] form
2011-01-08 22:02:04 -06:00
a2ac73325c
turns out we do indeed need modules/__init__.py, so add it back
...
it doesn't need to do anything special though, so it's blank ---
just the standard hint to the python module compiler
2011-01-08 09:39:05 -06:00
1664cf2de7
since the save command was saving both modules and config, call it !save, not !config save
2011-01-08 09:16:37 -06:00
a6c7b6b0b2
list loaded modules in DrBotIRC, display it via IrcAdmin
2011-01-08 01:22:31 -06:00
3e533890a1
IrcAdmin: following the last change to saving, have !save also call a new save_modules()
2011-01-08 00:49:10 -06:00
1e0de47d84
MegaHAL: we don't need to sync the brain in shutdown(), since we sync it in save()
2011-01-08 00:46:20 -06:00
07be2f3a85
MegaHAL: do add_global_handler in the right place, actually do remove_global_handler
2011-01-08 00:31:19 -06:00
36fcbde267
do a deep copy of the string being learned from, since mh_python is weird/corrupty
2011-01-08 00:26:18 -06:00
bed3f7ec23
use add_global_handler on pubmsg/privmsg to learn from IRC.
...
this rather than inside do(), which could internal commands and stuff
that probably counts as noise
2011-01-08 00:14:11 -06:00
d4062cbe99
oops. continue to learn messages in MegaHAL that we don't reply to
2011-01-07 23:12:06 -06:00
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
fc2814e57c
don't attach to pubmsg/privmsg events by default anymore.
...
this is possible because now the alias stuff in DrBotIRC calls
each module's do() on a pubmsg/privmsg.
this also gets rid of all the meta options (so remove them from
your config file!), and IrcAdmin now only needs to connect
to welcome.
2011-01-07 21:04:33 -06:00
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
efb92ddc83
reload should call irc.reload_module, not unload_module
2011-01-07 19:09:09 -06:00
d637983ae1
apparently ply doesn't like docstrings in its functions
2011-01-07 18:42:56 -06:00
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
3333fe125e
Revert "fix the cheap unicode escapes in GoogleTranslate"
...
unicode-escape appears to do bad things to hiragana and probably
all unicode characters that are not unicode escaped. ultimately
it seems that google's responses are not consistent.
back to the drawing board.
This reverts commit 40888869b0
.
2011-01-07 17:11:00 -06:00
02b3266b46
give MegaHAL priority 95 (which is low priority, which always confuses me)
2011-01-07 11:24:38 -06:00
b4f1c5facd
MegaHAL: docstring stuff
2011-01-07 11:23:46 -06:00
b7ce4b6dcc
add Alias at priority 1 (so that it is handled first)
2011-01-07 01:11:35 -06:00
de3f9d9ae7
provide a priority (default 50) to add_global_handler
2011-01-07 01:10:52 -06:00
8bbda8b575
if we add the module to the autoload list on a load, we should remove it on unload
2011-01-06 23:29:51 -06:00
a3d30daacb
given how we load modules now, we don't need modules/__init__.py
2011-01-06 23:27:52 -06:00
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
247719814e
magic 8-ball module.
...
this could have been done with Facts, but for people who aren't
loading that, here's an alternative
2011-01-06 23:08:33 -06:00
40888869b0
fix the cheap unicode escapes in GoogleTranslate
2011-01-06 22:53:21 -06:00
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
bd95764f9f
cleanup the sentence feedback
2011-01-06 22:12:19 -06:00
5293e8dc24
add support for listing one alias via list, which shows the value
2011-01-06 22:08:23 -06:00
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
ea0fd9d509
small but significant unload/reload changes.
...
IrcAdmin:
* have sub_unload_module() call the module's shutdown() before deleting stuff
* sub_unload_module() needs to delete the sys.modules entry too
* slightly more verbose output in sub_unload_module()
* sub_reload_module() now does a self.sub_unload_module() + self.sub_load_module()
Module:
* remove reload() --- modules must now safely handle shutdown
2011-01-06 19:54:16 -06:00
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
0878c8809d
implement a save() for modules, use it in MegaHAL to sync brain to disk
2011-01-06 00:28:50 -06:00
5c0323fc26
Merge branch 'master' of ayu.incorporeal.org:dr.botzo
2011-01-06 00:18:37 -06:00
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
157d1145ea
specify ellipses continuation as a python string
2011-01-05 09:34:19 -06:00
4241071b7e
print tweet id when printing tweets.
...
will be necessary if we ever implement any kind of reply-to-id replying
2011-01-03 00:31:23 -06:00
b748d43bbd
have SIGINT handler call modules' shutdown()
2010-12-24 13:46:48 -06:00
63a85fba3f
Merge remote branch 'origin/mjb/fix_init'
2010-12-24 13:27:33 -06:00
0e7e2bf50c
add tweet subcommand to twitter, to send tweets.
...
needs admin, until i figure out if i want more authentication for it
2010-12-24 13:19:50 -06:00
d9b85f4364
track whether or not the twitter module has been authenticated
2010-12-24 13:19:11 -06:00
41a5c43284
use the right signature for Module.reload()
2010-12-24 13:18:23 -06:00
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
0ff44e1a47
don't have megahal learn internal commands
2010-12-24 09:48:04 -06:00
9ed1586783
shouldn't need this unicode workaround anymore (fingers crossed)
2010-12-24 09:42:49 -06:00
c513a0bebc
extlib/megahal.py: don't crash when the input string ends in '
2010-12-23 10:01:11 -06:00
ae6eda2c6a
encode facts coming out of Facts to python string
2010-12-20 22:22:37 -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
107b754a0d
move recursion scan after alias setup, and do another after alias replace
2010-12-17 16:12:45 -06:00
1fe9575502
move recursion stuff out of Module.py and into modules/Alias.py
...
this comes with a recursion rewrite and simplification; it works
a bit more intuitively, now, but i still haven't figured out what
caused the bug that led me down this rabbit hole.
in any event, Alias now rules the roost when it comes to recursion,
which means it's a bit poorly named, but also means that there
won't (shouldn't) be multiple accidental runs for one output, caused
by multiple modules doing the recursion (despite only one really
having a legitimate reason to) --- a classic case of the intended
use of recursion (including the comment to only recurse when you
*know* the input is for you) being lost and forgotten with time
this also obsoletes meta.skip_recursion_scan. between this commit
and the last, people would be wise to revise their config files
2010-12-16 23:43:16 -06:00
bda1eb9560
add uppercase text transform
2010-12-16 20:28:26 -06:00
699f550ba3
change authentication to over IRC process
2010-12-16 20:15:49 -06:00
3ba38bd90d
it would help if i got the < vs > right
2010-12-16 15:44:51 -06:00
efafb95f5a
ability to look up tweets for a user, relative to the latest
2010-12-16 15:23:35 -06:00
57ddba744e
optionally print the source of the tweet in question
...
useful if you don't know it, such as if the tweet was specified
by id rather than by user
2010-12-16 15:22:34 -06:00
a18897fcde
print the native tweet of retweets (rather than the possibly-truncated one)
...
this now depends on a modified twitter.py, although i could probably
send my patch upstream
2010-12-16 13:04:58 -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
37a677946d
fetch more tweets in case the latest was a RT (which we are filtering)
...
comment about how i'm not really sure about this approach
2010-12-15 23:52:59 -06:00
7e4e6ab23f
look up most recent tweet by username
2010-12-15 23:31:26 -06:00
e4edc7f6f4
first bit of bot twitter functionality
2010-12-15 23:08:08 -06:00
ea0f795194
add unload method to IrcAdmin, which unloads a module
...
hopefully this all works right. i remove two known references
to the object, and then call a del for good measure, which i
think covers it?
2010-12-15 21:28:57 -06:00
2295f524d4
add load command to IrcAdmin, which (naturally) loads a module and adds it to the autoload list
2010-12-15 21:17:24 -06:00
467c72847a
clean up some IrcAdmin output, which i was using to test reloading
2010-12-15 20:58:13 -06:00
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
22615d7b9a
rewrite reload support, making it an IrcAdmin command
...
only lightly tested for the moment
2010-12-15 20:43:14 -06:00
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
e5934bccba
add echo module, which echos text. why i never implemented this, i don't know
2010-12-11 00:22:26 -06:00
e084c28113
handle potential newlines in output
2010-12-11 00:10:26 -06:00
977675c593
add base64 to text transformations
2010-12-10 23:59:49 -06:00
5a81f4d1fc
fix spaces in city name
2010-12-09 13:09:01 -06:00
2690c0208c
trivial formatting fix
2010-12-08 22:15:26 -06:00
1709df19ec
properly self.reply in last commit
2010-12-08 22:14:34 -06:00
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
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
4013a93dc9
Merge branch 'bloy-karma'
2010-12-08 22:00:39 -06:00
a19dcdb690
fix string concat thinko
2010-12-06 16:31:16 -06:00
a8562f71a0
slight code cleanup, add windchill calculation
2010-12-06 16:01:49 -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
f4dc667c77
dodge another unicode crash
2010-11-22 20:25:28 -06:00
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
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
12d5425644
vi modeline in Karma.py
2010-11-19 09:20:48 -06:00
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
8cc411956e
much more permissive karma regexes
2010-11-17 10:21:30 -06:00
9014e076bf
drop the timeout to 1 sec
2010-11-03 22:52:42 -05:00
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
c484dde5b8
Merge branch 'kad'
2010-11-01 22:12:51 -05:00
kad
e1d5d9f522
Fix negative modifier issue
2010-10-31 18:01:15 -05:00
0bcefc49b5
Merge branch 'kad'
2010-10-31 13:36:59 -05:00
kad
c2280aaf1e
Remove diceply.py
2010-10-31 12:14:18 -05:00
kad
4f56e40ca7
Use PLY to parse dice strings
2010-10-30 15:09:16 -05:00
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
b7f2b9bd0e
use re.search() rather than re.match() in a couple places
...
(search() looks for the regex anywhere in the string whereas
match() only looks for the regex starting from the beginning)
2010-10-29 00:30:02 -05:00
b5e71d677f
first cut at a database-driven fact storage module.
...
may still be a bit brittle
2010-10-29 00:00:55 -05:00
8fbd58e2c6
chmod -x modules/Karma.py
2010-10-28 20:56:59 -05:00
aabc8904ad
properly handle recursion, so that the alias actually works
2010-10-28 20:46:09 -05:00
0dfe8bcdd6
have karma module use the normal, non-alias-like command ('rank' rather than '!rank')
2010-10-28 20:15:48 -05:00
352b9e1830
more punctuation in the regex
2010-10-28 20:08:30 -05:00
5dda9ac1e5
change the format of the pi output a bit
2010-10-28 20:05:08 -05:00
aae4dfa062
remove a (hopefully) useless unicode() call
2010-10-27 22:48:52 -05:00
cb7044e64a
this encode('utf-8')/decode('utf-8') seems to unnecessary and accomplishes nothing?
...
still haven't figured out how to get around the whole character replace nonsense though
2010-10-27 22:09:59 -05:00
7c4125e099
properly use encode() to do the rot13 conversion, ignore conversion failures
2010-10-27 21:56:18 -05:00
1bc0dd0b2a
TextTransform module. right now it only does rot13
2010-10-27 19:57:18 -05:00
eefc41a6d7
last_insert_rowid() only makes sense for the current connection, so ORDER BY id DESC instead
2010-10-27 19:32:09 -05:00
2d8a86950c
remove unneeded ConfigParser
2010-10-27 19:31:43 -05:00
97893a3b7a
convert Pi.py to use sqlite backend
2010-10-27 18:02:26 -05:00
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
70b49ecbcc
whitespace nitpicking
2010-10-25 21:14:35 -05:00
3d65a6a158
Merge branch 'bloy-sqlite'
...
Resolved conflicts:
modules/Karma.py - re-added support for (long items)
2010-10-25 21:11:40 -05:00
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
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
b9c2be8c54
whitespace nitpicking
2010-10-25 20:50:59 -05:00
5a76a9866a
Merge branch 'bloy-sqlite'
2010-10-25 20:49:12 -05:00
5f6ced3066
add ' to karma matcher regex
2010-10-25 19:21:39 -05:00
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
2973d904f4
pythonic header
2010-10-25 18:44:28 -05:00
a4839fd35f
whitespace nitpickery
2010-10-25 18:37:30 -05:00
69c8922024
Merge branch 'bloy-master'
2010-10-25 18:31:28 -05:00
ebd89d35cc
(hopefully) properly catch/log URLError, IndexError
2010-10-25 18:23:25 -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
a45af7a0a7
Pi -> pi, fixing what I'm going to claim is a typo.
2010-10-20 11:57:31 -05:00
c3270ef3df
module to calculate pi over time, via the monte carlo method.
...
idea pinched from #linode.
2010-10-18 22:48:51 -05:00
95a27cc44b
read brainfile filename from config file, allow default
2010-10-09 20:37:15 -05:00
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
827d1b2c86
megahal library crashes if the text ends with ' for some reason, so work around it
2010-09-13 20:22:08 -05:00
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
d5c4750dd8
use proper pluralization, commas in countdown output
2010-09-08 21:39:56 -05:00
e6c9747dad
remove overload of on_pubmsg()
2010-09-08 20:44:09 -05:00
fd7834756b
add !alias list that displays the existing alias commands. limited utility, really.
2010-09-08 20:12:19 -05:00
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
14973388e5
remove pubmsg/privmsg overloading in Alias now that we have 'meta.skip_recursion_scan'.
...
also, the last commit's message should have referred to this meta option
instead of what it actually did. oops.
2010-09-08 19:40:16 -05:00
f3e9568fe3
create the array of arguments in all the methods that need them
2010-09-08 19:24:26 -05:00
6541e6a193
first attempt at using HTTP POST for translate
2010-09-08 19:07:01 -05:00
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
27ff7e257d
fix a bug that was getting the trailing semicolon wrong, and do it better anyway.
2010-09-05 10:44:59 -05:00
053c3f0ae6
properly call admin functions within do.
...
before this, recursion type stuff wasn't responded to properly because
do wasn't returning the methods' text
2010-09-04 12:26:50 -05:00
8c1c10a4bc
remove debugging print statement
2010-09-04 12:26:20 -05:00
92281151ff
don't display the comment twice, now that we print the entire roll string
2010-09-04 12:09:37 -05:00
a0fd33b070
only append the roller's nick once, at the end, if there is a reply
2010-09-04 12:08:13 -05:00
27b27ecb61
split roll string and properly ignore "roll" from roll attempt
2010-09-04 12:04:24 -05:00
5b44b66c4d
demand a roll prefix on the Dice module
2010-09-04 11:56:35 -05:00
b9ef46606d
don't output anything if the aliasified command is the same as the reply.
...
this indicates that none of the modules could actually do anything with that
text, so whatever happened probably didn't fire any modules (and if it did,
they didn't provide return text anyway)
2010-09-04 11:55:10 -05:00
b1e1254564
reloading MegaHAL.py seems broken somehow, so just avoid doing it
2010-09-04 11:49:18 -05:00
a5dbb27622
Alias module to turn text into other text.
...
mostly for sending commands to the bot without addressing the bot with
bot: (and potentially triggering MegaHAL) yet also without exposing
sensitive commands to the non-addressable mode (like wtf/quit). speak
the alias and the bot will run the looked-up text through the modules,
regardless of their addressable settings
2010-09-04 11:29:18 -05:00
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
4bf2d344fc
dice: only try sending something if we actually have something to say
2010-08-28 14:07:00 -05:00
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
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
9720dfe5bc
Revert "Generalize translation code in GoogleTranslate.py". Previous
...
three reverts to undo the recent stuff from kad's branch, which was
having problems with recursion
This reverts commit 1920a12759
.
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2010-08-01 19:31:09 -05:00
493521c3da
Revert "A few minor changes to previous GoogleTranslate commit"
...
This reverts commit 257562f0d0
.
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2010-08-01 19:27:44 -05:00
d4fc5e77eb
Revert "Remove commented code"
...
This reverts commit 9022159c87
.
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2010-08-01 19:27:44 -05:00
kad
9022159c87
Remove commented code
2010-08-01 19:02:55 -05:00
kad
257562f0d0
A few minor changes to previous GoogleTranslate commit
2010-08-01 18:57:10 -05:00
kad
6f2ae757be
Merge branch 'master' into kad
2010-08-01 18:39:58 -05:00
6fe2bb5fee
make trigger work with regexes
2010-08-01 12:22:59 -05:00
e13264fc3b
add method to remove metaoptions (debug, the new 'meta.pubmsg_needs_bot_prefix') from a list. provided for convenience
2010-08-01 12:13:38 -05:00
d590eede2a
Trigger module, to do simple output when seeing simple input. basic version works, but i should probably make this a regex
2010-08-01 12:03:03 -05:00
1ec197be95
establish a per-module option that specifies whether or not active commands to it need to be prefixed with the bot's name. doesn't help stuff like Seen's reimplementation of on_pubmsg, since it would want to do the tracking regardless of this option. also, work around this addition in the countdown module, so it doesn't show up in lists.
2010-08-01 11:55:14 -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
f739cb6114
url tracking via Urls module. partially complete the TODO, still not automatically tracking channel urls. also .gitignore *.urls files
2010-07-30 23:02:38 -05:00