From 8c7778092325de9b1a57f1f9800308643f1037d3 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Fri, 19 Jun 2015 21:41:23 -0500 Subject: [PATCH] removing a bunch of BUGS, cleaning up TODO the rewrite has fixed a number of BUGS and invalidated some TODOs, so both have gotten a cleanup --- BUGS | 37 +----------------------------- TODO | 74 +++++++++++++++++++++++++++++++----------------------------- 2 files changed, 39 insertions(+), 72 deletions(-) diff --git a/BUGS b/BUGS index 1a6279b..278eb43 100644 --- a/BUGS +++ b/BUGS @@ -1,38 +1,3 @@ dr.botzo --- BUGS - * probably many, many more - * possible to have not well-formed XML in pywapi.get_weather_from_google: - xml.parsers.expat.ExpatError: not well-formed (invalid token) - * various stuff (or at least !alias list) doesn't get privmsg handling right, and - ends up sending the reply to the bot itself (as that is the target of the incoming - privmsg, same as in a channel, but the bot is supposed to overwrite the nick case - with the sender's) - * if a trigger text replacement happens, the original text is unavailable to modules - f.x., saying (this text will be replaced with a trigger)++ will cause (replacement)++ - to be seen by the karma module. fix: pass along the original text as an argument - to modules, and/or have karma look in the events structure for the original text - * this twitter derp: - Unhandled exception in thread started by > - Traceback (most recent call last): - File "/home/bss/bin/dr.botzo/dr.botzo/modules/Twitter.py", line 316, in thread_do - self._check_self_timeline() - File "/home/bss/bin/dr.botzo/dr.botzo/modules/Twitter.py", line 349, in _check_self_timeline - new_since_id = self._get_latest_tweet_id(tweets, new_since_id) - UnboundLocalError: local variable 'new_since_id' referenced before assignment - * Markov (in old codebase, but probably in new too) error: - File "/var/www/drbotzo.incorporeal.org/dr_botzo/dr_botzo/ircbot/Module.py", line 125, in on_pub_or_privmsg - return self.do(connection, event, nick, userhost, what, admin_unlocked) - File "/var/www/drbotzo.incorporeal.org/dr_botzo/dr_botzo/ircbot/modules/Markov.py", line 143, in do - u" ".join(_generate_line(context, topics=topics, max_sentences=1)))) - File "../dr_botzo/markov/views.py", line 158, in _generate_line - line += _generate_longish_sentence(context, topics=topics, max_words=max_words) - File "../dr_botzo/markov/views.py", line 141, in _generate_longish_sentence - sent = _generate_sentence(context, topics=topics, max_words=max_words) - File "../dr_botzo/markov/views.py", line 127, in _generate_sentence - words.append(_get_word_out_of_states(new_states)) - File "../dr_botzo/markov/views.py", line 180, in _get_word_out_of_states - hit = random.randint(0, count_sum) - File "/usr/lib64/python2.7/random.py", line 242, in randint - return self.randrange(a, b+1) - TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' + * module unloading is *totally* busted. random modules/packages disappear on an unload diff --git a/TODO b/TODO index dcfb2d3..b3e80e5 100644 --- a/TODO +++ b/TODO @@ -1,42 +1,44 @@ dr.botzo --- TODO + Both a reminder to myself and a hint to anyone else who wants to hack around... - Both a reminder to myself and a hint to anyone else who wants to hack around... + * change the countdown report to properly refer to the past - * markov random chatter, add it back. should just need a thread and some polling - * twitter polling, add it back. should need a thread, and the ability to reply to a channel - * is this different than printing replies? because we should do that too - * module unloading is *totally* busted. random objects disappear on an unload - * some sort of cron interface (periodic events) - * thinking about removing this, wouldn't crontab + XML-RPC be enough? - * there are a number of places that hardcode event.arguments()[0], these should probably loop - * i'm sitting on this change for now because i think the rewrite to new global handlers will - remove some of the crufty functions that hardcode - * rewrite the help stuff to use docstrings and be intelligent about where docs come from - * more text modification nonsense - * any interesting web service stuff? - * D&D Compendium search? - * obligatory info command - * settle on docstrings: reStructuredText - * voice survivor --- track how long users have voice, score them somehow - * Alias: convert to use database, since configparser stuff mangles (lowercases) keys - * put all bot config in the database? - * handle disconnects - * some kind of option whether or not to reconnect - * this includes - FROM SERVER: ERROR :Closing Link: dr_botzo[ayu.incorporeal.org] (Ping timeout) - command: error, source: None, target: Closing Link: dr_botzo[ayu.incorporeal.org] (Ping timeout), arguments: [] - * proper logging via logging - * automsg vhost TODO in IrcAdmin - * some command renames: - * !modules -> !modules list - * !load -> !modules load - * !unload -> !modules unload - * use Module.priority() properly in more/all places, or wrap accordingly - * and why did i make it a method!? + * markov random chatter, add it back. should just need a thread and some polling -the isle of misfit and abandoned TODOs + * twitter polling, add it back. should need a thread, and the ability to reply to a channel + * is this different than printing replies? because we should do that too - This is all stuff that seems superceded or unnecessary now + * some sort of cron interface (periodic events) + * thinking about removing this, wouldn't crontab + XML-RPC be enough? + * even better idea now, i think this should be done via django management commands - * named pipe to send commands to the bot outside of IRC - [use the XML-RPC interface, creating function sets if you need to.] + * there are a number of places that hardcode event.arguments()[0], these should probably loop + + * something i used to call a bug but now i'm thinking it's a weird non-bug corner case + that i might not even want to fix... + * if a trigger text replacement happens, the original text is unavailable to modules + f.x., saying (this text will be replaced with a trigger)++ will cause (replacement)++ + to be seen by the karma module. fix: pass along the original text as an argument + to modules, and/or have karma look in the events structure for the original text + + * create a new help module + + * more text modification nonsense + + * any interesting web service stuff? + * D&D Compendium search? + + * obligatory info command + + * settle on docstrings + + * voice survivor --- track how long users have voice, score them somehow + + * handle disconnects + * i THINK this has been done now, with the new ircbot code + * some kind of option whether or not to reconnect + * this includes: + FROM SERVER: ERROR :Closing Link: dr_botzo[ayu.incorporeal.org] (Ping timeout) + command: error, source: None, target: Closing Link: dr_botzo[ayu.incorporeal.org] (Ping timeout), arguments: [] + + * automsg vhost TODO in IrcAdmin