From 78275023ccdbb460d0cd207834882ff29ae4e10c Mon Sep 17 00:00:00 2001 From: Rapptz Date: Mon, 31 May 2021 23:15:12 -0400 Subject: Add Client.persistent_views to get all persistent views --- discord/ui/view.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'discord/ui') diff --git a/discord/ui/view.py b/discord/ui/view.py index b6ddf4e6..f6dac241 100644 --- a/discord/ui/view.py +++ b/discord/ui/view.py @@ -23,7 +23,7 @@ DEALINGS IN THE SOFTWARE. """ from __future__ import annotations -from typing import Any, Callable, ClassVar, Dict, Iterator, List, Optional, TYPE_CHECKING, Tuple +from typing import Any, Callable, ClassVar, Dict, Iterator, List, Optional, Sequence, TYPE_CHECKING, Tuple from functools import partial from itertools import groupby @@ -370,6 +370,15 @@ class ViewStore: self._synced_message_views: Dict[int, View] = {} self._state: ConnectionState = state + @property + def persistent_views(self) -> Sequence[View]: + views = { + view.id: view + for (_, (view, _, _)) in self._views.items() + if view.is_persistent() + } + return list(views.values()) + def __verify_integrity(self): to_remove: List[Tuple[int, str]] = [] now = time.monotonic() -- cgit v1.2.3