From 82cd56ace834f8df7a3ffcb88d12bbfdedb302f0 Mon Sep 17 00:00:00 2001 From: ErrorNoInternet Date: Sun, 5 Jan 2025 19:24:44 -0500 Subject: [PATCH] refactor(state): switch to LimitedSizeDict --- state.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/state.py b/state.py index 7dadd08..f840584 100644 --- a/state.py +++ b/state.py @@ -1,9 +1,27 @@ +import collections import time import disnake -command_locks = {} -executed_messages = {} + +class LimitedSizeDict(collections.OrderedDict): + def __init__(self, *args, **kwds): + self.size_limit = kwds.pop("size_limit", 1000) + super().__init__(*args, **kwds) + self._check_size_limit() + + def __setitem__(self, key, value): + super().__setitem__(key, value) + self._check_size_limit() + + def _check_size_limit(self): + if self.size_limit is not None: + while len(self) > self.size_limit: + self.popitem(last=False) + + +command_locks = LimitedSizeDict() +message_responses = LimitedSizeDict() players = {} intents = disnake.Intents.default()