mirror of
https://github.com/nexy7574/LCC-bot.git
synced 2024-09-19 18:16:34 +01:00
Migrate client.py to logging
This commit is contained in:
parent
7b7ae4b024
commit
e7601fd1d3
1 changed files with 23 additions and 17 deletions
|
@ -1,4 +1,5 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import logging
|
||||||
import sys
|
import sys
|
||||||
from asyncio import Lock
|
from asyncio import Lock
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
@ -30,37 +31,40 @@ class Bot(commands.Bot):
|
||||||
super().__init__(
|
super().__init__(
|
||||||
command_prefix=commands.when_mentioned_or(*prefixes),
|
command_prefix=commands.when_mentioned_or(*prefixes),
|
||||||
debug_guilds=guilds,
|
debug_guilds=guilds,
|
||||||
allowed_mentions=discord.AllowedMentions.none(),
|
allowed_mentions=discord.AllowedMentions(everyone=False, users=True, roles=False, replied_user=True),
|
||||||
intents=intents,
|
intents=intents,
|
||||||
max_messages=5000,
|
max_messages=5000,
|
||||||
case_insensitive=True,
|
case_insensitive=True,
|
||||||
)
|
)
|
||||||
self.loop.run_until_complete(registry.create_all())
|
self.loop.run_until_complete(registry.create_all())
|
||||||
self.training_lock = Lock()
|
self.training_lock = Lock()
|
||||||
self.started_at = datetime.now(tz=timezone.utc)
|
self.started_at = discord.utils.utcnow()
|
||||||
self.console = console
|
self.console = console
|
||||||
self.incidents = {}
|
self.log = log = logging.getLogger("jimmy.client")
|
||||||
|
self.debug = log.debug
|
||||||
|
self.info = log.info
|
||||||
|
self.warning = self.warn = log.warning
|
||||||
|
self.error = self.log.error
|
||||||
|
self.critical = self.log.critical
|
||||||
for ext in extensions:
|
for ext in extensions:
|
||||||
try:
|
try:
|
||||||
self.load_extension(ext)
|
self.load_extension(ext)
|
||||||
except discord.ExtensionNotFound:
|
except discord.ExtensionNotFound:
|
||||||
console.log(f"[red]Failed to load extension {ext}: Extension not found.")
|
log.error(f"[red]Failed to load extension {ext}: Extension not found.")
|
||||||
except (discord.ExtensionFailed, OSError) as e:
|
except (discord.ExtensionFailed, OSError) as e:
|
||||||
console.log(f"[red]Failed to load extension {ext}: {e}")
|
log.error(f"[red]Failed to load extension {ext}: {e}", exc_info=True)
|
||||||
if getattr(config, "dev", False):
|
|
||||||
console.print_exception()
|
|
||||||
else:
|
else:
|
||||||
console.log(f"Loaded extension [green]{ext}")
|
log.info(f"Loaded extension [green]{ext}")
|
||||||
|
|
||||||
if getattr(config, "CONNECT_MODE", None) == 2:
|
if getattr(config, "CONNECT_MODE", None) == 2:
|
||||||
|
|
||||||
async def connect(self, *, reconnect: bool = True) -> None:
|
async def connect(self, *, reconnect: bool = True) -> None:
|
||||||
self.console.log("Exit target 2 reached, shutting down (not connecting to discord).")
|
self.log.critical("Exit target 2 reached, shutting down (not connecting to discord).")
|
||||||
return
|
return
|
||||||
|
|
||||||
async def on_error(self, event: str, *args, **kwargs):
|
async def on_error(self, event: str, *args, **kwargs):
|
||||||
e_type, e, tb = sys.exc_info()
|
e_type, e, tb = sys.exc_info()
|
||||||
if isinstance(e, discord.NotFound) and e.code == 10062: # invalid interaction
|
if isinstance(e, discord.NotFound) and e.code == 10062: # invalid interaction
|
||||||
|
self.log.warning(f"Invalid interaction received, ignoring. {e!r}")
|
||||||
return
|
return
|
||||||
if isinstance(e, discord.CheckFailure) and "The global check once functions failed." in str(e):
|
if isinstance(e, discord.CheckFailure) and "The global check once functions failed." in str(e):
|
||||||
return
|
return
|
||||||
|
@ -69,25 +73,27 @@ class Bot(commands.Bot):
|
||||||
async def close(self) -> None:
|
async def close(self) -> None:
|
||||||
await self.http.close()
|
await self.http.close()
|
||||||
if getattr(self, "web", None) is not None:
|
if getattr(self, "web", None) is not None:
|
||||||
self.console.log("Closing web server...")
|
self.log.info("Closing web server...")
|
||||||
await self.web["server"].shutdown()
|
try:
|
||||||
if hasattr(self, "web"):
|
await asyncio.wait_for(self.web["server"].shutdown(), timeout=5)
|
||||||
self.web["task"].cancel()
|
self.web["task"].cancel()
|
||||||
self.console.log("Web server closed.")
|
self.console.log("Web server closed.")
|
||||||
try:
|
try:
|
||||||
await self.web["task"]
|
await asyncio.wait_for(self.web["task"], timeout=5)
|
||||||
except asyncio.CancelledError:
|
except (asyncio.CancelledError, asyncio.TimeoutError):
|
||||||
pass
|
pass
|
||||||
del self.web["server"]
|
del self.web["server"]
|
||||||
del self.web["config"]
|
del self.web["config"]
|
||||||
del self.web["task"]
|
del self.web["task"]
|
||||||
del self.web
|
del self.web
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
pass
|
||||||
try:
|
try:
|
||||||
await super().close()
|
await super().close()
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
self.console.log("Timed out while closing, forcing shutdown.")
|
self.log.critical("Timed out while closing, forcing shutdown.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
self.console.log("Finished shutting down.")
|
self.log.info("Finished shutting down.")
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue