serve
This commit is contained in:
parent
087aa39918
commit
8058dbf6ec
@ -3,7 +3,6 @@ import time
|
|||||||
from io import StringIO
|
from io import StringIO
|
||||||
from typing import Union, Optional, Callable, Awaitable
|
from typing import Union, Optional, Callable, Awaitable
|
||||||
|
|
||||||
# noinspection PyPackageRequirements
|
|
||||||
import discord
|
import discord
|
||||||
|
|
||||||
usertype = Union[discord.abc.User, discord.user.BaseUser, discord.Member, discord.User]
|
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