Се тргна од идејата да го хостираме на Google App engine. Но
претходната верзија работеше со lxml кој е C екстензија и како таква
не е достапна на Google App Engine. Така да го преправавме да работи
со xml.dom.minidom (доаѓа стандардно во Python) и со pure-python
модулот xpath (http://code.google.com/p/py-dom-xpath/)
Кодот е тука: http://damjan.softver.org.mk/git/froggin.mk/?h=minidom
branch-от е minidom, симињање со git:
git clone git://damjan.softver.org.mk/froggin.mk
cd froggin.mk
git checkout --track minidom
API-то е релативно едноставно, на пр.
from convertor import convert_doc
# convert_doc очекува string со име на фајл, или file-like објект,
# a враќа StringIO објект со содржината на новиот фајл
buf = convert_doc("yuscii-file.odt")
fout = open("good-file.odt", 'w')
fout.write(buf.getvalue())
fout.close(
Алтернативно во google app engine хендлер контекст (ова не е баш
тестирано):
file_in = self.request.POST['myfile']
file_out = convert_doc(file_in)
self.response.content_disposition = 'attachment;
filename=converted.odt'
self.response.content_type = 'application/x-download'
self.response.out.write(file_out.getvalue())
http://damjan.softver.org.mk/git/froggin.mk/tree/webob-app.py?h=minidom
http://damjan.softver.org.mk/git/froggin.mk/tree/werkzeug-app.py?h=minidom
webob верзијата би требало да е поблиску до GAE, но werkzeug верзијата
е подобра за тестирање бидејќи има и debug-ер.
Ако некој има искуство со GAE може да помогне на некоја следна средба.
Поточно
git checkout --track origin/minidom
--
дамјан