Compare commits

..

No commits in common. "1dfa03bc175d259b01ebe26ee80fa0fcce1aac5d" and "663abf56bca44f966538bcfeb6e32f0775020f17" have entirely different histories.

2 changed files with 53 additions and 57 deletions

View file

@ -128,10 +128,7 @@ class BaseModel(peewee.Model):
@classmethod @classmethod
def bulk_update( def bulk_update(
cls, cls, model_list: Iterable[Self], fields: Iterable, batch_size: int | None = None
model_list: Iterable[Self],
fields: Iterable[peewee.Field | str],
batch_size: int | None = None,
): ):
def lazy(models: Iterable[Self]) -> Iterable[Self]: def lazy(models: Iterable[Self]) -> Iterable[Self]:
now = datetime.now() now = datetime.now()

View file

@ -81,8 +81,7 @@ def setup_bot() -> commands.Bot:
] ]
description = "\n\n".join( description = "\n\n".join(
" ".join(line.strip() for line in paragraph.split("\n")) " ".join(line.strip() for line in paragraph) for paragraph in desc_paragraphs
for paragraph in desc_paragraphs
) )
command_prefix = Environment.bot_prefix() command_prefix = Environment.bot_prefix()
@ -111,56 +110,60 @@ def read_token_file() -> str:
raise e raise e
# Note: pyright will complain about the async functions below not being accessed; bot = setup_bot()
# this is a false positive, as the @bot.event decorators actually register and
# use the functions just fine. Unfortunately, it's not possible to silence the
# warning, so I'll have to deal with it. @bot.event
# async def on_error(event: str, *args, **kwargs):
# ruff doesn't complain, though.
def register_event_handlers(bot: commands.Bot):
@bot.event
async def on_error(event: str, *args, **kwargs):
_log.error( _log.error(
f"Encountered unexpected exception while processing event {event} ({args = }; {kwargs = }):", f"Encountered unexpected exception while processing event {event} ({args = }; {kwargs = }):",
exc_info=sys.exc_info(), exc_info=sys.exc_info(),
) )
@bot.event
async def on_ready(): @bot.event
async def on_ready():
_log.info("Ready: Connected to Discord") _log.info("Ready: Connected to Discord")
@bot.event
async def on_resumed(): @bot.event
async def on_resumed():
_log.info("Resumed: Session with Discord resumed") _log.info("Resumed: Session with Discord resumed")
@bot.event
async def on_shard_ready(shard_id: int): @bot.event
async def on_shard_ready(shard_id: int):
_log.info(f"Ready: Shard ID {shard_id} connected to Discord") _log.info(f"Ready: Shard ID {shard_id} connected to Discord")
@bot.event
async def on_shard_resumed(shard_id: int): @bot.event
async def on_shard_resumed(shard_id: int):
_log.info(f"Resumed: Shard ID {shard_id} resumed session with Discord") _log.info(f"Resumed: Shard ID {shard_id} resumed session with Discord")
@bot.event
async def on_message(message: discord.Message): @bot.event
async def on_message(message: discord.Message):
_log.debug(f"Read message ({message.id = }): {message.content}") _log.debug(f"Read message ({message.id = }): {message.content}")
@bot.event
async def on_command(ctx: commands.Context): @bot.event
async def on_command(ctx: commands.Context):
_log.debug( _log.debug(
f"Command invoked:" f"Command invoked:"
f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }" f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }"
) )
@bot.event
async def on_command_completion(ctx: commands.Context): @bot.event
async def on_command_completion(ctx: commands.Context):
_log.debug( _log.debug(
f"Command completed:" f"Command completed:"
f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }" f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }"
) )
@bot.event
async def on_command_error(ctx: commands.Context, error: commands.CommandError): @bot.event
async def on_command_error(ctx: commands.Context, error: commands.CommandError):
_log.error( _log.error(
f"Failed to run command:" f"Failed to run command:"
f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }", f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }",
@ -171,10 +174,6 @@ def register_event_handlers(bot: commands.Bot):
async def main(): async def main():
_log.debug("Entered main()") _log.debug("Entered main()")
bot = setup_bot()
register_event_handlers(bot)
token = read_token_file() token = read_token_file()
async with bot: async with bot: