Example, repr() vs. str():
(D:csbot.raw_log) >>> ':[email protected] PRIVMSG #hacksoc :<\x034atc520\x0f> Oh, oh dear'
(I:csbot.pretty_log) [#hacksoc] <hackbot> <4atc520> Oh, oh dear
It's unclear whether this is a bug or a feature request. In some cases we might want to preserve such things, in other cases they might interfere with other logic. I'd suggest exposing the message content both before and after stripping (the latter being the default, i.e. requiring no code change elsewhere), and allow plugins to make their own decisions.