aboutsummaryrefslogtreecommitdiffstats
path: root/web/main.py
blob: a6826c12be6c639494fe4ceb24030070fe904c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import tornado.httpserver
from tornado.web import RequestHandler, Application
import tornado.ioloop
from settings import settings
import utils
from djvu_utils import image_from_book
import io

class MainHandler(RequestHandler):

    def get(self, page_number):
        orig_coords, orig_words, corr_words, align = \
            utils.gen_html(self.settings["book"], page_number)
        self.render("index.html", page_number=page_number, orig_coords=orig_coords,
                    orig_words=orig_words, corr_words=corr_words, align=align)

class ImageHandler(RequestHandler):

    def get(self, page_number):
        im = image_from_book("../" + self.settings["book"], int(page_number))
        self.set_header('Content-Type', 'image/jpg')
        img_buff = io.BytesIO()
        im.save(img_buff, format="JPEG")
        img_buff.seek(0)
        self.write(img_buff.read())
        self.finish()

application = Application([
    (r'/(\d+)/?', MainHandler),
    (r'/(\d+)\.jpg/?', ImageHandler)]
    , **settings)

if __name__ == '__main__':
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    print "Listening on 8888"
    tornado.ioloop.IOLoop.instance().start()