win32 support
This commit is contained in:
@ -1,83 +1,83 @@
|
|||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import logging, os, json
|
import logging, os, json
|
||||||
import tornado.web
|
import tornado.web
|
||||||
import tornado.websocket
|
import tornado.websocket
|
||||||
import handlers
|
import handlers
|
||||||
|
|
||||||
from mopidy import config, ext
|
from mopidy import config, ext
|
||||||
from frontend import IrisFrontend
|
from frontend import IrisFrontend
|
||||||
from handlers import WebsocketHandler, HttpHandler
|
from handlers import WebsocketHandler, HttpHandler
|
||||||
from core import IrisCore
|
from core import IrisCore
|
||||||
from raven import Client
|
from raven import Client
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
__version__ = '3.4.5'
|
__version__ = '3.4.5'
|
||||||
|
|
||||||
##
|
##
|
||||||
# Core extension class
|
# Core extension class
|
||||||
#
|
#
|
||||||
# Loads config and gets the party started. Initiates any additional frontends, etc.
|
# Loads config and gets the party started. Initiates any additional frontends, etc.
|
||||||
##
|
##
|
||||||
class Extension( ext.Extension ):
|
class Extension( ext.Extension ):
|
||||||
|
|
||||||
dist_name = 'Mopidy-Iris'
|
dist_name = 'Mopidy-Iris'
|
||||||
ext_name = 'iris'
|
ext_name = 'iris'
|
||||||
version = __version__
|
version = __version__
|
||||||
|
|
||||||
def get_default_config(self):
|
def get_default_config(self):
|
||||||
conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf')
|
conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf')
|
||||||
return config.read(conf_file)
|
return config.read(conf_file)
|
||||||
|
|
||||||
def get_config_schema(self):
|
def get_config_schema(self):
|
||||||
schema = config.ConfigSchema(self.ext_name)
|
schema = config.ConfigSchema(self.ext_name)
|
||||||
schema['enabled'] = config.Boolean()
|
schema['enabled'] = config.Boolean()
|
||||||
schema['country'] = config.String()
|
schema['country'] = config.String()
|
||||||
schema['locale'] = config.String()
|
schema['locale'] = config.String()
|
||||||
schema['authorization_url'] = config.String()
|
schema['authorization_url'] = config.String()
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
def setup(self, registry):
|
def setup(self, registry):
|
||||||
|
|
||||||
# Add web extension
|
# Add web extension
|
||||||
registry.add('http:app', {
|
registry.add('http:app', {
|
||||||
'name': self.ext_name,
|
'name': self.ext_name,
|
||||||
'factory': iris_factory
|
'factory': iris_factory
|
||||||
})
|
})
|
||||||
|
|
||||||
# create our core instance
|
# create our core instance
|
||||||
mem.iris = IrisCore()
|
mem.iris = IrisCore()
|
||||||
mem.iris.version = self.version
|
mem.iris.version = self.version
|
||||||
|
|
||||||
# Connect to our Ravent Sentry error tracker
|
# Connect to our Ravent Sentry error tracker
|
||||||
mem.iris.raven_client = Client(
|
mem.iris.raven_client = Client(
|
||||||
dsn='https://023e3bf7721b48f29948545fc36a4621:ba30d29174ef4778ac4e141d445607a2@sentry.io/219026',
|
dsn='https://023e3bf7721b48f29948545fc36a4621:ba30d29174ef4778ac4e141d445607a2@sentry.io/219026',
|
||||||
release=self.version
|
release=self.version
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add our frontend
|
# Add our frontend
|
||||||
registry.add('frontend', IrisFrontend)
|
registry.add('frontend', IrisFrontend)
|
||||||
|
|
||||||
|
|
||||||
def iris_factory(config, core):
|
def iris_factory(config, core):
|
||||||
|
|
||||||
path = os.path.join( os.path.dirname(__file__), 'static')
|
path = os.path.join( os.path.dirname(__file__), 'static')
|
||||||
|
|
||||||
return [
|
return [
|
||||||
(r"/images/(.*)", tornado.web.StaticFileHandler, {
|
(r"/images/(.*)", tornado.web.StaticFileHandler, {
|
||||||
'path': config['local-images']['image_dir']
|
'path': config['local-images']['image_dir']
|
||||||
}),
|
}),
|
||||||
(r'/http/([^/]*)', handlers.HttpHandler, {
|
(r'/http/([^/]*)', handlers.HttpHandler, {
|
||||||
'core': core,
|
'core': core,
|
||||||
'config': config
|
'config': config
|
||||||
}),
|
}),
|
||||||
(r'/ws/?', handlers.WebsocketHandler, {
|
(r'/ws/?', handlers.WebsocketHandler, {
|
||||||
'core': core,
|
'core': core,
|
||||||
'config': config
|
'config': config
|
||||||
}),
|
}),
|
||||||
(r'/(.*)', tornado.web.StaticFileHandler, {
|
(r'/(.*)', tornado.web.StaticFileHandler, {
|
||||||
'path': path,
|
'path': path,
|
||||||
'default_filename': 'index.html'
|
'default_filename': 'index.html'
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -10,13 +10,19 @@ from mopidy.core import CoreListener
|
|||||||
from pkg_resources import parse_version
|
from pkg_resources import parse_version
|
||||||
from tornado.escape import json_encode, json_decode
|
from tornado.escape import json_encode, json_decode
|
||||||
|
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
import ctypes
|
||||||
|
|
||||||
# import logger
|
# import logger
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class IrisCore(object):
|
class IrisCore(object):
|
||||||
|
|
||||||
version = 0
|
version = 0
|
||||||
is_root = ( os.geteuid() == 0 )
|
try:
|
||||||
|
is_root = os.geteuid() == 0
|
||||||
|
except AttributeError:
|
||||||
|
is_root = ctypes.windll.shell32.IsUserAnAdmin() != 0
|
||||||
spotify_token = False
|
spotify_token = False
|
||||||
queue_metadata = {}
|
queue_metadata = {}
|
||||||
connections = {}
|
connections = {}
|
||||||
|
|||||||
97
package.json
97
package.json
@ -1,49 +1,52 @@
|
|||||||
{
|
{
|
||||||
"name": "mopidy-iris",
|
"name": "mopidy-iris",
|
||||||
"version": "3.4.5",
|
"version": "3.4.5",
|
||||||
"description": "Mopidy HTTP interface",
|
"description": "Mopidy HTTP interface",
|
||||||
"repository": "https://github.com/jaedb/iris",
|
"repository": "https://github.com/jaedb/iris",
|
||||||
"author": "James Barnsley <james@barnsley.nz>",
|
"author": "James Barnsley <james@barnsley.nz>",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/jaedb/Iris/issues"
|
"url": "https://github.com/jaedb/Iris/issues"
|
||||||
},
|
},
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"babel-core": "^6.25.0",
|
"babel-core": "^6.25.0",
|
||||||
"babel-loader": "^7.1.1",
|
"babel-loader": "^7.1.1",
|
||||||
"babel-preset-es2015": "^6.22.0",
|
"babel-preset-es2015": "^6.22.0",
|
||||||
"babel-preset-react": "^6.22.0",
|
"babel-preset-react": "^6.22.0",
|
||||||
"babel-preset-stage-0": "^6.24.1",
|
"babel-preset-stage-0": "^6.24.1",
|
||||||
"babel-preset-stage-2": "^6.22.0",
|
"babel-preset-stage-2": "^6.22.0",
|
||||||
"css-loader": "0.28.4",
|
"css-loader": "0.28.4",
|
||||||
"expose-loader": "0.7.3",
|
"expose-loader": "0.7.3",
|
||||||
"extract-text-webpack-plugin": "3.0.0",
|
"extract-text-webpack-plugin": "3.0.0",
|
||||||
"file-loader": "^0.11.2",
|
"file-loader": "^0.11.2",
|
||||||
"flux": "^3.1.2",
|
"flux": "^3.1.2",
|
||||||
"jquery": "3.1.1",
|
"jquery": "3.1.1",
|
||||||
"mopidy": "^0.5.0",
|
"mopidy": "^0.5.0",
|
||||||
"node-sass": "^4.5.0",
|
"node-sass": "^4.5.0",
|
||||||
"react": "15.6.1",
|
"react": "15.6.1",
|
||||||
"react-dom": "15.6.1",
|
"react-dom": "15.6.1",
|
||||||
"react-fontawesome": "*",
|
"react-fontawesome": "*",
|
||||||
"react-ga": "2.1.2",
|
"react-ga": "2.1.2",
|
||||||
"react-redux": "5.0.5",
|
"react-redux": "5.0.5",
|
||||||
"react-router": "^3.0.5",
|
"react-router": "^3.0.5",
|
||||||
"redux": "3.7.2",
|
"redux": "3.7.2",
|
||||||
"redux-devtools": "3.4.0",
|
"redux-devtools": "3.4.0",
|
||||||
"redux-thunk": "2.2.0",
|
"redux-thunk": "2.2.0",
|
||||||
"sass-loader": "^6.0.2",
|
"sass-loader": "^6.0.2",
|
||||||
"style-loader": "^0.13.2",
|
"style-loader": "^0.13.2",
|
||||||
"url-loader": "^0.5.8",
|
"url-loader": "^0.5.8",
|
||||||
"webpack": "^3.5.1",
|
"webpack": "^3.5.1",
|
||||||
"webpack-strip": "0.1.0",
|
"webpack-strip": "0.1.0",
|
||||||
"react-lazyload": "2.2.7"
|
"react-lazyload": "2.2.7"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "./build.sh",
|
"build": "./build.sh",
|
||||||
"dev": "./build.sh && NODE_ENV=development webpack --watch",
|
"dev": "./build.sh && NODE_ENV=development webpack --watch",
|
||||||
"prod": "./build.sh && NODE_ENV=development webpack && NODE_ENV=production webpack",
|
"prod": "./build.sh && NODE_ENV=development webpack && NODE_ENV=production webpack",
|
||||||
"release": "./build.sh && NODE_ENV=production webpack && NODE_ENV=development webpack && python setup.py sdist upload -r pypi && ./release.sh"
|
"release": "./build.sh && NODE_ENV=production webpack && NODE_ENV=development webpack && python setup.py sdist upload -r pypi && ./release.sh"
|
||||||
}
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"webpack": "^3.6.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user