mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 10:17:59 -05:00
Be quieter in expected shutdown cases (#3261)
* Be quieter in expected cases * lets put this in the log file * inline description use because setuptools entrypoint scripts are dumb * Another setuptools entrypoint related issue * maybe don't crash the bot on tasks * improve the handling a bit more + document some of the lower level bits from the perspective of 'why?' * Adding myself to codeowners on this one * Let's not clobber our exit code * And, there we go * finish that thought * right, I bumped the python version for (part of) this * Update redbot/__main__.py Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com> * Okay, we should be good now * correct exit code enum use * cosmetic * minor fix for linux and ctrl+c Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
@@ -7,7 +7,7 @@ import shutil
|
||||
import sys
|
||||
from collections import namedtuple
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from enum import IntEnum
|
||||
from importlib.machinery import ModuleSpec
|
||||
from pathlib import Path
|
||||
from typing import Optional, Union, List, Dict, NoReturn
|
||||
@@ -132,10 +132,6 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): # pylint: d
|
||||
if cli_flags.owner and "owner_id" not in kwargs:
|
||||
kwargs["owner_id"] = cli_flags.owner
|
||||
|
||||
if "owner_id" not in kwargs:
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(self._dict_abuse(kwargs))
|
||||
|
||||
if "command_not_found" not in kwargs:
|
||||
kwargs["command_not_found"] = "Command {} not found.\n{}"
|
||||
|
||||
@@ -408,6 +404,9 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): # pylint: d
|
||||
init_global_checks(self)
|
||||
init_events(self, cli_flags)
|
||||
|
||||
i18n_locale = await self._config.locale()
|
||||
i18n.set_locale(i18n_locale)
|
||||
|
||||
self.add_cog(Core(self))
|
||||
self.add_cog(CogManagerUI())
|
||||
self.add_command(license_info_command)
|
||||
@@ -527,17 +526,6 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): # pylint: d
|
||||
"""
|
||||
return await self._help_formatter.send_help(ctx, help_for)
|
||||
|
||||
async def _dict_abuse(self, indict):
|
||||
"""
|
||||
Please blame <@269933075037814786> for this.
|
||||
|
||||
:param indict:
|
||||
:return:
|
||||
"""
|
||||
|
||||
indict["owner_id"] = await self._config.owner()
|
||||
i18n.set_locale(await self._config.locale())
|
||||
|
||||
async def embed_requested(self, channel, user, command=None) -> bool:
|
||||
"""
|
||||
Determine if an embed is requested for a response.
|
||||
@@ -654,9 +642,9 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): # pylint: d
|
||||
"""
|
||||
Sets shared API tokens for a service
|
||||
|
||||
In most cases, this should not be used. Users should instead be using the
|
||||
In most cases, this should not be used. Users should instead be using the
|
||||
``set api`` command
|
||||
|
||||
|
||||
This will not clear existing values not specified.
|
||||
|
||||
Parameters
|
||||
@@ -1098,7 +1086,9 @@ class Red(RedBase, discord.AutoShardedClient):
|
||||
sys.exit(self._shutdown_mode)
|
||||
|
||||
|
||||
class ExitCodes(Enum):
|
||||
class ExitCodes(IntEnum):
|
||||
# This needs to be an int enum to be used
|
||||
# with sys.exit
|
||||
CRITICAL = 1
|
||||
SHUTDOWN = 0
|
||||
RESTART = 26
|
||||
|
||||
Reference in New Issue
Block a user