mirror of https://gitlab.com/litecord/litecord.git
pubsub.lazy_guild: change some instance vars to properties
- utils: add index_by_func
This commit is contained in:
parent
7bcd08ef7a
commit
c212cbd392
|
|
@ -12,6 +12,7 @@ from litecord.pubsub.dispatcher import Dispatcher
|
|||
from litecord.permissions import (
|
||||
Permissions, overwrite_find_mix, get_permissions, role_permissions
|
||||
)
|
||||
from litecord.utils import index_by_func
|
||||
|
||||
log = Logger(__name__)
|
||||
|
||||
|
|
@ -88,19 +89,30 @@ class GuildMemberList:
|
|||
self.guild_id = guild_id
|
||||
self.channel_id = channel_id
|
||||
|
||||
# a really long chain of classes to get
|
||||
# to the storage instance...
|
||||
self.main = main_lg
|
||||
self.storage = self.main.app.storage
|
||||
self.presence = self.main.app.presence
|
||||
self.state_man = self.main.app.state_manager
|
||||
|
||||
self.list = MemberList(None, None, None, None)
|
||||
|
||||
#: {session_id: set[list]}
|
||||
#: store the states that are subscribed to the list
|
||||
# type is{session_id: set[list]}
|
||||
self.state = defaultdict(set)
|
||||
|
||||
@property
|
||||
def storage(self):
|
||||
"""Get the global :class:`Storage` instance."""
|
||||
return self.main.app.storage
|
||||
|
||||
@property
|
||||
def presence(self):
|
||||
"""Get the global :class:`PresenceManager` instance."""
|
||||
return self.main.app.presence
|
||||
|
||||
@property
|
||||
def state_man(self):
|
||||
"""Get the global :class:`StateManager` instance."""
|
||||
return self.main.app.state_manager
|
||||
|
||||
def _set_empty_list(self):
|
||||
"""Set the member list as being empty."""
|
||||
self.list = MemberList(None, None, None, None)
|
||||
|
||||
async def _init_check(self):
|
||||
|
|
|
|||
|
|
@ -27,3 +27,13 @@ async def task_wrapper(name: str, coro):
|
|||
def dict_get(mapping, key, default):
|
||||
"""Return `default` even when mapping[key] is None."""
|
||||
return mapping.get(key) or default
|
||||
|
||||
|
||||
def index_by_func(function, indexable: iter) -> int:
|
||||
"""Search in an idexable and return the index number
|
||||
for an iterm that has func(item) = True."""
|
||||
for index, item in indexable:
|
||||
if function(item):
|
||||
return index
|
||||
|
||||
return None
|
||||
|
|
|
|||
Loading…
Reference in New Issue