Commit Graph

206 Commits

Author SHA1 Message Date
Brian S. Stephan dab41fa7d3 pad the bottom of pages' content 2016-03-30 18:06:44 -05:00
Brian S. Stephan 50f2b12c18 only build history once in karma graph, do history 2016-03-30 18:04:19 -05:00
Brian S. Stephan 08da8ea9f3 tweak karma graph output for many data points
if there's a ton of data points, the graph starts looking real gross,
so do a couple things to make the display of that a bit simpler so
there's less noise and distracting lines and whatnot
2016-03-30 17:57:00 -05:00
Brian S. Stephan 3e9302c89c don't display dots on the karma graph 2016-03-30 17:26:59 -05:00
Brian S. Stephan 03047c458f add an initial point to the karma key graph 2016-03-30 17:20:33 -05:00
Brian S. Stephan 28002db80b tweak the karma graph colors a bit 2016-03-30 17:19:06 -05:00
Brian S. Stephan 6fad9202ca add karma graphs view to the django site
pretty simplistic for the moment, it will become more robust later (TM)
2016-03-30 17:08:01 -05:00
Brian S. Stephan 03b90fe50a add KarmaKey.history()
calculates the value of the score at every point in the score's history.
might be slow, unsure yet
2016-03-30 17:06:12 -05:00
Brian S. Stephan 33bf61712e more bootstrap config stuff
these will be necessary for other jquery things in a moment
2016-03-30 17:05:26 -05:00
Brian S. Stephan 85f9ae7d4d convert the very basic UI we had to bootstrap 2016-03-30 16:00:49 -05:00
Brian S. Stephan 5225d2bd6b add django-registration-redux and use some of it
for the moment this is for the password change url used in the auth
dropdown, and a better login page, but this might become other stuff
eventually too. the signup page exists and is linked to, even if i don't
have a great reason for this to exist

bunch of templates added now to support the intentional and
unintentional stuff
2016-03-30 15:36:56 -05:00
Brian S. Stephan e52f4c915f prospector - 'log' okay name, analyze docstrings 2016-03-02 21:43:21 -06:00
Brian S. Stephan 2cee918fd9 twitter: reverse the mentions list before printing 2016-01-26 23:29:26 -06:00
Brian S. Stephan 9d5b9e070b twitter: start/stop mention poll thread via irc
includes a migration for a new permission for this, naturally. with
this, the poll thread can be started and actually do stuff
2016-01-26 23:14:42 -06:00
Brian S. Stephan 3b78e9b894 twitter: method for polling mentions timeline
not stitched together in this commit, so it'll work but it won't be
started
2016-01-26 00:39:51 -06:00
Brian S. Stephan 6cbf5f3d96 twitter: pull the tweet reply method into two
_return_tweet_or_retweet_text used to both determine the proper tweet
text and bot.reply() with it to the provided event. if we're not
reacting to an irc event, this obviously won't work, so this pulls the
method into two things so that we can use the string formatting code
without necessary needing an event
2016-01-26 00:08:46 -06:00
Brian S. Stephan e8e42cc580 twitter: replace since_id with mentions_since_id
we'll want to treat the since_ids for mentions and (theoretical)
timelines differently, i think, so might as well just set up the split
out field now
2016-01-24 18:46:06 -06:00
Brian S. Stephan 352ce81bc9 twitter: add field for mentions output channel
this removes an old, general field, which was once used for multiple
things, but we should break apart its functional usage and also just
refer to our IrcChannel object anyway

this is the easy half of issue #3
2016-01-24 17:50:46 -06:00
Brian S. Stephan e25b3aca9d twitter: don't append colon to nick when replying
just a style thing, nbd
2016-01-17 12:37:23 -06:00
Brian S. Stephan 57588afbe6 dispatch: wrap exceptions in str() before format() 2016-01-17 12:11:00 -06:00
Brian S. Stephan b09c20e910 twitter: wrap exceptions in str() before format()
this might also do something about #1, considering i'm also just doing
blanket except Exception:s now. fingers crossed
2016-01-17 12:04:34 -06:00
Brian S. Stephan 7a1c024d69 dispatch: write message to file properly in py3 2016-01-17 11:39:43 -06:00
Brian S. Stephan 007f9bdbc7 twitter: don't re-encode replyee name
this appears to have been whan was causing replying via twitter to fail.
let's test something while we're here:

fixes #2
2016-01-17 11:36:10 -06:00
Brian S. Stephan 6fe6797281 ircbot: implement !reload for plugins
in addition to being a convenient unload plugin, load plugin, this also
uses importlib.reload() to kick the interpreter to reload changed code
inside the plugin's package, if the user requests to reload the entire
package. this seems safe so far

(famous last words)
2016-01-17 10:56:39 -06:00
Brian S. Stephan 0ba889bf75 ircbot: _unload_plugin doesn't need connection 2016-01-17 10:52:25 -06:00
Brian S. Stephan 97c18a2459 ircbot: provide feedback option to _plugin_unload 2016-01-17 09:49:55 -06:00
Brian S. Stephan 10071f9094 ircbot: add load/unload plugin documentation 2016-01-17 09:49:30 -06:00
Brian S. Stephan 676f479d52 ircbot: add some debug logging in plugin (un)load 2016-01-17 09:21:29 -06:00
Brian S. Stephan 4c949ee6f3 ircbot: don't unload just one plugin of path
if we somehow got multiple plugins of the same path loaded, unload them
all when unloading, not just the first one we find
2016-01-17 09:20:06 -06:00
Brian S. Stephan 310c2aa28d markov: fake a __stop if a k1,k2 has no v
this shouldn't have happened, but i'm guessing some previous crash put
some buggy data into my database, so let's just be careful and do this.
a k1,k2 could have had any value for v, but not knowing what else to do
in this corner case, we'll just use a stop and let the caller decide
if they want to keep going
2016-01-16 23:41:46 -06:00
Brian S. Stephan a243b65d1d ircbot: new auto-migration, either django or py3 2016-01-16 19:57:11 -06:00
Brian S. Stephan b14152d8d5 dispatch: new auto-migration, either django or py3 2016-01-16 19:56:14 -06:00
Brian S. Stephan a314809671 weather: use requests library over urllib/json 2016-01-16 19:39:33 -06:00
Brian S. Stephan 90d20dfe75 transform: use new py3 base64 API 2016-01-16 19:37:24 -06:00
Brian S. Stephan 59c593f60b transform: use codecs library for rot13 2016-01-16 19:36:51 -06:00
Brian S. Stephan c3c54b9f10 ircbot: use % formatting in some debugging 2016-01-16 19:36:10 -06:00
Brian S. Stephan cdde966733 ircbot: properly output exception msg to string 2016-01-16 19:34:06 -06:00
Brian S. Stephan 570a4e1962 twitter: don't re-encode response as utf-8 2016-01-16 19:33:03 -06:00
Brian S. Stephan 47a1352a0a change __unicode__()s to __str__()s 2016-01-16 18:21:46 -06:00
Brian S. Stephan 9112ad0ae7 convert the project via 2to3 2016-01-16 18:02:17 -06:00
Brian S. Stephan f513b241d2 ircbot: force lowercase IrcChannel channel name 2015-09-17 22:55:25 -05:00
Brian S. Stephan d9c39d3db9 markov: better context/target creation ex handling 2015-09-17 22:35:23 -05:00
Brian S. Stephan 4f17234a0a markov: force the target/context to lowercase 2015-09-17 22:35:04 -05:00
Brian S. Stephan e8d57b29b2 irclib.bot: don't del sys.modules[badname]
this makes no sense to do on ImportError since that's probably why we
got here. testing, not 100% sure this is right
2015-09-17 22:23:36 -05:00
Brian S. Stephan 91594117bc remove deprecated TEMPLATE_DIRS setting 2015-09-17 22:23:14 -05:00
Brian S. Stephan 505dc8799c markov: configure what channels to learn from 2015-09-17 22:22:59 -05:00
Brian S. Stephan 91bbabec67 facts: get rid of the soap stuff
interesting, but i don't really care to use it ever, so deleted
2015-09-17 21:56:52 -05:00
Brian S. Stephan 8504a2556d facts: trivial comment cleanups 2015-09-16 16:57:12 -05:00
Brian S. Stephan b9b626d2ef remove useless import 2015-08-14 16:55:02 -05:00
Brian S. Stephan 425bf64baa facts: proof of concept grade SOAP WS
mostly just to prove to myself that i can use pysimplesoap and be kinda
pleased with the results
2015-08-14 16:54:31 -05:00
Brian S. Stephan 68cf0f8816 facts: don't require nickmask in admin form 2015-08-14 16:53:37 -05:00
Brian S. Stephan f18569b636 enable sites framework, useful for some SOAP stuff 2015-08-14 16:52:57 -05:00
Brian S. Stephan 4abcef58c1 karma: ignore commands or chatter separately 2015-07-11 08:12:25 -05:00
Brian S. Stephan bf0445149b twitter: handle twitter API errors better
i think i need to make this client (re)connect on demand or something,
though, i'm getting a lot of timeouts
2015-07-11 08:10:35 -05:00
Brian S. Stephan 6bf2732d7f dispatch: handle writing unicode to file properly 2015-07-11 08:09:53 -05:00
Brian S. Stephan e2d4e29750 use LenientDecodingLineBuffer in bot guts
should make the bot more resilient to clients that send non-unicode text
2015-06-22 17:43:45 -05:00
Brian S. Stephan ac3e71c32a karma: option to ignore targets 2015-06-20 16:34:18 -05:00
Brian S. Stephan 598a158300 dispatch: helps if i actually use the new text 2015-06-20 11:26:35 -05:00
Brian S. Stephan f542a862b8 dispatch: have option to include key in output 2015-06-20 11:23:28 -05:00
Brian S. Stephan 98bb608291 dispatch: allow dispatcher key in API URLs as well 2015-06-20 11:22:17 -05:00
Brian S. Stephan 241de26dd5 facts: allow adding facts via IRC 2015-06-20 10:58:40 -05:00
Brian S. Stephan 934f83b734 facts: show the source of facts, if desired 2015-06-20 10:46:52 -05:00
Brian S. Stephan d507e8f7ac facts: add the timestamp back too 2015-06-20 10:22:49 -05:00
Brian S. Stephan 69ca220b5e facts: add fact source back into model
it was silly for me to have dropped this
2015-06-20 10:19:11 -05:00
Brian S. Stephan 772df777ba ircbot: tie bot users to django auth user, part 3
get rid of is_admin(), instead check for django permissions. a couple
things were using is_admin(), so now there's an example of the
permission adding and usage, as those were ported
2015-06-20 10:08:51 -05:00
Brian S. Stephan df17e68456 ircbot: tie bot users to django auth user, part 2
rename BotAdmin to BotUser

other stuff will check whether or not they're an "admin", which will
actually be standard django permissions
2015-06-20 09:50:52 -05:00
Brian S. Stephan 123acbbd8d ircbot: tie bot users to django auth user, part 1
sets up the foreign key and changes how is_admin() works, though it will
be going away pretty soon, i just need to do this migration in parts so
as to not confuse django too much
2015-06-20 09:27:50 -05:00
Brian S. Stephan 243531c017 add prospector and config 2015-06-20 02:00:56 -05:00
Brian S. Stephan e194ae0319 dispatch: don't override get_object() in /message 2015-06-20 01:13:11 -05:00
Brian S. Stephan 4a092ec603 markov: have context in target's __unicode__() 2015-06-20 01:09:42 -05:00
Brian S. Stephan 397ae2243c ircbot: recurse if we had an alias hit
the idea is that there may be two aliases in the string, or the alias
may have created another alias
2015-06-19 21:40:35 -05:00
Brian S. Stephan e11d7280de countdown: display negative numbers better
this kinda removes an old BUGS line that isn't actually correct for this
change, but it was old and fixed a while ago anyway (mostly)
2015-06-19 21:40:21 -05:00
Brian S. Stephan 4854eb17ac storycraft: fix the line count in progress 2015-06-19 21:10:26 -05:00
Brian S. Stephan 1c88aa1189 dispatch: unicode_literals in models 2015-06-19 21:07:45 -05:00
Brian S. Stephan 1193ce5b6a storycraft: port to ircbot v2
this silly storytelling game has been lightly tested, but it appears to
not blow up miserably, so i'm going to commit it until i can spend more
time testing it/caring about it
2015-06-19 21:06:58 -05:00
Brian S. Stephan 095221a7b2 dispatch: properly write bytes to file 2015-06-19 16:46:46 -05:00
Brian S. Stephan 9296123f25 dispatch: require explicit send_message permission 2015-06-19 16:45:10 -05:00
Brian S. Stephan bece1745b3 dispatch: include 'message': "" in /message GET
mostly as a hint to illustrate how to use the thing
2015-06-19 15:10:21 -05:00
Brian S. Stephan 3532b073c4 dispatch: nest the dispatcher -> action serializer 2015-06-19 15:08:57 -05:00
Brian S. Stephan 4f717cb1c2 dispatch: break Dispatcher actions into 2nd model
decouple the dispatcher (a key, basically) with the actions to take upon
receiving such a message. allows us to have multiple actions for one key
without weird hacks
2015-06-19 11:29:00 -05:00
Brian S. Stephan dac7999c0f dispatch: use generics better (?) in /message
use GenericAPIView rather than APIView in order to get some common idiom
stuff done for us. we continue to support GET and POST in
DispatchMessage, now it's just a bit cleaner. i think.

anyway if we were doing this stuff more we could/should probably create
mixins for them, but at the moment this is pretty sane i think
2015-06-19 10:51:11 -05:00
Brian S. Stephan 0641e1c062 dispatch: port to django REST framework
this moves the dispatcher functionality that used to be in the old
ircbot directly to django REST framework, which is more robust and
allows for cooler stuff down the road. this still retains the ability to
have the bot privmsg, that still happens over the XML-RPC interface,
this is just a more convenient frontend to that
2015-06-18 23:57:43 -05:00
Brian S. Stephan 8fe5dbc0d3 acro: port acro to ircbot v2 2015-06-18 18:48:38 -05:00
Brian S. Stephan ae0f56cd58 seen: this shouldn't do anything w/privmsg 2015-06-18 10:34:02 -05:00
Brian S. Stephan 6560327984 countdown: app for noting points in time 2015-06-18 09:19:53 -05:00
Brian S. Stephan 76e9046549 port twitter module to ircbot v2
handles the on-demand commands but no timeline polling
2015-06-16 20:27:44 -05:00
Brian S. Stephan bef66e3427 ircbot: specify commands after connecting
happens before the sleep and the autojoins
2015-06-16 19:02:00 -05:00
Brian S. Stephan f0072fb633 ircbot: configure a sleep before autojoin channels 2015-06-16 19:01:41 -05:00
Brian S. Stephan 1af5f67daf port races irc module to new bot 2015-06-13 13:41:37 -05:00
Brian S. Stephan a345f4567e make the markov admin view URLs a bit better 2015-06-13 13:08:14 -05:00
Brian S. Stephan d9f905c691 privmsg interface to ircbot in django admin
fill out the form, send a privmsg
2015-06-13 13:07:52 -05:00
Brian S. Stephan 56b495e8fb add an XML-RPC interface to the irc bot
this allows plugins to register methods that can be called over XML-RPC

the old bot used this interface behind apache for a web service, but i
think in this version it will only be for django -> ircbot, and django
will have a rest API for other things
2015-06-13 13:06:10 -05:00
Brian S. Stephan 65a03ced03 use adminplus to add admin views
move the markov learning views into the admin
2015-06-13 12:20:10 -05:00
Brian S. Stephan 871c8e1db8 dice: irc plugin for !roll commands
basically a straight port from the old code. handles normal dice rolling
and cthulhutech style
2015-05-27 21:01:28 -05:00
Brian S. Stephan 91f0b8c651 transform: port TextTransform to bot v2
this just has some simple (and occasionally handy?) text transformations
as an irc plugin, like upper/lower case, base64, and similar
2015-05-27 20:05:38 -05:00
Brian S. Stephan fefbcf695e karma: use unicode_literals 2015-05-27 20:05:04 -05:00
Brian S. Stephan eb006db04d facts: store facts in the database for retrieval
should be able to accomplish a variety of things, from actual helpful
facts to quotes to fortune commands
2015-05-21 22:32:57 -05:00
Brian S. Stephan 7d13119176 standardize logging logger names 2015-05-21 22:05:10 -05:00
Brian S. Stephan bd4b2e176a pi: meta options on PiLog 2015-05-21 22:04:57 -05:00
Brian S. Stephan 1ec1b54e5a remove a bunch of old vi modelines 2015-05-21 21:57:54 -05:00