fix (schedule): Bugfixes.
Fix ScheduleUI issue where clear button was not enabling. Fix ScheduleUI menus showing soon entries. Fix ScheduleUI time format being T instead of f. Fix ScheduleUI cancel menu out of order. Add special case format for `_format_until` with 0 distance. Add `TimeSlot` repr. Add `Sesson` repr. Fix issue where noshow could potentially deadlock sessions. Fix issue where `create_booking` could add garbage to cache. Add `bot.idlock` for snowflake locking. Remove valid channel check from clock off. Changed implementation of batchrun. Add `cog.nowid` for easier introspection. Add more logging.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from typing import List, Optional, TYPE_CHECKING
|
||||
import logging
|
||||
import asyncio
|
||||
from weakref import WeakValueDictionary
|
||||
|
||||
import discord
|
||||
from discord.utils import MISSING
|
||||
@@ -44,6 +45,8 @@ class LionBot(Bot):
|
||||
self.core: Optional['CoreCog'] = None
|
||||
self.translator = translator
|
||||
|
||||
self._locks = WeakValueDictionary()
|
||||
|
||||
async def setup_hook(self) -> None:
|
||||
log_context.set(f"APP: {self.application_id}")
|
||||
await self.app_ipc.connect()
|
||||
@@ -81,6 +84,12 @@ class LionBot(Bot):
|
||||
with logging_context(action=f"Dispatch {event_name}"):
|
||||
super().dispatch(event_name, *args, **kwargs)
|
||||
|
||||
def idlock(self, snowflakeid):
|
||||
lock = self._locks.get(snowflakeid, None)
|
||||
if lock is None:
|
||||
lock = self._locks[snowflakeid] = asyncio.Lock()
|
||||
return lock
|
||||
|
||||
async def on_ready(self):
|
||||
logger.info(
|
||||
f"Logged in as {self.application.name}\n"
|
||||
|
||||
Reference in New Issue
Block a user