serve
This commit is contained in:
parent
087aa39918
commit
8058dbf6ec
@ -3,7 +3,6 @@ import time
|
||||
from io import StringIO
|
||||
from typing import Union, Optional, Callable, Awaitable
|
||||
|
||||
# noinspection PyPackageRequirements
|
||||
import discord
|
||||
|
||||
usertype = Union[discord.abc.User, discord.user.BaseUser, discord.Member, discord.User]
|
||||
|
26
v6d2ctx/serve.py
Normal file
26
v6d2ctx/serve.py
Normal file
@ -0,0 +1,26 @@
|
||||
import asyncio
|
||||
import signal
|
||||
|
||||
import discord
|
||||
|
||||
|
||||
def serve(main, client: discord.Client, loop: asyncio.AbstractEventLoop):
|
||||
async def aclose():
|
||||
await client.change_presence(status=discord.Status.offline)
|
||||
await client.close()
|
||||
|
||||
def close():
|
||||
loop.run_until_complete(aclose())
|
||||
|
||||
def sigtermed(*_args):
|
||||
loop.create_task(aclose())
|
||||
|
||||
if __name__ == '__main__':
|
||||
signal.signal(signal.SIGTERM, sigtermed)
|
||||
try:
|
||||
loop.run_until_complete(main)
|
||||
except (KeyboardInterrupt, InterruptedError, RuntimeError):
|
||||
pass
|
||||
finally:
|
||||
if not client.is_closed():
|
||||
close()
|
Loading…
Reference in New Issue
Block a user