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) raise exceptions.ExtensionError('tornado library not found', e)
def setup(self, registry): def setup(self, registry):
from .actor import HttpFrontend, MopidyHttpRouter from .actor import HttpFrontend
from .handlers import MopidyHttpRouter
HttpFrontend.routers = registry['http:router'] HttpFrontend.routers = registry['http:router']

View File

@ -11,15 +11,13 @@ import tornado.ioloop
import tornado.web import tornado.web
import tornado.websocket import tornado.websocket
from mopidy import http, models, zeroconf from mopidy import models, zeroconf
from mopidy.core import CoreListener from mopidy.core import CoreListener
from mopidy.http import handlers from mopidy.http import handlers
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
mopidy_data_dir = os.path.join(os.path.dirname(__file__), 'data')
class HttpFrontend(pykka.ThreadingActor, CoreListener): class HttpFrontend(pykka.ThreadingActor, CoreListener):
routers = [] routers = []
@ -65,8 +63,9 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
def _get_request_handlers(self): def _get_request_handlers(self):
# Either default Mopidy or user defined path to files # Either default Mopidy or user defined path to files
static_dir = self.config['http']['static_dir'] static_dir = self.config['http']['static_dir']
data_dir = os.path.join(os.path.dirname(__file__), 'data')
root_dir = (r'/(.*)', handlers.StaticFileHandler, { 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' 'default_filename': 'index.html'
}) })
@ -122,16 +121,3 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
if self.zeroconf_mopidy_http_service: if self.zeroconf_mopidy_http_service:
self.zeroconf_mopidy_http_service.unpublish() 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 from __future__ import unicode_literals
import logging import logging
import os
import tornado.escape import tornado.escape
import tornado.web import tornado.web
import tornado.websocket import tornado.websocket
import mopidy import mopidy
from mopidy import core, models from mopidy import core, http, models
from mopidy.utils import jsonrpc from mopidy.utils import jsonrpc
logger = logging.getLogger(__name__) 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): def make_jsonrpc_wrapper(core_actor):
inspector = jsonrpc.JsonRpcInspector( inspector = jsonrpc.JsonRpcInspector(
objects={ objects={

View File

@ -7,7 +7,7 @@ import tornado.wsgi
import mopidy import mopidy
from mopidy import http from mopidy import http
from mopidy.http import actor from mopidy.http import actor, handlers
class HttpServerTest(tornado.testing.AsyncHTTPTestCase): class HttpServerTest(tornado.testing.AsyncHTTPTestCase):
@ -25,7 +25,7 @@ class HttpServerTest(tornado.testing.AsyncHTTPTestCase):
core.get_version.return_value = mopidy.__version__ core.get_version.return_value = mopidy.__version__
http_frontend = actor.HttpFrontend(config=config, core=core) 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()) return tornado.web.Application(http_frontend._get_request_handlers())