Commit Graph

256 Commits

Author SHA1 Message Date
713fb3e94a Seen: helps to actually import sqlite3 2011-02-25 23:09:41 -06:00
e020cdb476 Seen: convert to use sqlite database 2011-02-25 21:54:09 -06:00
67403971df Twitter: properly reverse the tweets list, remove it from the TODO 2011-02-25 21:10:54 -06:00
7a53aaa9a1 Markov: properly output unicode chains 2011-02-25 20:59:57 -06:00
87073d7fd3 Markov: cache the first word in markov chains
this eliminates the expensive database hit on every request for a line.
the cache is loaded when the module loads and learning new lines should
add the appropriate word to the list. seemed like a pretty good compromise
2011-02-24 21:06:29 -06:00
1712a7db53 Markov: use sqlite backend for brain
this keeps us from having the entire markov chain in memory and
having to do the pickling and so on. in many ways, this is a good
thing.

in one way, this is a bad thing. each line on irc will create a
__start1,__start2 item in the database, which means starting a
chain will be an expensive process. (approx 3 seconds, from irc
logs of 600,000 K lines). following selects run much faster, but
the first one is dog slow. a later commit should hopefully fix this.
2011-02-24 20:39:32 -06:00
28694ed82f chmod -x modules/Help.py 2011-02-23 19:40:06 -06:00
414514d3b2 Twitter: reverse the tweets list, to print in ascending order 2011-02-22 22:59:55 -06:00
bfe88f28cd Storycraft: make a couple more commands fit the 'game # whatever' format 2011-02-22 19:45:57 -06:00
578c2ea29f Karma: allow for karma/query on unicode strings 2011-02-20 16:13:00 -06:00
22b35bcb94 Storycraft: add storycraft_gamestatus in order to break out getting a game's status
this is primarily to use a consistent format - 'game X status' rather than 'status X'
2011-02-19 01:18:14 -06:00
3e63c2e458 since sending arbitrary text and replying now have very different goals, add Module.sendmsg
this just sends a privmsg to the specified target on the specified
connection. pretty straightforward. also, update the modules that
need it to use it.
2011-02-17 12:31:51 -06:00
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
64df118c65 move Twitter._unescape to Module._unencode_xml 2011-01-26 20:28:34 -06:00
28f450ab5d Markov: improve min_size by implementing min_search_tries
if the end of a chain has been reached via __end, but min_size
has not been satisfied, discard the last couple elements in the
chain and try again. use min_search_tries so we don't do this
forever.
2011-01-25 20:42:52 -06:00
7b4b86dc0d Markov: add support for requesting desired min/max size of a reply
note that since the min_size support is kind of crude at the moment,
this only partially works
2011-01-25 20:25:15 -06:00
157f1bf361 Twitter: add command for a twitter-native reply 2011-01-25 19:36:24 -06:00
c732466129 Merge branch 'master' of git.incorporeal.org:dr.botzo 2011-01-24 16:51:52 -06:00
2f3feb093d have !markov learn echo the text it learned, in case someone wants to chain it with other commands for some reason 2011-01-24 16:51:05 -06:00
4e8b60c201 Karma: add top to reportpattern 2011-01-20 14:50:51 -06:00
18fc614a4a assorted whitespace nitpicking 2011-01-20 14:15:10 -06:00
7601b025e1 Merge remote branch 'origin/mjb' 2011-01-20 14:08:39 -06:00
Mike Bloy
ce42bca43a add new help text for new karma command 2011-01-20 10:12:28 -06:00
Mike Bloy
2cc79b42a6 add a top karma givers report 2011-01-20 10:08:20 -06:00
5ec7ac7177 Twitter: unescape some xml entities that may show up in the input.
this should maybe be moved into DrBotIRC or something, it'll likely
be handy elsewhere.
2011-01-19 23:12:01 -06:00
a961180065 Twitter: support for polling the bot's timeline and mentions feeds
needs authentication. this adds a sqlite database, to track a couple
settings. one, since_id, tracks the last successful time this poll
happened, so it's pretty important you don't muck around with it.
default value is 0, so the first time this poll occurs, it may be a
bit spammy.
2011-01-19 22:56:49 -06:00
e88a934569 Twitter: cleanup/organize the code a bit 2011-01-19 19:44:04 -06:00
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