Compare commits

..

3 commits

Author SHA1 Message Date
1dfa03bc17 bot: db: add missing type annotation for bulk_update
All checks were successful
/ test (push) Successful in 18s
Signed-off-by: Max R. Carrara <max@aequito.sh>
2025-03-11 22:57:33 +01:00
80918f7a42 bot: main: register event handlers inside separate function
Makes the overall program flow nicer.

Signed-off-by: Max R. Carrara <max@aequito.sh>
2025-03-11 22:33:52 +01:00
14be2289a9 bot: main: fix description not being split
Signed-off-by: Max R. Carrara <max@aequito.sh>
2025-03-11 22:33:26 +01:00
2 changed files with 57 additions and 53 deletions

View file

@ -128,7 +128,10 @@ class BaseModel(peewee.Model):
@classmethod @classmethod
def bulk_update( def bulk_update(
cls, model_list: Iterable[Self], fields: Iterable, batch_size: int | None = None cls,
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,7 +81,8 @@ def setup_bot() -> commands.Bot:
] ]
description = "\n\n".join( description = "\n\n".join(
" ".join(line.strip() for line in paragraph) for paragraph in desc_paragraphs " ".join(line.strip() for line in paragraph.split("\n"))
for paragraph in desc_paragraphs
) )
command_prefix = Environment.bot_prefix() command_prefix = Environment.bot_prefix()
@ -110,9 +111,13 @@ def read_token_file() -> str:
raise e raise e
bot = setup_bot() # Note: pyright will complain about the async functions below not being accessed;
# 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.
#
# ruff doesn't complain, though.
def register_event_handlers(bot: commands.Bot):
@bot.event @bot.event
async def on_error(event: str, *args, **kwargs): async def on_error(event: str, *args, **kwargs):
_log.error( _log.error(
@ -120,32 +125,26 @@ async def on_error(event: str, *args, **kwargs):
exc_info=sys.exc_info(), exc_info=sys.exc_info(),
) )
@bot.event @bot.event
async def on_ready(): async def on_ready():
_log.info("Ready: Connected to Discord") _log.info("Ready: Connected to Discord")
@bot.event @bot.event
async def on_resumed(): async def on_resumed():
_log.info("Resumed: Session with Discord resumed") _log.info("Resumed: Session with Discord resumed")
@bot.event @bot.event
async def on_shard_ready(shard_id: int): 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 @bot.event
async def on_shard_resumed(shard_id: int): 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 @bot.event
async def on_message(message: discord.Message): 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 @bot.event
async def on_command(ctx: commands.Context): async def on_command(ctx: commands.Context):
_log.debug( _log.debug(
@ -153,7 +152,6 @@ async def on_command(ctx: commands.Context):
f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }" f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }"
) )
@bot.event @bot.event
async def on_command_completion(ctx: commands.Context): async def on_command_completion(ctx: commands.Context):
_log.debug( _log.debug(
@ -161,7 +159,6 @@ async def on_command_completion(ctx: commands.Context):
f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }" f" {ctx.command = }; {ctx.message.author = }; {ctx.message.id = }"
) )
@bot.event @bot.event
async def on_command_error(ctx: commands.Context, error: commands.CommandError): async def on_command_error(ctx: commands.Context, error: commands.CommandError):
_log.error( _log.error(
@ -174,6 +171,10 @@ async def on_command_error(ctx: commands.Context, error: commands.CommandError):
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: