import os
import tornado.gen
import tornado.httpclient
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
from model.common.file_pid import PID
from urls import urls
from model.log import logger
log = logger()


iTime = 300

define("port", default=8008, help="run on the given port", type=int)


class HttpServerWrapper(tornado.web.Application):
    def __init__(self, port=80,debug=True):
        self.port = port
        handlers = urls
        settings = {
            "cookie_secret": "",
            "login_url": "",
            "autoreload": True,
            "debug": False,
            "allow_remote_access": True,
            "template_path": os.path.join(os.path.dirname(__file__), "templates"),
            "static_path": os.path.join(os.path.dirname(__file__), "templates")
        }
        super(HttpServerWrapper, self).__init__(handlers, **settings)


def main():

    PID.write()
    tornado.options.parse_command_line()
    http_server = tornado.httpserver.HTTPServer(HttpServerWrapper())
    http_server.listen(options.port)
    log.info("server start, listening on port %s" % options.port)
    tornado.ioloop.IOLoop.current().start()


if __name__ == '__main__':
    main()