added dependency checking
- Dependency install states will be checked and will be automatically installed if it isn't.
This commit is contained in:
parent
87bd857bfb
commit
32c837bfb2
64
dance.py
64
dance.py
|
@ -1,3 +1,36 @@
|
|||
import os
|
||||
|
||||
def check_dependencies():
|
||||
def check_dependency_aiohttp():
|
||||
while True:
|
||||
try:
|
||||
import aiohttp
|
||||
except:
|
||||
os.system('pip3 install aiohttp==3.7.4')
|
||||
else:
|
||||
break
|
||||
|
||||
def check_dependency_hidapi():
|
||||
while True:
|
||||
try:
|
||||
import hid
|
||||
except:
|
||||
os.system('pip3 install hidapi'); os.system('pip3 install hid')
|
||||
else:
|
||||
break
|
||||
|
||||
def check_dependency_websockets():
|
||||
while True:
|
||||
try:
|
||||
import websockets
|
||||
except:
|
||||
os.system('pip3 install websockets')
|
||||
else:
|
||||
break
|
||||
|
||||
check_dependency_aiohttp(); check_dependency_hidapi(); check_dependency_websockets()
|
||||
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
import logging
|
||||
|
@ -13,14 +46,14 @@ import hid
|
|||
from aiohttp import WSMsgType, web
|
||||
|
||||
from joydance import JoyDance, PairingState
|
||||
from joydance.constants import (DEFAULT_CONFIG, JOYDANCE_VERSION,
|
||||
WsSubprotocolVersion)
|
||||
from joydance.constants import (DEFAULT_CONFIG, JOYDANCE_VERSION, WsSubprotocolVersion)
|
||||
from pycon import ButtonEventJoyCon, JoyCon
|
||||
from pycon.constants import JOYCON_PRODUCT_IDS, JOYCON_VENDOR_ID
|
||||
|
||||
logging.getLogger('asyncio').setLevel(logging.WARNING)
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
class WsCommand(Enum):
|
||||
GET_JOYCON_LIST = 'get_joycon_list'
|
||||
CONNECT_JOYCON = 'connect_joycon'
|
||||
|
@ -260,24 +293,20 @@ def save_config(parser):
|
|||
|
||||
|
||||
async def on_startup(app):
|
||||
print('''
|
||||
░░ ░░░░░░ ░░ ░░ ░░░░░░ ░░░░░ ░░░ ░░ ░░░░░░ ░░░░░░░
|
||||
▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒ ▒▒ ▒▒ ▒▒
|
||||
▒▒ ▒▒ ▒▒ ▒▒▒▒ ▒▒ ▒▒ ▒▒▒▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒▒
|
||||
▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
|
||||
█████ ██████ ██ ██████ ██ ██ ██ ████ ██████ ███████
|
||||
|
||||
Open http://localhost:32623 in your browser.''')
|
||||
os.system('clear')
|
||||
|
||||
# Check for update
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get('https://api.github.com/repos/redphx/joydance/releases/latest', ssl=False) as resp:
|
||||
json_body = await resp.json()
|
||||
latest_version = json_body['tag_name'][1:]
|
||||
print('Running version {}.'.format(JOYDANCE_VERSION))
|
||||
print('JoyDance V{}.'.format(JOYDANCE_VERSION))
|
||||
if JOYDANCE_VERSION != latest_version:
|
||||
print('\033[93m{}\033[00m'.format('Version {} is available: https://github.com/redphx/joydance'.format(latest_version)))
|
||||
|
||||
time.sleep(2)
|
||||
os.system('open "http://localhost:32623"')
|
||||
|
||||
|
||||
async def html_handler(request):
|
||||
config = dict((parse_config()).items('joydance'))
|
||||
|
@ -343,3 +372,14 @@ app.add_routes([
|
|||
])
|
||||
|
||||
web.run_app(app, port=32623)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
os.system('clear')
|
||||
return(0)
|
||||
|
||||
except TypeError:
|
||||
os.system('clear')
|
||||
return(0)
|
||||
|
||||
check_dependencies()
|
||||
main()
|
||||
|
|
Loading…
Reference in New Issue