Commit Graph

528 Commits

Author SHA1 Message Date
Brian S. Stephan 0878c8809d implement a save() for modules, use it in MegaHAL to sync brain to disk 2011-01-06 00:28:50 -06:00
Brian S. Stephan 5c0323fc26 Merge branch 'master' of ayu.incorporeal.org:dr.botzo 2011-01-06 00:18:37 -06:00
Brian S. Stephan d81350d995 remove megahal.py from EXTERNALS 2011-01-06 00:18:02 -06:00
Brian S. Stephan 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
Brian S. Stephan 157d1145ea specify ellipses continuation as a python string 2011-01-05 09:34:19 -06:00
Brian S. Stephan 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
Brian S. Stephan b748d43bbd have SIGINT handler call modules' shutdown() 2010-12-24 13:46:48 -06:00
Brian S. Stephan 63a85fba3f Merge remote branch 'origin/mjb/fix_init' 2010-12-24 13:27:33 -06:00
Brian S. Stephan 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
Brian S. Stephan d9b85f4364 track whether or not the twitter module has been authenticated 2010-12-24 13:19:11 -06:00
Brian S. Stephan 41a5c43284 use the right signature for Module.reload() 2010-12-24 13:18:23 -06:00
Brian S. Stephan 377d2145fa catch all exceptions around self.do, and log to console
as much as i find this uncouth, it is handy, and also it seems
that the megahal brain gets corrupted/unusable when an exception
isn't caught and the bot dies. this should cover most of the
cases
2010-12-24 13:16:09 -06:00
Brian S. Stephan 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
Brian S. Stephan cb54abf2b8 use protocol 2 for pickling, which may help disk size of the brain a bit 2010-12-24 10:36:57 -06:00
Brian S. Stephan 0ff44e1a47 don't have megahal learn internal commands 2010-12-24 09:48:04 -06:00
Brian S. Stephan 9ed1586783 shouldn't need this unicode workaround anymore (fingers crossed) 2010-12-24 09:42:49 -06:00
Brian S. Stephan c513a0bebc extlib/megahal.py: don't crash when the input string ends in ' 2010-12-23 10:01:11 -06:00
Brian S. Stephan 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
Brian S. Stephan 107b754a0d move recursion scan after alias setup, and do another after alias replace 2010-12-17 16:12:45 -06:00
Brian S. Stephan 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
Brian S. Stephan d18b2e49ff add 'meta.internal_only' option, defaulting to true
this allows for better control on recursion/alias type things, which
is an awful lot of what the bot does these days
2010-12-16 21:06:20 -06:00
Brian S. Stephan bda1eb9560 add uppercase text transform 2010-12-16 20:28:26 -06:00
Brian S. Stephan 699f550ba3 change authentication to over IRC process 2010-12-16 20:15:49 -06:00
Brian S. Stephan 3ba38bd90d it would help if i got the < vs > right 2010-12-16 15:44:51 -06:00
Brian S. Stephan efafb95f5a ability to look up tweets for a user, relative to the latest 2010-12-16 15:23:35 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan e2989b639c hack in support for retweets in the Status 2010-12-16 13:02:37 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 7e4e6ab23f look up most recent tweet by username 2010-12-15 23:31:26 -06:00
Brian S. Stephan e4edc7f6f4 first bit of bot twitter functionality 2010-12-15 23:08:08 -06:00
Brian S. Stephan bc13725f44 copy python-twitter 0.8 from google code until it is officially released and packaged 2010-12-15 23:07:02 -06:00
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 467c72847a clean up some IrcAdmin output, which i was using to test reloading 2010-12-15 20:58:13 -06:00
Brian S. Stephan 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
Brian S. Stephan 0db4dbb518 duh, actually call register_handlers after doing a module reload 2010-12-15 20:55:04 -06:00
Brian S. Stephan 7a9b68f2c4 remove unnecessary method, preferring register_handlers 2010-12-15 20:53:52 -06:00
Brian S. Stephan 22615d7b9a rewrite reload support, making it an IrcAdmin command
only lightly tested for the moment
2010-12-15 20:43:14 -06:00
Brian S. Stephan 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
Brian S. Stephan e5934bccba add echo module, which echos text. why i never implemented this, i don't know 2010-12-11 00:22:26 -06:00
Brian S. Stephan e084c28113 handle potential newlines in output 2010-12-11 00:10:26 -06:00
Brian S. Stephan 977675c593 add base64 to text transformations 2010-12-10 23:59:49 -06:00
Brian S. Stephan da9e4b3142 better method of loading modules --- don't import *, import each individually 2010-12-10 23:25:56 -06:00
Brian S. Stephan 5a81f4d1fc fix spaces in city name 2010-12-09 13:09:01 -06:00
Brian S. Stephan 914e86d567 don't try to privmsg (and then crash) if replystr is None 2010-12-08 22:18:46 -06:00
Brian S. Stephan 2690c0208c trivial formatting fix 2010-12-08 22:15:26 -06:00
Brian S. Stephan 1709df19ec properly self.reply in last commit 2010-12-08 22:14:34 -06:00