On Fri, 27 Oct 2017, 18:52 Brian Sniffen, wrote: > Daniel Kahn Gillmor writes: > > > On Fri 2017-10-27 00:04:21 -0400, Brian Sniffen wrote: > >> With bleach integrated (all of five lines), I think this is safe enough > >> to let random notmuch users run it. > > > > hm, bleach might be a little too aggressive. > > > > jrollins just pointed toward: > > > > https://nmweb.evenmere.org/show/87innmvvam.fsf%40ligo.caltech.edu > > That's fixed in 53403ecd, and there's some examples of bleach on a rope > at > https://nmweb.evenmere.org/show/20141107190321.GL23609%40odin.tremily.us > > The mbox URL is linkified, the many other link-like texts aren't. > > > Next/prev links are at the bottom, and a thread listing. I haven't > thought through how to get the body delivered immediately, but speed > seems acceptable. Next up, some style revisions---and I'd love > proposals for something that looks less awful, or at least makes the > interface more clear. UI design is a strong anti-specialty for me. > I've been running this today - standalone on localhost port 80 with the built in CherryPy web server on my mail store. First impressions are it's terrific :-) As my intended 'target' mail store will be geared towards a 'internal work stuff knowledge collection', lots of emails contain html links to intranet pages and sites. I can adapt the bleach usage to suit (or just remove it), but along the way of searching and viewing mail, I've encountered quite a few occurrences of failing to UnicodeEncode. An example backtrace looks like this: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/web/application.py", line 239, in process return self.handle() File "/usr/lib/python2.7/dist-packages/web/application.py", line 230, in handle return self._delegate(fn, self.fvars, args) File "/usr/lib/python2.7/dist-packages/web/application.py", line 420, in _delegate return handle_class(cls) File "/usr/lib/python2.7/dist-packages/web/application.py", line 396, in handle_class return tocall(*args) File "/b/git/notmuch-brians.git/contrib/notmuch-web/nmweb.py", line 153, in GET sprefix=webprefix) File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 989, in render return self.environment.handle_exception(exc_info, True) File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 754, in handle_exception reraise(exc_type, exc_value, tb) File "templates/show.html", line 1, in top-level template code {% extends "base.html" %} File "templates/base.html", line 32, in top-level template code {% block content %} File "templates/show.html", line 12, in block "content" {% for part in format_message(m.get_filename(),mid): %}{{ part|safe }}{% endfor %} File "/b/git/notmuch-brians.git/contrib/notmuch-web/nmweb.py", line 245, in format_message_walk tags=safe_tags).encode(part.get_content_charset('ascii'))) UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 1141: ordinal not in range(256) 127.0.0.1:60968 - - [31/Oct/2017 17:00:02] "HTTP/1.1 GET /show/ 665d8c5c2b024898ae21951c4b8b4f93@CO2PR05MB747.namprd05.prod.outlook.com" - 500 Internal Server Error I'm no Python expert, but from a quick google it would seem like the cause of such an exception is related to not using utf-8. Brian - do you think something needs modifying in nmweb.py to cater for this type of thing, or is this somehow related my own mailstore (not sure why that would be as my messages haven't been modified). Cheers, -- Matt