From c815a3eda03f53feb050a3cfbf522125a27262f6 Mon Sep 17 00:00:00 2001 From: hikariatama Date: Sun, 21 Aug 2022 22:57:02 +0000 Subject: [PATCH] 1.4.0 - Fix tsec - Rework security - Fix fullstack error --- hikka/log.py | 1 + hikka/modules/hikka_security.py | 16 +++------ hikka/pointers.py | 57 --------------------------------- 3 files changed, 6 insertions(+), 68 deletions(-) diff --git a/hikka/log.py b/hikka/log.py index 7567724..962f7a4 100755 --- a/hikka/log.py +++ b/hikka/log.py @@ -256,6 +256,7 @@ class TelegramLogsHandler(logging.Handler): self._mods[client_id].inline.bot, item[0], ), + "disable_security": True, } ), ) diff --git a/hikka/modules/hikka_security.py b/hikka/modules/hikka_security.py index f6b4cf3..f2914cf 100755 --- a/hikka/modules/hikka_security.py +++ b/hikka/modules/hikka_security.py @@ -671,11 +671,8 @@ class HikkaSecurityMod(loader.Module): ) return - self._db.set( - security.__name__, - group, - list(set(self._db.get(security.__name__, group, []) + [user.id])), - ) + if user.id not in getattr(self._client.dispatcher.security, group): + getattr(self._client.dispatcher.security, group).append(user.id) m = ( self.strings(f"{group}_added").format( @@ -723,11 +720,8 @@ class HikkaSecurityMod(loader.Module): if not user: return - self._db.set( - security.__name__, - group, - list(set(self._db.get(security.__name__, group, [])) - {user.id}), - ) + if user.id in getattr(self._client.dispatcher.security, group): + getattr(self._client.dispatcher.security, group).remove(user.id) m = self.strings(f"{group}_removed").format( user.id, @@ -738,7 +732,7 @@ class HikkaSecurityMod(loader.Module): async def _list_group(self, message: Message, group: str): _resolved_users = [] - for user in self._db.get(security.__name__, group, []) + ( + for user in getattr(self._client.dispatcher.security, group) + ( [self.tg_id] if group == "owner" else [] ): try: diff --git a/hikka/pointers.py b/hikka/pointers.py index c6bdceb..5256350 100644 --- a/hikka/pointers.py +++ b/hikka/pointers.py @@ -17,32 +17,6 @@ class PointerList(list): self._default = default super().__init__(db.get(module, key, default)) - def sync(self): - super().__init__(self._db.get(self._module, self._key, self._default)) - - def __getitem__(self, index: int) -> Any: - self.sync() - return super().__getitem__(index) - - def __iter__(self) -> Iterable: - self.sync() - return super().__iter__() - - def __reversed__(self) -> Iterable: - self.sync() - return super().__reversed__() - - def __contains__(self, item: Any) -> bool: - self.sync() - return super().__contains__(item) - - def __len__(self) -> int: - self.sync() - return super().__len__() - - def __bool__(self) -> bool: - return bool(self._db.get(self._module, self._key, self._default)) - def __repr__(self): return f"PointerList({list(self)})" @@ -114,43 +88,12 @@ class PointerDict(dict): self._default = default super().__init__(db.get(module, key, default)) - def sync(self): - super().__init__(self._db.get(self._module, self._key, self._default)) - def __repr__(self): return f"PointerDict({dict(self)})" def __bool__(self) -> bool: return bool(self._db.get(self._module, self._key, self._default)) - def __reversed__(self) -> Iterable: - self.sync() - return super().__reversed__() - - def __contains__(self, item: Any) -> bool: - self.sync() - return super().__contains__(item) - - def __getitem__(self, key: str) -> Any: - self.sync() - return super().__getitem__(key) - - def __iter__(self) -> Iterable: - self.sync() - return super().__iter__() - - def items(self) -> Iterable: - self.sync() - return super().items() - - def keys(self) -> Iterable: - self.sync() - return super().keys() - - def values(self) -> Iterable: - self.sync() - return super().values() - def __setitem__(self, key: str, value: Any): super().__setitem__(key, value) self._save()