This moves the initial XML parsing into the form submit request,
then stores the resulting Opml object as a gob
instead of storing the raw upload bytes.
If the upload is malformed, the request response body
includes a copy of the full error message.
The ajaxform code will show this to the user as a new message.
There may be some risk in moving work into the main request,
because appengine likes requests to be low-latency.
I think it's a reasonable tradeoff, in part because
imports are relatively infrequest.
This moves the initial XML parsing into the form submit request, then stores the resulting Opml object as a gob instead of storing the raw upload bytes. If the upload is malformed, the request response body includes a copy of the full error message. The ajaxform code will show this to the user as a new message.
There may be some risk in moving work into the main request, because appengine likes requests to be low-latency. I think it's a reasonable tradeoff, in part because imports are relatively infrequest.