http: Move web service code to new module
This commit is contained in:
parent
37ab7c766d
commit
92dc974028
@ -14,7 +14,7 @@ try:
|
||||
except ImportError as import_error:
|
||||
raise exceptions.OptionalDependencyError(import_error)
|
||||
|
||||
from . import ws
|
||||
from . import api, ws
|
||||
|
||||
|
||||
logger = logging.getLogger('mopidy.frontends.http')
|
||||
@ -42,14 +42,16 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
|
||||
cherrypy.tools.websocket = WebSocketTool()
|
||||
|
||||
def _create_app(self):
|
||||
root = Root(self.core)
|
||||
root = RootResource()
|
||||
root.api = api.ApiResource(self.core)
|
||||
root.ws = ws.WebSocketResource()
|
||||
return cherrypy.tree.mount(root, '/', {
|
||||
config = {
|
||||
'/ws': {
|
||||
'tools.websocket.on': True,
|
||||
'tools.websocket.handler_cls': ws.WebSocketHandler,
|
||||
},
|
||||
})
|
||||
}
|
||||
return cherrypy.tree.mount(root, '/', config)
|
||||
|
||||
def _setup_logging(self, app):
|
||||
cherrypy.log.access_log.setLevel(logging.NOTSET)
|
||||
@ -75,18 +77,5 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener):
|
||||
old_state, new_state)))
|
||||
|
||||
|
||||
class Root(object):
|
||||
def __init__(self, core):
|
||||
self.core = core
|
||||
|
||||
@cherrypy.expose
|
||||
@cherrypy.tools.json_out()
|
||||
def index(self):
|
||||
playback_state = self.core.playback.state.get()
|
||||
track = self.core.playback.current_track.get()
|
||||
if track:
|
||||
track = track.serialize()
|
||||
return {
|
||||
'playback_state': playback_state,
|
||||
'current_track': track,
|
||||
}
|
||||
class RootResource(object):
|
||||
pass
|
||||
|
||||
23
mopidy/frontends/http/api.py
Normal file
23
mopidy/frontends/http/api.py
Normal file
@ -0,0 +1,23 @@
|
||||
from mopidy import exceptions
|
||||
|
||||
try:
|
||||
import cherrypy
|
||||
except ImportError as import_error:
|
||||
raise exceptions.OptionalDependencyError(import_error)
|
||||
|
||||
|
||||
class ApiResource(object):
|
||||
def __init__(self, core):
|
||||
self.core = core
|
||||
|
||||
@cherrypy.expose
|
||||
@cherrypy.tools.json_out()
|
||||
def index(self):
|
||||
playback_state = self.core.playback.state.get()
|
||||
track = self.core.playback.current_track.get()
|
||||
if track:
|
||||
track = track.serialize()
|
||||
return {
|
||||
'playback_state': playback_state,
|
||||
'current_track': track,
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user