restore python 3.7 client compat

This commit is contained in:
Fabian Dill 2020-06-06 22:54:09 +02:00
parent b57dd3c454
commit 829c9c2045
2 changed files with 14 additions and 7 deletions

View File

@ -9,6 +9,8 @@ import functools
import webbrowser
import multiprocessing
import socket
import sys
import typing
from random import randrange
@ -23,7 +25,7 @@ ModuleUpdate.update()
import colorama
import websockets
import prompt_toolkit
import typing
from prompt_toolkit.patch_stdout import patch_stdout
from NetUtils import Endpoint
import WebUI
@ -35,8 +37,10 @@ import Utils
def create_named_task(coro, *args, name=None):
if not name:
name = coro.__name__
print(name)
return asyncio.create_task(coro, *args, name=name)
if sys.version_info.major > 2 and sys.version_info.minor > 7:
return asyncio.create_task(coro, *args, name=name)
else:
return asyncio.create_task(coro, *args)
class Context():
@ -1289,16 +1293,16 @@ async def main():
asyncio.create_task(run_game(romfile))
ctx = Context(args.snes, args.connect, args.password, args.founditems, port)
input_task = asyncio.create_task(console_loop(ctx), name="Input")
input_task = create_named_task(console_loop(ctx), name="Input")
if not args.disable_web_ui:
ui_socket = websockets.serve(functools.partial(websocket_server, ctx=ctx),
'localhost', port, ping_timeout=None, ping_interval=None)
await ui_socket
if ctx.server_task is None:
ctx.server_task = asyncio.create_task(server_loop(ctx), name="ServerLoop")
ctx.server_task = create_named_task(server_loop(ctx), name="ServerLoop")
watcher_task = asyncio.create_task(game_watcher(ctx), name="GameWatcher")
watcher_task = create_named_task(game_watcher(ctx), name="GameWatcher")
await ctx.exit_event.wait()
ctx.server_address = None

View File

@ -5,6 +5,7 @@ import socket
import socketserver
import threading
import webbrowser
import asyncio
from functools import partial
from NetUtils import Node
@ -43,6 +44,9 @@ class WebUiClient(Node):
self.broadcast_all(self.build_message('chat', message))
def send_connection_status(self, ctx: Context):
asyncio.create_task(self._send_connection_status(ctx))
async def _send_connection_status(self, ctx: Context):
cache = Utils.persistent_load()
cached_address = cache["servers"]["default"] if cache else None
server_address = ctx.server_address if ctx.server_address else cached_address if cached_address else None
@ -53,7 +57,6 @@ class WebUiClient(Node):
'serverAddress': server_address,
'server': 1 if ctx.server is not None and not ctx.server.socket.closed else 0,
}))
def send_device_list(self, devices):
self.broadcast_all(self.build_message('availableDevices', {
'devices': devices,