mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
Ensure bot doesn't indefinitely hang on an exception in on_ready (#6202)
This commit is contained in:
parent
48cfde7b8c
commit
bad23a4a93
@ -13,6 +13,7 @@ import importlib.metadata
|
|||||||
from packaging.requirements import Requirement
|
from packaging.requirements import Requirement
|
||||||
from redbot.core import data_manager
|
from redbot.core import data_manager
|
||||||
|
|
||||||
|
from redbot.core.bot import ExitCodes
|
||||||
from redbot.core.commands import RedHelpFormatter, HelpSettings
|
from redbot.core.commands import RedHelpFormatter, HelpSettings
|
||||||
from redbot.core.i18n import (
|
from redbot.core.i18n import (
|
||||||
Translator,
|
Translator,
|
||||||
@ -140,6 +141,13 @@ def init_events(bot, cli_flags):
|
|||||||
|
|
||||||
@bot.event
|
@bot.event
|
||||||
async def on_ready():
|
async def on_ready():
|
||||||
|
try:
|
||||||
|
await _on_ready()
|
||||||
|
except Exception as exc:
|
||||||
|
log.critical("The bot failed to get ready!", exc_info=exc)
|
||||||
|
sys.exit(ExitCodes.CRITICAL)
|
||||||
|
|
||||||
|
async def _on_ready():
|
||||||
if bot._uptime is not None:
|
if bot._uptime is not None:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -170,13 +178,12 @@ def init_events(bot, cli_flags):
|
|||||||
|
|
||||||
outdated_red_message = ""
|
outdated_red_message = ""
|
||||||
rich_outdated_message = ""
|
rich_outdated_message = ""
|
||||||
with contextlib.suppress(aiohttp.ClientError, asyncio.TimeoutError):
|
pypi_version, py_version_req = await fetch_latest_red_version_info()
|
||||||
pypi_version, py_version_req = await fetch_latest_red_version_info()
|
outdated = pypi_version and pypi_version > red_version_info
|
||||||
outdated = pypi_version and pypi_version > red_version_info
|
if outdated:
|
||||||
if outdated:
|
outdated_red_message, rich_outdated_message = get_outdated_red_messages(
|
||||||
outdated_red_message, rich_outdated_message = get_outdated_red_messages(
|
pypi_version, py_version_req
|
||||||
pypi_version, py_version_req
|
)
|
||||||
)
|
|
||||||
|
|
||||||
rich_console = rich.get_console()
|
rich_console = rich.get_console()
|
||||||
rich_console.print(INTRO, style="red", markup=False, highlight=False)
|
rich_console.print(INTRO, style="red", markup=False, highlight=False)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user