Commit Graph

658 Commits

Author SHA1 Message Date
Brian S. Stephan a73aec8ff0 Markov: remove debugging noise that snuck in via 42d414a0a4 2011-05-01 10:11:04 -05:00
Brian S. Stephan 1945637752 Markov: add support for chatter targets, channels we log messages to or randomly speak in 2011-05-01 10:05:37 -05:00
Brian S. Stephan a61fb37394 Module: add convenience method to set the version for a module in the database 2011-05-01 09:36:37 -05:00
Brian S. Stephan 14f2a027fe Markov: preliminary support for the bot to conditionally shut it self up (and recover from that) 2011-04-30 15:43:59 -05:00
Brian S. Stephan 42d414a0a4 Markov: consolidate _reply_to_line and _reply into _generate_line 2011-04-30 15:37:16 -05:00
Brian S. Stephan aa6ea083fd remove reload support, since it was broken in the first place (somehow) 2011-04-27 22:49:04 -05:00
Brian S. Stephan be4763f6a5 DrBotIRC: fix an !alias add thinko with event handling ordering
before, !alias commands were handled via an on_pubmsg() in DrBotIRC,
which meant they happened (due to refactoring) after alias and
recursion scanning happened in a more low-level routine.

thus, if you were trying to add an alias that had recursion in it,
your alias would be the outcome of that recursion, not the command
to recurse. oops
2011-04-27 22:11:37 -05:00
Brian S. Stephan 9ec73c4aa6 Markov: this is kind of embarrassing. remove a duplicate index. 2011-04-27 21:38:52 -05:00
Brian S. Stephan 6070ddc950 Markov: when looking up the start-of-sentence chain, get one random one
when finding a key for (__start1,__start2), instead of fetcihng all
(which can be a lot, in chatty channels and/or over time), get the
max ID in the table, pick a random ID between 1,max, and pick the
first id >= to it, and use that. just as random, nowhere near as
intensive.
2011-04-23 21:24:23 -05:00
Brian S. Stephan 6ef7865dba Markov: remove unused _get_chain_beginnings 2011-04-23 20:59:26 -05:00
Brian S. Stephan 7f922dd2c9 Markov: remove the 'starts' dictionary 2011-04-23 16:27:07 -05:00
Brian S. Stephan 116251398e Markov: index on markov_chain(k1,k2) 2011-04-23 16:25:01 -05:00
Brian S. Stephan 305625044a Markov: track the context of said lines
a context is a meta-classification ('banter, 'secrets', whatever)
based on targets (channels or nicknames). when a line is being
learned from a known target, the chains are placed in that context.

this is for allowing one brain to have multiple personalities, in
a sense, for large networks or cases where there may be a more
sanitized set of channels and a couple channels where everyone lets
it rip. a later enhancement would have sentence creation choose from
context-less chains (and contexts matching the current target), but
i need to go back to the drawing board on that one a bit.

ramble ramble ramble
2011-04-23 16:07:32 -05:00
Brian S. Stephan 4e7c19a02a Twitter: use Module's timer support including proper shutdown 2011-04-23 12:58:35 -05:00
Brian S. Stephan 80f2ff469c Module: properly end timer threads by tracking when module's shutdown() was called 2011-04-23 12:07:30 -05:00
Brian S. Stephan 0c5fe348dc Module: add timer support to modules
modules that want to create a timer should implement timer_interval()
to return a non-zero value (the timer interval, in seconds) and
timer_do() (the method that does stuff)
2011-04-23 11:50:02 -05:00
Brian S. Stephan 5885983afd Markov: when learning lines, don't include the part direct addressing
e.g. if i say 'dr_botzo: hello dude', he only learns 'hello dude'.
this is mainly being done because the bot's name being in the brain
so many times was getting kind of silly, especially in channels that
have lots of conversations with the bot
2011-04-22 19:40:36 -05:00
Brian S. Stephan 69243ce1e5 Merge branch 'master' of ayu.incorporeal.org:dr.botzo 2011-04-22 19:25:04 -05:00
Brian S. Stephan 768fd1c072 BUGS: document !alias list wrong destination bug 2011-04-02 23:23:36 -05:00
Brian S. Stephan 9a4f8b019a Twitter: move timer reregistration up to the top of the timer routine
twitter will occasionally fail hard, when it was doing so this
check for updates wasn't reregistering, making the bot stop
checking eventually
2011-03-21 18:23:59 -05:00
Brian S. Stephan 5913a95165 Markov: append a stop if we have nothing to append from a chain
somehow a chain led us down a path where there are no values for
the keys in the chain. if that happens, just abort.

i'm not quite sure how this could happen
2011-03-17 17:24:11 -05:00
Brian S. Stephan 2b8f0d2843 Markov: don't crash when learning a sentence that's only whitespace 2011-03-14 13:14:56 -05:00
Brian S. Stephan 61f960e0b5 TODO: handle disconnects 2011-03-03 23:16:01 -06:00
Brian S. Stephan c17623bcf6 Karma: in the element regex, match ()ful version before ()less version
the motivation here is doing (foo)++ would match \S+ first, adding
(foo) to the karma database (rather than foo, which is probably what
the user meant)
2011-03-02 16:17:59 -06:00
Brian S. Stephan 250dd6c4b0 Merge branch 'master' of git.incorporeal.org:dr.botzo 2011-02-26 19:10:26 -06:00
Brian S. Stephan cdb7a58240 Storycraft: attempt at handling unicode properly 2011-02-26 19:10:12 -06:00
Brian S. Stephan 87cc1ce15c Merge branch 'master' of ayu.incorporeal.org:dr.botzo 2011-02-26 19:08:36 -06:00
Brian S. Stephan e78e6faad8 Storycraft: update usage hints to provide the proper commands 2011-02-26 19:07:16 -06:00
Brian S. Stephan 56bd5a687b Seen: unicode safety 2011-02-25 23:11:04 -06:00
Brian S. Stephan 713fb3e94a Seen: helps to actually import sqlite3 2011-02-25 23:09:41 -06:00
Brian S. Stephan e020cdb476 Seen: convert to use sqlite database 2011-02-25 21:54:09 -06:00
Brian S. Stephan 67403971df Twitter: properly reverse the tweets list, remove it from the TODO 2011-02-25 21:10:54 -06:00
Brian S. Stephan 7a53aaa9a1 Markov: properly output unicode chains 2011-02-25 20:59:57 -06:00
Brian S. Stephan 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
Brian S. Stephan 3d6ede5155 script to take a file of lines and create sqlite markov chains 2011-02-24 21:04:28 -06:00
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