http: Move MopidyHttpRouter into handlers module
This commit is contained in:
parent
252eb4d735
commit
684a64405d
@ -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']
|
||||||
|
|
||||||
|
|||||||
@ -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'
|
|
||||||
}),
|
|
||||||
]
|
|
||||||
|
|||||||
@ -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={
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user