8c1ffc54ba 
							
						 
					 
					
						
						
							
							Markov: drop the max id stuff, get a bunch of chains and pick one randomly. cooler this way.  
						
						
						
						
					 
					
						2011-10-21 17:01:09 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							e3ef3f48dc 
							
						 
					 
					
						
						
							
							Markov: add support for temporarily disabling chatter by supplying a negative chance  
						
						
						
						
					 
					
						2011-10-21 16:59:57 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							78f7614987 
							
						 
					 
					
						
						
							
							Module: it's come to this. bump the default sqlite connection timeout to 60 sec  
						
						
						
						
					 
					
						2011-10-18 00:48:46 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							b82dd382ee 
							
						 
					 
					
						
						
							
							DrBotIRC: swallow the rare exception that trickles up this far  
						
						
						
						
					 
					
						2011-10-18 00:48:11 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							d4f7941b7b 
							
						 
					 
					
						
						
							
							TODO: logging module  
						
						
						
						
					 
					
						2011-10-18 00:41:15 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							cda1d43606 
							
						 
					 
					
						
						
							
							Markov: index on (v, context) and other enhancements for the last commit  
						
						... 
						
						
						
						reduce some infinite loop possibilities, and add an index with the old <= id trick
to speed up the searching for backwards chains 
						
						
					 
					
						2011-10-16 21:13:27 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							42962bc48d 
							
						 
					 
					
						
						
							
							Markov: add support for starting in the middle of a chain and working backwards  
						
						... 
						
						
						
						this only makes sense if we have a target word set, which we usually do.
start with the target word and go backwords, finding k2s that lead to it
(and that lead to that k2, and so on) until we get to the start-of-chain
value, when we know we're done working backwards. then resume the normal
appending logic
probably needs some work, probably a bit slow on huge databases. analysis
pending, but this appears to work 
						
						
					 
					
						2011-10-16 20:19:51 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							ad93ea28ec 
							
						 
					 
					
						
						
							
							Dice: fix display of multi-run rolls (e.g. 6#d20)  
						
						
						
						
					 
					
						2011-10-14 14:22:56 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							86e6cd3db0 
							
						 
					 
					
						
						
							
							Dice: change the output format so it's a bit more readable  
						
						
						
						
					 
					
						2011-10-13 21:08:09 -05:00 
						 
				 
			
				
					
						
							
							
								kad 
							
						 
					 
					
						
						
						
						
							
						
						
							93761df5ed 
							
						 
					 
					
						
						
							
							Allow spaces after ; for separated rolls  
						
						
						
						
					 
					
						2011-10-13 20:30:59 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							50fbbbfedd 
							
						 
					 
					
						
						
							
							Markov.py: tweaking the shut up check, this has been pretty good for a while  
						
						
						
						
					 
					
						2011-09-20 01:20:27 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							70e1ee017f 
							
						 
					 
					
						
						
							
							make drbotzo_modules.module a primary key so that we can use INSERT OR REPLACE INTO  
						
						... 
						
						
						
						WARNING! if you have an existing drbotzo_modules, you MUST RECREATE IT
WITH THE PRIMARY KEY. things will be wonky without it.
easiest way is to (by hand) create drbotzo_modules_temp as shown in the code,
INSERT INTO drbotzo_modules_temp SELECT * FROM drbotzo_modules, DROP the old
table, and ALTER TABLE RENAME TO the new one.
again, if you don't do this, newer modules will do all sorts of crazy
things, namely trying to create tables that already exist (because they have
multiple, differing values in drbotzo_modules) 
						
						
					 
					
						2011-07-26 18:32:06 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							9ecd66f94a 
							
						 
					 
					
						
						
							
							Module: upsert drbotzo_modules  
						
						
						
						
					 
					
						2011-07-06 21:51:30 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							4566d1734e 
							
						 
					 
					
						
						
							
							change the default sqlite timeout to 30 seconds  
						
						... 
						
						
						
						this should make the bot wait longer for table locks, assuming i
read the docs right 
						
						
					 
					
						2011-07-01 18:42:49 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							a51f0cb54c 
							
						 
					 
					
						
						
							
							Markov: refer to the actual target from a chatter target when shutting up  
						
						
						
						
					 
					
						2011-07-01 18:42:04 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							9abdc98487 
							
						 
					 
					
						
						
							
							Twitter: catch ValueError  
						
						
						
						
					 
					
						2011-06-27 20:17:30 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							678350fe5d 
							
						 
					 
					
						
						
							
							Markov: trivial change to allow for more advanced randomness later  
						
						
						
						
					 
					
						2011-06-22 19:00:01 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							9745cfc9be 
							
						 
					 
					
						
						
							
							Twitter: catch ValueError if the provided index isn't a number at all  
						
						
						
						
					 
					
						2011-06-21 17:24:31 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							ad4d75f724 
							
						 
					 
					
						
						
							
							Module: move REGEXP definition to every get_db() call  
						
						... 
						
						
						
						also remove some self.conn stuff that no one used anymore 
						
						
					 
					
						2011-06-21 17:22:24 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							7220025f0a 
							
						 
					 
					
						
						
							
							Markov: randomly say something to a list of approved channels  
						
						... 
						
						
						
						check interval is every 10 minutes, rows in markov_chatter_target
have a 1 in chance chance of leading to a line being generated,
every 10 minutes. (so an interval of 144 = 10 min * 6 * 24 = one line
per day, on average) 
						
						
					 
					
						2011-06-20 22:49:25 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							1e87fe59d8 
							
						 
					 
					
						
						
							
							even more close connections from get_db()  
						
						
						
						
					 
					
						2011-06-20 22:34:27 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							097077174b 
							
						 
					 
					
						
						
							
							close connections from get_db()  
						
						
						
						
					 
					
						2011-06-20 22:20:41 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							c08e7cabc0 
							
						 
					 
					
						
						
							
							Module.py: make get_db() threadsafe by having it create a new connection every time  
						
						
						
						
					 
					
						2011-06-20 22:08:49 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							152ef2a1ad 
							
						 
					 
					
						
						
							
							Module: remove the timer stuff, since individual modules can do this better themselves  
						
						... 
						
						
						
						Markov, Twitter: switch to forking a thread ourselves, and check every
second whether or not to quit. this is the "better" part above, as
now we can instantly quit the thread rather than waiting for all
the timers to fire and expire 
						
						
					 
					
						2011-06-20 21:18:55 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							c7846e415a 
							
						 
					 
					
						
						
							
							IrcAdmin: don't crash by trying to tell #chan that you just left #chan  
						
						
						
						
					 
					
						2011-06-20 20:27:20 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							75ba29739c 
							
						 
					 
					
						
						
							
							don't treat the string 'debug' as an alias from the config file  
						
						... 
						
						
						
						stuff like '!echo debug' would result in 'false'. oops 
						
						
					 
					
						2011-06-20 20:05:03 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							111b068ed4 
							
						 
					 
					
						
						
							
							Dice: trivial whitespace cleanup, merging last two commits from kad  
						
						
						
						
					 
					
						2011-06-20 19:32:17 -05:00 
						 
				 
			
				
					
						
							
							
								kad 
							
						 
					 
					
						
						
						
						
							
						
						
							35df9f9425 
							
						 
					 
					
						
						
							
							Change output for selection rolls. Output of die rolls is no longer sorted.  
						
						
						
						
					 
					
						2011-06-20 15:48:24 -06:00 
						 
				 
			
				
					
						
							
							
								kad 
							
						 
					 
					
						
						
						
						
							
						
						
							a767b3d6e2 
							
						 
					 
					
						
						
							
							Fix trying to roll a zero-sided die error  
						
						
						
						
					 
					
						2011-06-20 15:45:08 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							c7b7e6e3ad 
							
						 
					 
					
						
						
							
							Seen: don't track seen data for stuff without a location  
						
						... 
						
						
						
						like the last commit, this happens on [subcommands] 
						
						
					 
					
						2011-06-16 21:26:13 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							df3de56c4c 
							
						 
					 
					
						
						
							
							Markov: don't add chains if the context is null  
						
						... 
						
						
						
						that should only be possible on non-pub/privmsgs, or if there
is a [subcommand] being analyzed. in any event, don't learn it. 
						
						
					 
					
						2011-06-16 21:25:22 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							74c03cff88 
							
						 
					 
					
						
						
							
							update markov chain import script for always using a context, specified on command line  
						
						... 
						
						
						
						also read stdin rather than a file for lines 
						
						
					 
					
						2011-06-15 20:40:24 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							a8031909b4 
							
						 
					 
					
						
						
							
							Markov: bite the bullet and make each markov chain automatically assigned a context (channel/query)  
						
						... 
						
						
						
						still kind of testing this, but i think it's easiest 
						
						
					 
					
						2011-06-15 12:29:18 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							476bd92010 
							
						 
					 
					
						
						
							
							Seen: per-channel (or privmsg speaker, i suppose) seen data  
						
						... 
						
						
						
						now mean words in one channel aren't leaked via !seen in another 
						
						
					 
					
						2011-06-15 11:07:32 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							fe305f4388 
							
						 
					 
					
						
						
							
							remove documenting a BUG about Module.get_db() not being thread-safe  
						
						... 
						
						
						
						this is still true, but Twitter and Markov work around it suitably 
						
						
					 
					
						2011-06-14 22:42:50 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							1a69610785 
							
						 
					 
					
						
						
							
							Alias: fix ^!alias$ == crash bug  
						
						
						
						
					 
					
						2011-06-14 22:40:45 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							a0588869f3 
							
						 
					 
					
						
						
							
							Markov: add selecting by context, in order to segregate chains by channel  
						
						... 
						
						
						
						adding chains by context has existed for a while, this should allow for
querying for chains with null context or the current context. lightly
tested 
						
						
					 
					
						2011-06-14 22:10:57 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							02e77f3aed 
							
						 
					 
					
						
						
							
							Karma: make karma case insensitive, by popular request  
						
						
						
						
					 
					
						2011-06-14 21:22:56 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							57be7f8026 
							
						 
					 
					
						
						
							
							Markov: remove some cruft that is now obsolete  
						
						
						
						
					 
					
						2011-06-14 21:08:01 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							45af15a1ef 
							
						 
					 
					
						
						
							
							document more BUGS i'll fix one day  
						
						
						
						
					 
					
						2011-06-02 15:24:38 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							90be2d1855 
							
						 
					 
					
						
						
							
							Markov: trying a simpler form of shut up check  
						
						
						
						
					 
					
						2011-05-03 22:13:49 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							c55852129a 
							
						 
					 
					
						
						
							
							Twitter: Markov used our "need to create our own db object" logic and then improved it.  
						
						... 
						
						
						
						most importantly, don't clobber the first thread's db instances 
						
						
					 
					
						2011-05-01 10:42:24 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							5e8e93beba 
							
						 
					 
					
						
						
							
							Markov: clean up the whole "need to create our own db object" thing  
						
						
						
						
					 
					
						2011-05-01 10:41:59 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							03d0d6bc2d 
							
						 
					 
					
						
						
							
							Markov: shut up if we've been too chatty in too short a period of time.  
						
						... 
						
						
						
						track all lines seen and all lines said by Markov. every 30 seconds,
if there have been more than 20 such lines, and Markov is responsible
for roughly half of them, then shut up for 30 seconds, because the
bot probably got stuck talking to another bot.
this should mean that such a reply infinite loop can't happen for
more than a minute.
i'm not entirely sure on the 30 sec/20 lines ratio. this may need
tuning. 
						
						
					 
					
						2011-05-01 10:38:46 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							7692d295f6 
							
						 
					 
					
						
						
							
							Markov: don't clobber existing database objects in the forked thread  
						
						
						
						
					 
					
						2011-05-01 10:26:06 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							a73aec8ff0 
							
						 
					 
					
						
						
							
							Markov: remove debugging noise that snuck in via 42d414a0a4f7219e45a0a9e3e56f3c2e94bd86f9  
						
						
						
						
					 
					
						2011-05-01 10:11:04 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							1945637752 
							
						 
					 
					
						
						
							
							Markov: add support for chatter targets, channels we log messages to or randomly speak in  
						
						
						
						
					 
					
						2011-05-01 10:05:37 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							a61fb37394 
							
						 
					 
					
						
						
							
							Module: add convenience method to set the version for a module in the database  
						
						
						
						
					 
					
						2011-05-01 09:36:37 -05:00 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
					 
					
						
						
						
						
							
						
						
							42d414a0a4 
							
						 
					 
					
						
						
							
							Markov: consolidate _reply_to_line and _reply into _generate_line  
						
						
						
						
					 
					
						2011-04-30 15:37:16 -05:00