do better with loop cleanup (#3245)

* do better with loop cleanup

* changelog

* remove redundant line

* Do this a bit better than the initial pass

* Improve windows support

Make some other things coroutines to work with improved design

* Wish we'd have done this right from the start...

* Update deps surrounding this

 - see bpo-23057
 - neccessary for windows users
 - nice for consistent support channel info / feature availability

* dep issue

* Fix tests

* duplication plugin py version

* actually handle this

* Reconfigure some checks with codeclimate, disable pylint for now

* style

* Is my exasperation showing yet?

* handle some stupid stuff

* meh

* dep changelog
This commit is contained in:
Michael H
2020-01-01 19:26:32 -05:00
committed by GitHub
parent 22268eed9d
commit a80e20067c
21 changed files with 655 additions and 225 deletions

View File

@@ -33,9 +33,8 @@ def confirm(text: str, default: Optional[bool] = None) -> bool:
print("Error: invalid input")
def interactive_config(red, token_set, prefix_set, *, print_header=True):
loop = asyncio.get_event_loop()
token = ""
async def interactive_config(red, token_set, prefix_set, *, print_header=True):
token = None
if print_header:
print("Red - Discord Bot | Configuration process\n")
@@ -51,9 +50,9 @@ def interactive_config(red, token_set, prefix_set, *, print_header=True):
token = input("> ")
if not len(token) >= 50:
print("That doesn't look like a valid token.")
token = ""
token = None
if token:
loop.run_until_complete(red._config.token.set(token))
await red._config.token.set(token)
if not prefix_set:
prefix = ""
@@ -70,7 +69,7 @@ def interactive_config(red, token_set, prefix_set, *, print_header=True):
if not confirm("Your prefix seems overly long. Are you sure that it's correct?"):
prefix = ""
if prefix:
loop.run_until_complete(red._config.prefix.set([prefix]))
await red._config.prefix.set([prefix])
return token