Commit Graph

36 Commits

Author SHA1 Message Date
Brian S. Stephan 8d6d66333b Module: don't pass DrBotServerConnection to init
another "this is unnecessary" change, obviously impacting all the
modules that override __init__ as well as the base class. again, they
can use the DrBotIRC instance for anything, which is (with one
exception) only for add/remove_global_handler, which i'm planning on
working my way off of anyway
2012-12-19 21:06:53 -06:00
Brian S. Stephan 3e76f75bba Module: remove reply(), use DrBotIRC's
obviously this means all of the modules changed to accomodate. this is
one of many steps to reduce the number of times we pass connections and
servers and other such info around, when it's mostly unnecessary because
modules have a reference to DrBotIRC
2012-12-19 20:51:35 -06:00
Brian S. Stephan 0386603d93 Storycraft: more debugging output 2012-07-29 09:46:53 -05:00
Brian S. Stephan 8b2269c441 pyflakes cleanups 2012-07-27 20:38:45 -05:00
Brian S. Stephan 0a2aa21777 Storycraft: don't try to replace() on end_time when it's None 2012-07-27 17:42:12 -05:00
Brian S. Stephan adccf69ede Storycraft: properly support/print timestamps 2012-07-27 16:51:57 -05:00
Brian S. Stephan 033631e5c2 no longer encode/decode UTF8 stuff when going to/from database
seems safe so far (famous last words)
2012-07-27 16:34:57 -05:00
Brian S. Stephan 7bd5558f05 ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin for case-sensitivity 2012-07-27 14:57:41 -05:00
Brian S. Stephan 1a36becead convert to a MySQL backend
WARNING!
there's no going back now. this change is *huge* but it was overdue.
WARNING!

the database backend is now mysql. modules that should use a database
but don't yet were left untouched, they'll come later. scripts haven't
been converted yet, though i'm pretty sure i'll need to soon.

while i was going through everything, connection/cursor idioms were
cleaned up, as were a bunch of log messages and exception handling. this
change is so gross i'm happy things appear to be working, which is
the case --- all modules are lightly tested.
2012-07-27 02:18:01 -05:00
Brian S. Stephan 9654f4de98 switch to use python's logging, with config file i'm not entirely happy about 2012-07-15 21:32:12 -05:00
Brian S. Stephan 1e87fe59d8 even more close connections from get_db() 2011-06-20 22:34:27 -05: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 e78e6faad8 Storycraft: update usage hints to provide the proper commands 2011-02-26 19:07:16 -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 22b35bcb94 Storycraft: add storycraft_gamestatus in order to break out getting a game's status
this is primarily to use a consistent format - 'game X status' rather than 'status X'
2011-02-19 01:18:14 -06:00
Brian S. Stephan 3e63c2e458 since sending arbitrary text and replying now have very different goals, add Module.sendmsg
this just sends a privmsg to the specified target on the specified
connection. pretty straightforward. also, update the modules that
need it to use it.
2011-02-17 12:31:51 -06:00
Brian S. Stephan 2aa369add7 rewrite recursion/alias code for the 500th time.
more of a moving of the code, actually, it now exists in (an overridden)
_handle_event, so that recursions happen against irc events directly,
rather than an already partially interpreted object.

with this change, modules don't need to implement do() nor do we have a
need for the internal_bus, which was doing an additional walk of the
modules after the irc event was already handled and turned into text. now
the core event handler does the recursion scans.

to support this, we bring back the old replypath trick and use it again,
so we know when to send a privmsg reply and when to return text so that
it may be chained in recursion. this feels old hat by now, but if you
haven't been following along, you should really look at the diff.

that's the meat of the change. the rest is updating modules to use
self.reply() and reimplementing (un)register_handlers where appropriate
2011-02-17 01:08:45 -06:00
Brian S. Stephan 8f86b7484a Storycraft: fix progress math 2011-01-09 22:36:56 -06:00
Brian S. Stephan 10cbe1944f Storycraft: add a terse progress string to the output when messaging players.
this is so that people know when they should start wrapping their
story up.
2011-01-09 22:17:22 -06:00
Brian S. Stephan e9c22d33f3 Storycraft: write completed story to disk via !storycraft export # 2011-01-09 21:41:23 -06:00
Brian S. Stephan e39d55f03d Storycraft: display how over the user went when writing their line, if they went over 2011-01-09 21:40:03 -06:00
Brian S. Stephan 2f001e274b Storycraft: notify (via privmsg) a player who has had a game newly assigned to them, and show the line. 2011-01-09 13:50:16 -06:00
Brian S. Stephan 487ca2e862 Storycraft: display the number of logged lines when doing an in progress status 2011-01-09 12:30:55 -06:00
Brian S. Stephan 7ae2a75732 Storycraft: when picking a new random player in the middle of a game, avoid picking the same person as the last turn 2011-01-09 12:28:37 -06:00
Brian S. Stephan b133b37d61 Storycraft: list games waiting for me.
shows games in progress where the current line is assigned to the queryer,
and games open (waiting for registrations) that the queryer started
2011-01-09 11:51:10 -06:00
Brian S. Stephan 26a510ff40 Storycraft: add 'list games my games', which is the open/in progress games the queryer is in 2011-01-09 11:32:09 -06:00
Brian S. Stephan ce7d9e8010 Storycraft: allow listing of completed games 2011-01-09 11:16:36 -06:00
Brian S. Stephan 940ed57f2e Storycraft: tell the master channel when someone joins a game 2011-01-09 11:13:06 -06:00
Brian S. Stephan 797f660a9e Storycraft: don't flood the target with storycraft_listgames, display only ids if count > 5 2011-01-09 11:12:27 -06:00
Brian S. Stephan fd22cb64d4 Storycraft: add command to show the assignee the line to reply to.
apparently at 3 AM i forgot to implement important features, because
this is pretty critical to the game actually being playable. let
the assignee, if the game is still open, get the text of the line
they are to reply to.

also display it, rather than the add line command, where appropriate.
2011-01-09 10:41:57 -06:00
Brian S. Stephan 8c1d98cb74 Storycraft: order by id in addition to time in _get_lines_for_game query 2011-01-09 10:39:08 -06:00
Brian S. Stephan 22d3ce44bf Storycraft: trivial comment correction 2011-01-09 10:38:25 -06:00
Brian S. Stephan 656468f955 Storycraft: proper argument order in _update_line 2011-01-09 10:36:21 -06:00
Brian S. Stephan 95e7a243d1 tighten up the regexes since we only use integer IDs for operations.
i'd originally intended to use strings, too, but never decided on
if there should be a game name, or the commands should search
something, or what, so i'll just quit waffling and remove it. numbers
only for now.
2011-01-09 10:12:27 -06:00
Brian S. Stephan 90d38c1741 Storycraft - collaborative nonsense story writing
this module implements a game where players write a line in a story,
probably a nonsensical one, a couple lines at a time. once the player
who started the story has written something, the last line is
passed along to someone else in the game, who continues the story ---
or disregards the small bit of context entirely and writes their own
thing.

eventually you get a story like this:
line 1 by user 1
line 2 by user 1
line 3 by user 2 (who only read line 2)
line 4 by user 2
line 5 by user 3 (who only read line 4)
...

conceptually, that's the idea of the game. the code itself is still
a bit rough around the edges, but i can bang through a game by
myself. it needs some robustification, but it's fairly well
documented and the module does try to provide some clues to IRC while
you're playing.

config option explanations, more such options, etc. to come. critically
important is a way to get completed stories out of the bot, of course.

more to come, i'll shut up now and commit.
2011-01-09 03:27:12 -06:00