|
16 | 16 | # You should have received a copy of the GNU Lesser General Public License |
17 | 17 | # along with Pyrogram. If not, see <http://www.gnu.org/licenses/>. |
18 | 18 |
|
19 | | -from typing import Union, List |
| 19 | +from typing import Union, List, Generator, Optional |
20 | 20 |
|
21 | 21 | import pyrogram |
22 | 22 | from pyrogram.api import types |
@@ -566,15 +566,8 @@ def restrict_member( |
566 | 566 | return self._client.restrict_chat_member( |
567 | 567 | chat_id=self.id, |
568 | 568 | user_id=user_id, |
| 569 | + permissions=permissions, |
569 | 570 | until_date=until_date, |
570 | | - can_send_messages=permissions.can_send_messages, |
571 | | - can_send_media_messages=permissions.can_send_media_messages, |
572 | | - can_send_other_messages=permissions.can_send_other_messages, |
573 | | - can_add_web_page_previews=permissions.can_add_web_page_previews, |
574 | | - can_send_polls=permissions.can_send_polls, |
575 | | - can_change_info=permissions.can_change_info, |
576 | | - can_invite_users=permissions.can_invite_users, |
577 | | - can_pin_messages=permissions.can_pin_messages |
578 | 571 | ) |
579 | 572 |
|
580 | 573 | def promote_member( |
@@ -725,3 +718,125 @@ def export_invite_link(self): |
725 | 718 | """ |
726 | 719 |
|
727 | 720 | return self._client.export_chat_invite_link(self.id) |
| 721 | + |
| 722 | + def get_member( |
| 723 | + self, |
| 724 | + user_id: Union[int, str], |
| 725 | + ) -> "pyrogram.ChatMember": |
| 726 | + """Bound method *get_member* of :obj:`Chat`. |
| 727 | +
|
| 728 | + Use as a shortcut for: |
| 729 | +
|
| 730 | + .. code-block:: python |
| 731 | +
|
| 732 | + client.get_chat_member( |
| 733 | + chat_id=chat_id, |
| 734 | + user_id=user_id |
| 735 | + ) |
| 736 | +
|
| 737 | + Example: |
| 738 | + .. code-block:: python |
| 739 | +
|
| 740 | + chat.get_member(user_id) |
| 741 | +
|
| 742 | + Returns: |
| 743 | + :obj:`ChatMember`: On success, a chat member is returned. |
| 744 | + """ |
| 745 | + |
| 746 | + return self._client.get_chat_member( |
| 747 | + self.id, |
| 748 | + user_id=user_id |
| 749 | + ) |
| 750 | + |
| 751 | + def get_members( |
| 752 | + self, |
| 753 | + offset: int = 0, |
| 754 | + limit: int = 200, |
| 755 | + query: str = "", |
| 756 | + filter: str = "all" |
| 757 | + ) -> List["pyrogram.ChatMember"]: |
| 758 | + """Bound method *get_members* of :obj:`Chat`. |
| 759 | +
|
| 760 | + Use as a shortcut for: |
| 761 | +
|
| 762 | + .. code-block:: python |
| 763 | +
|
| 764 | + client.get_chat_members(chat_id) |
| 765 | +
|
| 766 | + Example: |
| 767 | + .. code-block:: python |
| 768 | +
|
| 769 | + # Get first 200 recent members |
| 770 | + chat.get_members() |
| 771 | +
|
| 772 | + Returns: |
| 773 | + List of :obj:`ChatMember`: On success, a list of chat members is returned. |
| 774 | + """ |
| 775 | + |
| 776 | + return self._client.get_chat_members( |
| 777 | + self.id, |
| 778 | + offset=offset, |
| 779 | + limit=limit, |
| 780 | + query=query, |
| 781 | + filter=filter |
| 782 | + ) |
| 783 | + |
| 784 | + def iter_members( |
| 785 | + self, |
| 786 | + limit: int = 0, |
| 787 | + query: str = "", |
| 788 | + filter: str = "all" |
| 789 | + ) -> Optional[Generator["pyrogram.ChatMember", None, None]]: |
| 790 | + """Bound method *iter_members* of :obj:`Chat`. |
| 791 | +
|
| 792 | + Use as a shortcut for: |
| 793 | +
|
| 794 | + .. code-block:: python |
| 795 | +
|
| 796 | + for member in client.iter_chat_members(chat_id): |
| 797 | + print(member.user.first_name) |
| 798 | +
|
| 799 | + Example: |
| 800 | + .. code-block:: python |
| 801 | +
|
| 802 | + for member in chat.iter_members(): |
| 803 | + print(member.user.first_name) |
| 804 | +
|
| 805 | + Returns: |
| 806 | + ``Generator``: A generator yielding :obj:`ChatMember` objects. |
| 807 | + """ |
| 808 | + |
| 809 | + return self._client.iter_chat_members( |
| 810 | + self.id, |
| 811 | + limit=limit, |
| 812 | + query=query, |
| 813 | + filter=filter |
| 814 | + ) |
| 815 | + |
| 816 | + def add_members( |
| 817 | + self, |
| 818 | + user_ids: Union[Union[int, str], List[Union[int, str]]], |
| 819 | + forward_limit: int = 100 |
| 820 | + ) -> bool: |
| 821 | + """Bound method *add_members* of :obj:`Chat`. |
| 822 | +
|
| 823 | + Use as a shortcut for: |
| 824 | +
|
| 825 | + .. code-block:: python |
| 826 | +
|
| 827 | + client.add_chat_members(chat_id, user_id) |
| 828 | +
|
| 829 | + Example: |
| 830 | + .. code-block:: python |
| 831 | +
|
| 832 | + chat.add_members(user_id) |
| 833 | +
|
| 834 | + Returns: |
| 835 | + ``bool``: On success, True is returned. |
| 836 | + """ |
| 837 | + |
| 838 | + return self._client.add_chat_members( |
| 839 | + self.id, |
| 840 | + user_ids=user_ids, |
| 841 | + forward_limit=forward_limit |
| 842 | + ) |
0 commit comments