Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def update(self, config: Dict[str, Any]) -> None:
default = {
'privacy': PartyPrivacy.PUBLIC.value,
'joinability': PartyJoinability.OPEN.value,
'discoverability': PartyDiscoverability.ALL.value,
'max_size': 16,
'invite_ttl_seconds': 14400,
'chat_enabled': True,
'join_confirmation': False,
'sub_type': 'default',
'type': 'DEFAULT',
}
to_update = {}
for key, value in config.items():
if isinstance(value, Enum):
to_update[key] = value.value
default_config = {**default, **self._config}
'joinability': data['party_privacy_type'],
'max_size': data['max_number_of_members'],
'sub_type': data['party_sub_type'],
'type': data['party_type'],
'invite_ttl_seconds': data['invite_ttl_seconds']
}
self._update_config({**self.config, **config})
self.meta.update(data['party_state_updated'], raw=True)
self.meta.remove(data['party_state_removed'])
privacy = self.meta.get_prop('Default:PrivacySettings_j')
c = privacy['PrivacySettings']
found = False
for d in PartyPrivacy:
p = d.value
if p['partyType'] != c['partyType']:
continue
if p['inviteRestriction'] != c['partyInviteRestriction']:
continue
if p['onlyLeaderFriendsCanJoin'] != c['bOnlyLeaderFriendsCanJoin']:
continue
found = p
break
if found:
self.config['privacy'] = found
if self.client.status is not False:
self.update_presence()
def _update_privacy(self, args: list) -> None:
for arg in args:
if isinstance(arg, PartyPrivacy):
self.update({'privacy': arg})
break
def privacy(self) -> Optional[PartyPrivacy]:
raw = self.get_prop('Default:PrivacySettings_j')
curr_priv = raw['PrivacySettings']
for privacy in PartyPrivacy:
if curr_priv['partyType'] != privacy.value['partyType']:
continue
try:
if (curr_priv['partyInviteRestriction']
!= privacy.value['partyInviteRestriction']):
continue
if (curr_priv['bOnlyLeaderFriendsCanJoin']
!= privacy.value['bOnlyLeaderFriendsCanJoin']):
continue
except KeyError:
pass
return privacy