Fix stories types and obscure behavior (#77)

* Fix typos

* Fix obscure undocumented  behavior `edit_story_privacy` method by explicitly defaulting `privacy` parameter to `enums.StoriesPrivacyRules.PUBLIC`
This commit is contained in:
Неолайн 2024-07-07 22:40:29 +03:00 committed by GitHub
parent 1e0f5f85b3
commit 7f55351d89
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 37 deletions

View File

@ -26,7 +26,7 @@ class EditStoryPrivacy:
self: "pyrogram.Client", self: "pyrogram.Client",
chat_id: Union[int, str], chat_id: Union[int, str],
story_id: int, story_id: int,
privacy: "enums.StoriesPrivacyRules" = None, privacy: "enums.StoriesPrivacyRules" = enums.StoriesPrivacyRules.PUBLIC,
allowed_users: List[Union[int, str]] = None, allowed_users: List[Union[int, str]] = None,
disallowed_users: List[Union[int, str]] = None, disallowed_users: List[Union[int, str]] = None,
) -> "types.Story": ) -> "types.Story":
@ -44,7 +44,7 @@ class EditStoryPrivacy:
Story identifier in the chat specified in chat_id. Story identifier in the chat specified in chat_id.
privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*): privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
Story privacy. Story privacy. Defaults to :obj:`~pyrogram.enums.StoriesPrivacyRules.PUBLIC`.
allowed_users (List of ``int`` | ``str``, *optional*): allowed_users (List of ``int`` | ``str``, *optional*):
List of user_id or chat_id of chat users who are allowed to view stories. List of user_id or chat_id of chat users who are allowed to view stories.
@ -76,39 +76,39 @@ class EditStoryPrivacy:
""" """
privacy_rules = [] privacy_rules = []
if privacy: if not privacy:
if privacy == enums.StoriesPrivacyRules.PUBLIC: privacy = enums.StoriesPrivacyRules.PUBLIC
privacy_rules.append(raw.types.InputPrivacyValueAllowAll())
if disallowed_users:
users = [await self.resolve_peer(user_id) for user_id in disallowed_users]
privacy_rules.append(raw.types.InputPrivacyValueDisallowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.CONTACTS:
privacy_rules = [raw.types.InputPrivacyValueAllowContacts()]
if disallowed_users:
users = [await self.resolve_peer(user_id) for user_id in disallowed_users]
privacy_rules.append(raw.types.InputPrivacyValueDisallowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.CLOSE_FRIENDS:
privacy_rules = [raw.types.InputPrivacyValueAllowCloseFriends()]
if allowed_users:
users = [await self.resolve_peer(user_id) for user_id in allowed_users]
privacy_rules.append(raw.types.InputPrivacyValueAllowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.SELECTED_USERS:
_allowed_users = []
_allowed_chats = []
for user in allowed_users: if privacy == enums.StoriesPrivacyRules.PUBLIC:
peer = await self.resolve_peer(user)
if isinstance(peer, raw.types.InputPeerUser):
_allowed_users.append(peer)
elif isinstance(peer, (raw.types.InputPeerChat, raw.types.InputPeerChannel)):
_allowed_chats.append(peer)
if _allowed_users:
privacy_rules.append(raw.types.InputPrivacyValueAllowUsers(users=_allowed_users))
if _allowed_chats:
privacy_rules.append(raw.types.InputPrivacyValueAllowChatParticipants(chats=_allowed_chats))
else:
privacy_rules.append(raw.types.InputPrivacyValueAllowAll()) privacy_rules.append(raw.types.InputPrivacyValueAllowAll())
if disallowed_users:
users = [await self.resolve_peer(user_id) for user_id in disallowed_users]
privacy_rules.append(raw.types.InputPrivacyValueDisallowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.CONTACTS:
privacy_rules = [raw.types.InputPrivacyValueAllowContacts()]
if disallowed_users:
users = [await self.resolve_peer(user_id) for user_id in disallowed_users]
privacy_rules.append(raw.types.InputPrivacyValueDisallowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.CLOSE_FRIENDS:
privacy_rules = [raw.types.InputPrivacyValueAllowCloseFriends()]
if allowed_users:
users = [await self.resolve_peer(user_id) for user_id in allowed_users]
privacy_rules.append(raw.types.InputPrivacyValueAllowUsers(users=users))
elif privacy == enums.StoriesPrivacyRules.SELECTED_USERS:
_allowed_users = []
_allowed_chats = []
for user in allowed_users:
peer = await self.resolve_peer(user)
if isinstance(peer, raw.types.InputPeerUser):
_allowed_users.append(peer)
elif isinstance(peer, (raw.types.InputPeerChat, raw.types.InputPeerChannel)):
_allowed_chats.append(peer)
if _allowed_users:
privacy_rules.append(raw.types.InputPrivacyValueAllowUsers(users=_allowed_users))
if _allowed_chats:
privacy_rules.append(raw.types.InputPrivacyValueAllowChatParticipants(chats=_allowed_chats))
r = await self.invoke( r = await self.invoke(

View File

@ -104,7 +104,7 @@ class Story(Object, Update):
forwards (``int``, *optional*): forwards (``int``, *optional*):
Stories forwards. Stories forwards.
privacy (:obj:`~pyrogram.enums.StoryPrivacyRules`, *optional*): privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
Story privacy. Story privacy.
allowed_users (List of ``int`` | ``str``, *optional*): allowed_users (List of ``int`` | ``str``, *optional*):
@ -158,7 +158,7 @@ class Story(Object, Update):
caption_entities: List["types.MessageEntity"] = None, caption_entities: List["types.MessageEntity"] = None,
views: int = None, views: int = None,
forwards: int = None, forwards: int = None,
privacy: "enums.StoryPrivacyRules" = None, privacy: "enums.StoriesPrivacyRules" = None,
allowed_users: List[Union[int, str]] = None, allowed_users: List[Union[int, str]] = None,
disallowed_users: List[Union[int, str]] = None, disallowed_users: List[Union[int, str]] = None,
reactions: List["types.Reaction"] = None, reactions: List["types.Reaction"] = None,
@ -1605,7 +1605,7 @@ class Story(Object, Update):
async def edit_privacy( async def edit_privacy(
self, self,
privacy: "enums.StoriesPrivacyRules" = None, privacy: "enums.StoriesPrivacyRules" = enums.StoriesPrivacyRules.PUBLIC,
allowed_users: List[Union[int, str]] = None, allowed_users: List[Union[int, str]] = None,
disallowed_users: List[Union[int, str]] = None, disallowed_users: List[Union[int, str]] = None,
) -> "types.Story": ) -> "types.Story":
@ -1627,7 +1627,7 @@ class Story(Object, Update):
Parameters: Parameters:
privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*): privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
Story privacy. Story privacy. Defaults to :obj:`~pyrogram.enums.StoriesPrivacyRules.PUBLIC`.
allowed_users (List of ``int`` | ``str``, *optional*): allowed_users (List of ``int`` | ``str``, *optional*):
List of user_id or chat_id of chat users who are allowed to view stories. List of user_id or chat_id of chat users who are allowed to view stories.