web interface to notmuch

Matthew Lear matt at bubblegen.co.uk
Tue Oct 31 10:13:16 PDT 2017


On Fri, 27 Oct 2017, 18:52 Brian Sniffen, <bts at evenmere.org> wrote:

> Daniel Kahn Gillmor <dkg at fifthhorseman.net> 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20171031/665f5464/attachment.html>


More information about the notmuch mailing list