You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
blivechat/main.py

54 lines
1.6 KiB
Python

5 years ago
# -*- coding: utf-8 -*-
import argparse
import logging
5 years ago
import os
import tornado.ioloop
import tornado.web
import views.chat
import views.config
import views.main
logger = logging.getLogger(__name__)
5 years ago
WEB_ROOT = os.path.join(os.path.dirname(__file__), 'frontend', 'dist')
def main():
parser = argparse.ArgumentParser(description='用于OBS的仿YouTube风格的bilibili直播聊天层')
parser.add_argument('--host', help='服务器host默认为127.0.0.1', default='127.0.0.1')
parser.add_argument('--port', help='服务器端口默认为80', type=int, default=80)
parser.add_argument('--debug', help='调试模式', action='store_true')
args = parser.parse_args()
logging.basicConfig(
format='{asctime} {levelname} [{name}]: {message}',
datefmt='%Y-%m-%d %H:%M:%S',
style='{',
level=logging.INFO if not args.debug else logging.DEBUG
)
app = tornado.web.Application(
[
(r'/chat', views.chat.ChatHandler),
(r'/config', views.config.ConfigsHandler),
(r'/config/(.+)', views.config.ConfigHandler),
(r'/((css|fonts|img|js)/.*)', tornado.web.StaticFileHandler, {'path': WEB_ROOT}),
(r'/(favicon\.ico)', tornado.web.StaticFileHandler, {'path': WEB_ROOT}),
(r'/.*', views.main.MainHandler, {'path': WEB_ROOT})
],
websocket_ping_interval=30,
debug=args.debug,
autoreload=False
)
app.listen(args.port, args.host)
logger.info('服务器启动:%s:%d', args.host, args.port)
5 years ago
tornado.ioloop.IOLoop.current().start()
if __name__ == '__main__':
main()