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