aboutsummaryrefslogtreecommitdiffstats
path: root/web/main.py
blob: 206eb86fe9426f755c7d90093bb1965560b46a67 (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
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):
        areas, words = utils.gen_html(self.settings["book"], page_number)
        self.render("index.html", page_number=page_number,
                    areas=areas, words=words)

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()