-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathhttpserver.py
87 lines (75 loc) · 2.75 KB
/
httpserver.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python
# encoding: utf-8
import os
import json
import sys
import pwd
import time
import requests
import copy
import random
import datetime
import platform
import tornado
import tornado.web
import tornado.wsgi
import tornado.options
import tornado.httpserver
import tornado.autoreload
import tornado.ioloop
from lib import session
from tornado import gen
from tornado.ioloop import IOLoop
from handler import (MainHandler, SortSensesHandler, HotSamerHandler, SamerProfileHandler,
FunIndex, PhotographyIndex, OthersIndex, SamerStarHandler,
SearchHandler, PopularMusicHandler, LetterResultIndex, LetterHandler,
TestIndex, TumblrHandler, LikesHandler, NotFoundPage, PopularChannelsHandler,
ChannelSensesHandler, BlogHandler)
handlers = [
(r"/", MainHandler),
(r"/senses", SortSensesHandler),
(r"/hot-samer", HotSamerHandler),
(r"/samer/(\d+)", SamerProfileHandler),
(r"/fun", FunIndex),
(r"/photography", PhotographyIndex),
(r"/others", OthersIndex),
(r"/samer-star", SamerStarHandler),
(r"/search", SearchHandler),
(r"/music", PopularMusicHandler),
(r"/letter/(\d+)/(.*)", LetterResultIndex),
(r"/letter/(\d+)", LetterHandler),
(r"/lab", TestIndex),
(r"/tumblr", TumblrHandler),
(r"/photo/(\d+)/likes", LikesHandler),
(r"/404", NotFoundPage),
(r"/channels", PopularChannelsHandler),
(r"/channel/(\d+)/senses", ChannelSensesHandler),
(r'/favicon.ico', tornado.web.StaticFileHandler, dict(url='/static/favicon.ico', permanent=False)),
(r"/v1/(.*)", BlogHandler),
]
settings = dict(
cookie_secret="y+iqu2psQRyVqvC0UQDB+iDnfI5g3E5Yivpm62TDmUU=",
debug=True,
session_secret='terminus',
session_dir='sessions',
template_path=os.path.join(os.path.dirname(__file__), "templates"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
xsrf_cookies=False,
)
class Application(tornado.web.Application):
def __init__(self):
tornado.web.Application.__init__(self, handlers, **settings)
# self.session_manager = session.TornadoSessionManager(settings["session_secret"], settings["session_dir"])
# self.db = dbutils.Connection(
# host=options.DATABASE_HOST, database=options.DATABASE_NAME,
# user=options.DATABASE_USER, password=options.DATABASE_PASSWORD)
def main(port):
tornado.options.parse_command_line()
print("start on port %s..." % port)
http_server = tornado.httpserver.HTTPServer(Application(), xheaders=True)
http_server.listen(port)
if platform.system() == 'Darwin':
tornado.autoreload.start()
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main(sys.argv[1])