Commit Graph

623 Commits

Author SHA1 Message Date
Brian S. Stephan 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
Brian S. Stephan 28694ed82f chmod -x modules/Help.py 2011-02-23 19:40:06 -06:00
Brian S. Stephan 414514d3b2 Twitter: reverse the tweets list, to print in ascending order 2011-02-22 22:59:55 -06:00
Brian S. Stephan 902b7755e5 Web (Storycraft): since the lines array includes the prompt for the next line (''), subtract 1 when drawing the progress bar 2011-02-22 22:55:13 -06:00
Brian S. Stephan cdf6b3db95 Web (Storycraft): pop h3 titles on the sections of the game summaries 2011-02-22 20:22:20 -06:00
Brian S. Stephan bfe88f28cd Storycraft: make a couple more commands fit the 'game # whatever' format 2011-02-22 19:45:57 -06:00
Brian S. Stephan 865a39204f Web (Storycraft): format the story a bit by adding <p> tags, for readability 2011-02-20 19:35:37 -06:00
Brian S. Stephan 07b76f3e5e Web (Storycraft): change the game ID block to show dates, not the creator 2011-02-20 18:43:59 -06:00
Brian S. Stephan 9240631775 Web (Storycraft): font size tweaks 2011-02-20 18:38:47 -06:00
Brian S. Stephan 0866651af1 Web (Storycraft): use for ... empty 2011-02-20 18:05:47 -06:00
Brian S. Stephan 2f5bdf5d1f Web (Karma): add detail page to see the deltas of one key
this could be a graph, eventually, with more time to hack through
something like YUI.
http://developer.yahoo.com/yui/examples/charts/charts-styles_clean.html
is a solid example
2011-02-20 17:08:17 -06:00
Brian S. Stephan 497d9288e7 Web (Storycraft): include storycraft # in <title> 2011-02-20 16:28:21 -06:00
Brian S. Stephan 578c2ea29f Karma: allow for karma/query on unicode strings 2011-02-20 16:13:00 -06:00
Brian S. Stephan ca0ee4ce41 Web: autoescape in all templates 2011-02-20 13:45:39 -06:00
Brian S. Stephan d2a6267d95 Web (Storycraft): show a bar indicating the progress of the detailed game 2011-02-20 13:11:49 -06:00
Brian S. Stephan 576cea4c0a Web (Storycraft): only do fancy first-letter tricks on actual stories, not the message about how there isn't a story to show yet. 2011-02-20 11:42:33 -06:00
Brian S. Stephan 632a3f5e99 Web: add an app for storycraft, mainly for viewing completed games at the moment 2011-02-20 11:32:17 -06:00
Brian S. Stephan 91b276ece5 TODO: half-thought plan to move all bot config to the database 2011-02-19 14:16:29 -06:00
Brian S. Stephan faef1cb802 Web: add a root index page
would like to display some of the bot variables, but the base config
needs to be added to the database first, which isn't done yet
2011-02-19 14:13:11 -06:00
Brian S. Stephan 378029321c Web: move botweb to web 2011-02-19 13:22:36 -06:00
Brian S. Stephan 55ad48c805 Web: slight environment cleanup, wsgi app 2011-02-19 13:18:31 -06:00
Brian S. Stephan c9046ff587 Merge remote branch 'origin/mjb.web' 2011-02-19 10:47:31 -06:00
Brian S. Stephan 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
Brian S. Stephan de04fd0d85 add TODO for fixing Twitter poll output order 2011-02-19 01:17:19 -06:00
Brian S. Stephan 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
Brian S. Stephan 752515a628 put check for pubmsg vs. privmsg in Module.reply() rather than a method where it achieved nothing 2011-02-17 12:07:41 -06:00
Brian S. Stephan fca716af9e allow for multiple modules to respond to recursion text 2011-02-17 12:01:32 -06:00
Brian S. Stephan f4d69c90d4 Alias: don't crash when doing alias info output because i forgot to update the reply calls. 2011-02-17 10:07:29 -06:00
Brian S. Stephan 04c5a641d1 Alias: ignore case in alias search 2011-02-17 09:38:41 -06:00
Brian S. Stephan 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
Brian S. Stephan 64df118c65 move Twitter._unescape to Module._unencode_xml 2011-01-26 20:28:34 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 157f1bf361 Twitter: add command for a twitter-native reply 2011-01-25 19:36:24 -06:00
Brian S. Stephan 1aba7c904d Alias: convert to use database 2011-01-24 17:01:32 -06:00
Brian S. Stephan c732466129 Merge branch 'master' of git.incorporeal.org:dr.botzo 2011-01-24 16:51:52 -06:00
Brian S. Stephan 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
Brian S. Stephan 4e8b60c201 Karma: add top to reportpattern 2011-01-20 14:50:51 -06:00
Brian S. Stephan 18fc614a4a assorted whitespace nitpicking 2011-01-20 14:15:10 -06:00
Brian S. Stephan 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
Brian S. Stephan a0a5bdec1c document moving Twitter's _unencode somewhere more appropriate 2011-01-19 23:24:30 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan cac9afd33e document sqlite/threads bug 2011-01-19 20:59:24 -06:00
Brian S. Stephan e88a934569 Twitter: cleanup/organize the code a bit 2011-01-19 19:44:04 -06:00
Brian S. Stephan 89905ac771 Twitter: tweet_or_retweet_text -> _return_tweet_or_retweet_text 2011-01-19 19:26:28 -06:00
Brian S. Stephan 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
Brian S. Stephan ac0429569e Markov: size -> max_size, since I'm going to try adding a min_size soon 2011-01-19 18:35:01 -06:00