From 1724a00e4c21425b640c79f8f5b29de9e7da0484 Mon Sep 17 00:00:00 2001 From: BarsTiger Date: Sun, 15 Oct 2023 23:40:08 +0300 Subject: [PATCH] Fix FSM --- bot/modules/fsm/in_db.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/bot/modules/fsm/in_db.py b/bot/modules/fsm/in_db.py index 702d4d2..61b1eed 100644 --- a/bot/modules/fsm/in_db.py +++ b/bot/modules/fsm/in_db.py @@ -16,9 +16,23 @@ class MemoryStorageRecord: state: Optional[str] = None +class StorageDict(DefaultDict): + def __init__(self, default_factory=None, **kwargs) -> None: + if type(db.fsm.get('fsm')) is not dict: + db.fsm['fsm'] = dict() + + super().__init__(default_factory, db.fsm['fsm']) + + def __setitem__(self, key, value): + super().__setitem__(key, value) + db.fsm['fsm'] = dict(self) + + class InDbStorage(BaseStorage): def __init__(self) -> None: - self.storage: DefaultDict[StorageKey, MemoryStorageRecord] = db.fsm + self.storage: StorageDict[StorageKey, MemoryStorageRecord] = StorageDict( + MemoryStorageRecord + ) async def close(self) -> None: pass