From 367be6f6eb6113c41784c2dffbc77b1b71726ef0 Mon Sep 17 00:00:00 2001 From: wulan17 Date: Fri, 18 Aug 2023 01:49:22 +0700 Subject: [PATCH] Pyrofork: Add chat_joined_by_request Signed-off-by: wulan17 --- compiler/docs/compiler.py | 1 + pyrogram/enums/message_service_type.py | 14 +++++---- pyrogram/types/messages_and_media/message.py | 21 ++++++++++---- pyrogram/types/user_and_chats/__init__.py | 13 +++++---- .../user_and_chats/chat_joined_by_request.py | 29 +++++++++++++++++++ 5 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 pyrogram/types/user_and_chats/chat_joined_by_request.py diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index 722791b4..f1bc0b1a 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -385,6 +385,7 @@ def pyrogram_api(): ChatEventFilter ChatMemberUpdated ChatJoinRequest + ChatJoinedByRequest ChatJoiner Dialog Restriction diff --git a/pyrogram/enums/message_service_type.py b/pyrogram/enums/message_service_type.py index 8a60e29e..18e8688e 100644 --- a/pyrogram/enums/message_service_type.py +++ b/pyrogram/enums/message_service_type.py @@ -1,20 +1,21 @@ -# Pyrogram - Telegram MTProto API Client Library for Python +# Pyrofork - Telegram MTProto API Client Library for Python # Copyright (C) 2017-present Dan +# Copyright (C) 2022-present Mayuri-Chan # -# This file is part of Pyrogram. +# This file is part of Pyrofork. # -# Pyrogram is free software: you can redistribute it and/or modify +# Pyrofork is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# Pyrogram is distributed in the hope that it will be useful, +# Pyrofork is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License -# along with Pyrogram. If not, see . +# along with Pyrofork. If not, see . from enum import auto @@ -27,6 +28,9 @@ class MessageServiceType(AutoName): NEW_CHAT_MEMBERS = auto() "New members join" + CHAT_JOINED_BY_REQUEST = auto() + "a member chat join request approved by admin." + LEFT_CHAT_MEMBERS = auto() "Left chat members" diff --git a/pyrogram/types/messages_and_media/message.py b/pyrogram/types/messages_and_media/message.py index 62a85b75..9763c3de 100644 --- a/pyrogram/types/messages_and_media/message.py +++ b/pyrogram/types/messages_and_media/message.py @@ -1,20 +1,21 @@ -# Pyrogram - Telegram MTProto API Client Library for Python +# Pyrofork - Telegram MTProto API Client Library for Python # Copyright (C) 2017-present Dan +# Copyright (C) 2022-present Mayuri-Chan # -# This file is part of Pyrogram. +# This file is part of Pyrofork. # -# Pyrogram is free software: you can redistribute it and/or modify +# Pyrofork is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# Pyrogram is distributed in the hope that it will be useful, +# Pyrofork is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License -# along with Pyrogram. If not, see . +# along with Pyrofork. If not, see . import logging from datetime import datetime @@ -207,6 +208,9 @@ class Message(Object, Update): New members that were added to the group or supergroup and information about them (the bot itself may be one of these members). + chat_joined_by_request (:obj:`~pyrogram.types.ChatJoinedByRequest`, *optional*): + New members chat join request has been approved in group or supergroup. + left_chat_member (:obj:`~pyrogram.types.User`, *optional*): A member was removed from the group, information about them (this member may be the bot itself). @@ -356,6 +360,7 @@ class Message(Object, Update): poll: "types.Poll" = None, dice: "types.Dice" = None, new_chat_members: List["types.User"] = None, + chat_joined_by_request: "types.ChatJoinedByRequest" = None, left_chat_member: "types.User" = None, new_chat_title: str = None, new_chat_photo: "types.Photo" = None, @@ -433,6 +438,7 @@ class Message(Object, Update): self.poll = poll self.dice = dice self.new_chat_members = new_chat_members + self.chat_joined_by_request = chat_joined_by_request self.left_chat_member = left_chat_member self.new_chat_title = new_chat_title self.new_chat_photo = new_chat_photo @@ -494,6 +500,7 @@ class Message(Object, Update): action = message.action new_chat_members = None + chat_joined_by_request = None left_chat_member = None new_chat_title = None delete_chat_photo = None @@ -516,6 +523,9 @@ class Message(Object, Update): elif isinstance(action, raw.types.MessageActionChatJoinedByLink): new_chat_members = [types.User._parse(client, users[utils.get_raw_peer_id(message.from_id)])] service_type = enums.MessageServiceType.NEW_CHAT_MEMBERS + elif isinstance(action, raw.types.MessageActionChatJoinedByRequest): + chat_joined_by_request = types.ChatJoinedByRequest() + service_type = enums.MessageServiceType.CHAT_JOINED_BY_REQUEST elif isinstance(action, raw.types.MessageActionChatDeleteUser): left_chat_member = types.User._parse(client, users[action.user_id]) service_type = enums.MessageServiceType.LEFT_CHAT_MEMBERS @@ -568,6 +578,7 @@ class Message(Object, Update): sender_chat=sender_chat, service=service_type, new_chat_members=new_chat_members, + chat_joined_by_request=chat_joined_by_request, left_chat_member=left_chat_member, new_chat_title=new_chat_title, new_chat_photo=new_chat_photo, diff --git a/pyrogram/types/user_and_chats/__init__.py b/pyrogram/types/user_and_chats/__init__.py index 348ecd9f..6294c632 100644 --- a/pyrogram/types/user_and_chats/__init__.py +++ b/pyrogram/types/user_and_chats/__init__.py @@ -1,20 +1,21 @@ -# Pyrogram - Telegram MTProto API Client Library for Python +# Pyrofork - Telegram MTProto API Client Library for Python # Copyright (C) 2017-present Dan +# Copyright (C) 2022-present Mayuri-Chan # -# This file is part of Pyrogram. +# This file is part of Pyrofork. # -# Pyrogram is free software: you can redistribute it and/or modify +# Pyrofork is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# Pyrogram is distributed in the hope that it will be useful, +# Pyrofork is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License -# along with Pyrogram. If not, see . +# along with Pyrofork. If not, see . from .chat import Chat from .chat_admin_with_invite_links import ChatAdminWithInviteLinks @@ -22,6 +23,7 @@ from .chat_event import ChatEvent from .chat_event_filter import ChatEventFilter from .chat_invite_link import ChatInviteLink from .chat_join_request import ChatJoinRequest +from .chat_joined_by_request import ChatJoinedByRequest from .chat_joiner import ChatJoiner from .chat_member import ChatMember from .chat_member_updated import ChatMemberUpdated @@ -60,6 +62,7 @@ __all__ = [ "ChatMemberUpdated", "VideoChatScheduled", "ChatJoinRequest", + "ChatJoinedByRequest", "ChatPrivileges", "ChatJoiner", "EmojiStatus", diff --git a/pyrogram/types/user_and_chats/chat_joined_by_request.py b/pyrogram/types/user_and_chats/chat_joined_by_request.py new file mode 100644 index 00000000..af74853f --- /dev/null +++ b/pyrogram/types/user_and_chats/chat_joined_by_request.py @@ -0,0 +1,29 @@ +# Pyrofork - Telegram MTProto API Client Library for Python +# Copyright (C) 2022-present Mayuri-Chan +# +# This file is part of Pyrofork. +# +# Pyrofork is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pyrofork is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Pyrofork. If not, see . + +from ..object import Object + + +class ChatJoinedByRequest(Object): + """A service message about a user join request approved in the chat. + + Currently holds no information. + """ + + def __init__(self): + super().__init__()