win32 support

This commit is contained in:
Robert Arlt Jr
2017-09-25 14:00:02 -04:00
parent 60a560f4b3
commit a4270abb71
3 changed files with 140 additions and 131 deletions

View File

@ -1,83 +1,83 @@
from __future__ import unicode_literals
import logging, os, json
import tornado.web
import tornado.websocket
import handlers
from mopidy import config, ext
from frontend import IrisFrontend
from handlers import WebsocketHandler, HttpHandler
from core import IrisCore
from raven import Client
logger = logging.getLogger(__name__)
__version__ = '3.4.5'
##
# Core extension class
#
# Loads config and gets the party started. Initiates any additional frontends, etc.
##
class Extension( ext.Extension ):
dist_name = 'Mopidy-Iris'
ext_name = 'iris'
version = __version__
def get_default_config(self):
conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf')
return config.read(conf_file)
def get_config_schema(self):
schema = config.ConfigSchema(self.ext_name)
schema['enabled'] = config.Boolean()
schema['country'] = config.String()
schema['locale'] = config.String()
schema['authorization_url'] = config.String()
return schema
def setup(self, registry):
# Add web extension
registry.add('http:app', {
'name': self.ext_name,
'factory': iris_factory
})
# create our core instance
mem.iris = IrisCore()
mem.iris.version = self.version
# Connect to our Ravent Sentry error tracker
mem.iris.raven_client = Client(
dsn='https://023e3bf7721b48f29948545fc36a4621:ba30d29174ef4778ac4e141d445607a2@sentry.io/219026',
release=self.version
)
# Add our frontend
registry.add('frontend', IrisFrontend)
def iris_factory(config, core):
path = os.path.join( os.path.dirname(__file__), 'static')
return [
(r"/images/(.*)", tornado.web.StaticFileHandler, {
'path': config['local-images']['image_dir']
}),
(r'/http/([^/]*)', handlers.HttpHandler, {
'core': core,
'config': config
}),
(r'/ws/?', handlers.WebsocketHandler, {
'core': core,
'config': config
}),
(r'/(.*)', tornado.web.StaticFileHandler, {
'path': path,
'default_filename': 'index.html'
}),
]
from __future__ import unicode_literals
import logging, os, json
import tornado.web
import tornado.websocket
import handlers
from mopidy import config, ext
from frontend import IrisFrontend
from handlers import WebsocketHandler, HttpHandler
from core import IrisCore
from raven import Client
logger = logging.getLogger(__name__)
__version__ = '3.4.5'
##
# Core extension class
#
# Loads config and gets the party started. Initiates any additional frontends, etc.
##
class Extension( ext.Extension ):
dist_name = 'Mopidy-Iris'
ext_name = 'iris'
version = __version__
def get_default_config(self):
conf_file = os.path.join(os.path.dirname(__file__), 'ext.conf')
return config.read(conf_file)
def get_config_schema(self):
schema = config.ConfigSchema(self.ext_name)
schema['enabled'] = config.Boolean()
schema['country'] = config.String()
schema['locale'] = config.String()
schema['authorization_url'] = config.String()
return schema
def setup(self, registry):
# Add web extension
registry.add('http:app', {
'name': self.ext_name,
'factory': iris_factory
})
# create our core instance
mem.iris = IrisCore()
mem.iris.version = self.version
# Connect to our Ravent Sentry error tracker
mem.iris.raven_client = Client(
dsn='https://023e3bf7721b48f29948545fc36a4621:ba30d29174ef4778ac4e141d445607a2@sentry.io/219026',
release=self.version
)
# Add our frontend
registry.add('frontend', IrisFrontend)
def iris_factory(config, core):
path = os.path.join( os.path.dirname(__file__), 'static')
return [
(r"/images/(.*)", tornado.web.StaticFileHandler, {
'path': config['local-images']['image_dir']
}),
(r'/http/([^/]*)', handlers.HttpHandler, {
'core': core,
'config': config
}),
(r'/ws/?', handlers.WebsocketHandler, {
'core': core,
'config': config
}),
(r'/(.*)', tornado.web.StaticFileHandler, {
'path': path,
'default_filename': 'index.html'
}),
]

View File

@ -10,13 +10,19 @@ from mopidy.core import CoreListener
from pkg_resources import parse_version
from tornado.escape import json_encode, json_decode
if sys.platform == 'win32':
import ctypes
# import logger
logger = logging.getLogger(__name__)
class IrisCore(object):
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
queue_metadata = {}
connections = {}

View File

@ -1,49 +1,52 @@
{
"name": "mopidy-iris",
"version": "3.4.5",
"description": "Mopidy HTTP interface",
"repository": "https://github.com/jaedb/iris",
"author": "James Barnsley <james@barnsley.nz>",
"license": "ISC",
"bugs": {
"url": "https://github.com/jaedb/Iris/issues"
},
"main": "app.js",
"dependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0",
"babel-preset-stage-0": "^6.24.1",
"babel-preset-stage-2": "^6.22.0",
"css-loader": "0.28.4",
"expose-loader": "0.7.3",
"extract-text-webpack-plugin": "3.0.0",
"file-loader": "^0.11.2",
"flux": "^3.1.2",
"jquery": "3.1.1",
"mopidy": "^0.5.0",
"node-sass": "^4.5.0",
"react": "15.6.1",
"react-dom": "15.6.1",
"react-fontawesome": "*",
"react-ga": "2.1.2",
"react-redux": "5.0.5",
"react-router": "^3.0.5",
"redux": "3.7.2",
"redux-devtools": "3.4.0",
"redux-thunk": "2.2.0",
"sass-loader": "^6.0.2",
"style-loader": "^0.13.2",
"url-loader": "^0.5.8",
"webpack": "^3.5.1",
"webpack-strip": "0.1.0",
"react-lazyload": "2.2.7"
},
"scripts": {
"build": "./build.sh",
"dev": "./build.sh && NODE_ENV=development webpack --watch",
"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"
}
"name": "mopidy-iris",
"version": "3.4.5",
"description": "Mopidy HTTP interface",
"repository": "https://github.com/jaedb/iris",
"author": "James Barnsley <james@barnsley.nz>",
"license": "ISC",
"bugs": {
"url": "https://github.com/jaedb/Iris/issues"
},
"main": "app.js",
"dependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0",
"babel-preset-stage-0": "^6.24.1",
"babel-preset-stage-2": "^6.22.0",
"css-loader": "0.28.4",
"expose-loader": "0.7.3",
"extract-text-webpack-plugin": "3.0.0",
"file-loader": "^0.11.2",
"flux": "^3.1.2",
"jquery": "3.1.1",
"mopidy": "^0.5.0",
"node-sass": "^4.5.0",
"react": "15.6.1",
"react-dom": "15.6.1",
"react-fontawesome": "*",
"react-ga": "2.1.2",
"react-redux": "5.0.5",
"react-router": "^3.0.5",
"redux": "3.7.2",
"redux-devtools": "3.4.0",
"redux-thunk": "2.2.0",
"sass-loader": "^6.0.2",
"style-loader": "^0.13.2",
"url-loader": "^0.5.8",
"webpack": "^3.5.1",
"webpack-strip": "0.1.0",
"react-lazyload": "2.2.7"
},
"scripts": {
"build": "./build.sh",
"dev": "./build.sh && NODE_ENV=development webpack --watch",
"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"
},
"devDependencies": {
"webpack": "^3.6.0"
}
}