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
This commit is contained in:
Brian S. Stephan 2015-06-19 21:41:23 -05:00
parent 397ae2243c
commit 8c77780923
2 changed files with 39 additions and 72 deletions

37
BUGS
View File

@ -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 <bound method Twitter.thread_do of
<modules.Twitter.Twitter object at 0x151ee98c>>
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

74
TODO
View File

@ -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