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

View File

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