http: Move MopidyHttpRouter into handlers module

This commit is contained in:
Stein Magnus Jodal 2014-05-22 20:51:45 +02:00
parent 252eb4d735
commit 684a64405d
4 changed files with 23 additions and 21 deletions

View File

@ -34,7 +34,8 @@ class Extension(ext.Extension):
raise exceptions.ExtensionError('tornado library not found', e)
def setup(self, registry):
from .actor import HttpFrontend, MopidyHttpRouter
from .actor import HttpFrontend
from .handlers import MopidyHttpRouter
HttpFrontend.routers = registry['http:router']

View File

@ -11,15 +11,13 @@ import tornado.ioloop
import tornado.web
import tornado.websocket
from mopidy import http, models, zeroconf
from mopidy import models, zeroconf
from mopidy.core import CoreListener
from mopidy.http import handlers
logger = logging.getLogger(__name__)
mopidy_data_dir = os.path.join(os.path.dirname(__file__), 'data')
class HttpFrontend(pykka.ThreadingActor, CoreListener):
routers = []
@ -65,8 +63,9 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
def _get_request_handlers(self):
# Either default Mopidy or user defined path to files
static_dir = self.config['http']['static_dir']
data_dir = os.path.join(os.path.dirname(__file__), 'data')
root_dir = (r'/(.*)', handlers.StaticFileHandler, {
'path': static_dir if static_dir else mopidy_data_dir,
'path': static_dir if static_dir else data_dir,
'default_filename': 'index.html'
})
@ -122,16 +121,3 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
if self.zeroconf_mopidy_http_service:
self.zeroconf_mopidy_http_service.unpublish()
class MopidyHttpRouter(http.Router):
name = 'mopidy'
def get_request_handlers(self):
return [
(r'/ws/?', handlers.WebSocketHandler, {'core': self.core}),
(r'/rpc', handlers.JsonRpcHandler, {'core': self.core}),
(r'/(.*)', handlers.StaticFileHandler, {
'path': mopidy_data_dir, 'default_filename': 'mopidy.html'
}),
]

View File

@ -1,19 +1,34 @@
from __future__ import unicode_literals
import logging
import os
import tornado.escape
import tornado.web
import tornado.websocket
import mopidy
from mopidy import core, models
from mopidy import core, http, models
from mopidy.utils import jsonrpc
logger = logging.getLogger(__name__)
class MopidyHttpRouter(http.Router):
name = 'mopidy'
def get_request_handlers(self):
data_dir = os.path.join(os.path.dirname(__file__), 'data')
return [
(r'/ws/?', WebSocketHandler, {'core': self.core}),
(r'/rpc', JsonRpcHandler, {'core': self.core}),
(r'/(.*)', StaticFileHandler, {
'path': data_dir, 'default_filename': 'mopidy.html'
}),
]
def make_jsonrpc_wrapper(core_actor):
inspector = jsonrpc.JsonRpcInspector(
objects={

View File

@ -7,7 +7,7 @@ import tornado.wsgi
import mopidy
from mopidy import http
from mopidy.http import actor
from mopidy.http import actor, handlers
class HttpServerTest(tornado.testing.AsyncHTTPTestCase):
@ -25,7 +25,7 @@ class HttpServerTest(tornado.testing.AsyncHTTPTestCase):
core.get_version.return_value = mopidy.__version__
http_frontend = actor.HttpFrontend(config=config, core=core)
http_frontend.routers = [actor.MopidyHttpRouter]
http_frontend.routers = [handlers.MopidyHttpRouter]
return tornado.web.Application(http_frontend._get_request_handlers())