54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
import logging
|
|
import os
|
|
|
|
import mopidy
|
|
from mopidy import config as config_lib
|
|
from mopidy import exceptions, ext
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Extension(ext.Extension):
|
|
dist_name = "Mopidy-HTTP"
|
|
ext_name = "http"
|
|
version = mopidy.__version__
|
|
|
|
def get_default_config(self):
|
|
conf_file = os.path.join(os.path.dirname(__file__), "ext.conf")
|
|
return config_lib.read(conf_file)
|
|
|
|
def get_config_schema(self):
|
|
schema = super().get_config_schema()
|
|
schema["hostname"] = config_lib.Hostname()
|
|
schema["port"] = config_lib.Port()
|
|
schema["static_dir"] = config_lib.Deprecated()
|
|
schema["zeroconf"] = config_lib.String(optional=True)
|
|
schema["allowed_origins"] = config_lib.List(optional=True)
|
|
schema["csrf_protection"] = config_lib.Boolean(optional=True)
|
|
schema["default_app"] = config_lib.String(optional=True)
|
|
return schema
|
|
|
|
def validate_environment(self):
|
|
try:
|
|
import tornado.web # noqa
|
|
except ImportError as e:
|
|
raise exceptions.ExtensionError("tornado library not found", e)
|
|
|
|
def setup(self, registry):
|
|
from .actor import HttpFrontend
|
|
from .handlers import make_mopidy_app_factory
|
|
|
|
HttpFrontend.apps = registry["http:app"]
|
|
HttpFrontend.statics = registry["http:static"]
|
|
|
|
registry.add("frontend", HttpFrontend)
|
|
registry.add(
|
|
"http:app",
|
|
{
|
|
"name": "mopidy",
|
|
"factory": make_mopidy_app_factory(
|
|
registry["http:app"], registry["http:static"]
|
|
),
|
|
},
|
|
)
|