mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 12:04:51 +00:00
pyrofork: Add get_message_read_participants method
Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
parent
a6b69228e8
commit
95eba2ce77
5 changed files with 119 additions and 0 deletions
|
|
@ -197,6 +197,7 @@ def pyrogram_api():
|
||||||
delete_scheduled_messages
|
delete_scheduled_messages
|
||||||
get_available_effects
|
get_available_effects
|
||||||
get_messages
|
get_messages
|
||||||
|
get_message_read_participants
|
||||||
get_scheduled_messages
|
get_scheduled_messages
|
||||||
get_media_group
|
get_media_group
|
||||||
get_chat_history
|
get_chat_history
|
||||||
|
|
@ -537,6 +538,7 @@ def pyrogram_api():
|
||||||
ChatWallpaper
|
ChatWallpaper
|
||||||
ContactRegistered
|
ContactRegistered
|
||||||
GiftCode
|
GiftCode
|
||||||
|
ReadParticipant
|
||||||
ScreenshotTaken
|
ScreenshotTaken
|
||||||
Wallpaper
|
Wallpaper
|
||||||
WallpaperSettings
|
WallpaperSettings
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ from .get_discussion_replies import GetDiscussionReplies
|
||||||
from .get_discussion_replies_count import GetDiscussionRepliesCount
|
from .get_discussion_replies_count import GetDiscussionRepliesCount
|
||||||
from .get_media_group import GetMediaGroup
|
from .get_media_group import GetMediaGroup
|
||||||
from .get_messages import GetMessages
|
from .get_messages import GetMessages
|
||||||
|
from .get_message_read_participants import GetMessageReadParticipants
|
||||||
from .get_scheduled_messages import GetScheduledMessages
|
from .get_scheduled_messages import GetScheduledMessages
|
||||||
from .read_chat_history import ReadChatHistory
|
from .read_chat_history import ReadChatHistory
|
||||||
from .retract_vote import RetractVote
|
from .retract_vote import RetractVote
|
||||||
|
|
@ -85,6 +86,7 @@ class Messages(
|
||||||
GetAvailableEffects,
|
GetAvailableEffects,
|
||||||
GetMediaGroup,
|
GetMediaGroup,
|
||||||
GetMessages,
|
GetMessages,
|
||||||
|
GetMessageReadParticipants,
|
||||||
GetScheduledMessages,
|
GetScheduledMessages,
|
||||||
SendAudio,
|
SendAudio,
|
||||||
SendChatAction,
|
SendChatAction,
|
||||||
|
|
|
||||||
57
pyrogram/methods/messages/get_message_read_participants.py
Normal file
57
pyrogram/methods/messages/get_message_read_participants.py
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
# Pyrofork - Telegram MTProto API Client Library for Python
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pyrogram
|
||||||
|
|
||||||
|
from pyrogram import types
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
class GetMessageReadParticipants:
|
||||||
|
async def get_message_read_participants(
|
||||||
|
self: "pyrogram.Client",
|
||||||
|
chat_id: Union[int, str],
|
||||||
|
message_id: int
|
||||||
|
):
|
||||||
|
"""Get the list of users who have read a message.
|
||||||
|
|
||||||
|
.. include:: /_includes/usable-by/users.rst
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
chat_id (``int`` | ``str``):
|
||||||
|
Unique identifier (int) or username (str) of the target chat.
|
||||||
|
You can also use chat public link in form of *t.me/<username>* (str).
|
||||||
|
|
||||||
|
message_id (``int``):
|
||||||
|
Unique identifier of the target message.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
``AsyncGenerator``: On success, an async generator yielding :obj:`~pyrogram.types.ReadParticipant` objects is returned.
|
||||||
|
"""
|
||||||
|
|
||||||
|
peer = await self.resolve_peer(chat_id)
|
||||||
|
r = await self.invoke(
|
||||||
|
pyrogram.raw.functions.messages.GetMessageReadParticipants(
|
||||||
|
peer=peer,
|
||||||
|
msg_id=message_id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
for read_participant in r:
|
||||||
|
yield await types.ReadParticipant._parse(
|
||||||
|
client=self,
|
||||||
|
read_participant=read_participant
|
||||||
|
)
|
||||||
|
|
@ -43,6 +43,7 @@ from .photo import Photo
|
||||||
from .poll import Poll
|
from .poll import Poll
|
||||||
from .poll_option import PollOption
|
from .poll_option import PollOption
|
||||||
from .reaction import Reaction
|
from .reaction import Reaction
|
||||||
|
from .read_participant import ReadParticipant
|
||||||
from .screenshot_taken import ScreenshotTaken
|
from .screenshot_taken import ScreenshotTaken
|
||||||
from .sticker import Sticker
|
from .sticker import Sticker
|
||||||
from .stickerset import StickerSet
|
from .stickerset import StickerSet
|
||||||
|
|
@ -116,6 +117,7 @@ __all__ = [
|
||||||
"MessageReactionCountUpdated",
|
"MessageReactionCountUpdated",
|
||||||
"MessageReactor",
|
"MessageReactor",
|
||||||
"MessageStory",
|
"MessageStory",
|
||||||
|
"ReadParticipant",
|
||||||
"ScreenshotTaken",
|
"ScreenshotTaken",
|
||||||
"Story",
|
"Story",
|
||||||
"StoryDeleted",
|
"StoryDeleted",
|
||||||
|
|
|
||||||
56
pyrogram/types/messages_and_media/read_participant.py
Normal file
56
pyrogram/types/messages_and_media/read_participant.py
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
# PyroFork - Telegram MTProto API Client Library for Python
|
||||||
|
# Copyright (C) 2022-present Mayuri-Chan <https://github.com/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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pyrogram
|
||||||
|
from pyrogram import raw, types, utils
|
||||||
|
from datetime import datetime
|
||||||
|
from ..object import Object
|
||||||
|
|
||||||
|
class ReadParticipant(Object):
|
||||||
|
"""Contains information about a read participant.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
user (:obj:`~pyrogram.types.User`):
|
||||||
|
User who read the message.
|
||||||
|
|
||||||
|
date (:py:obj:`~datetime.datetime`):
|
||||||
|
Date the message was read.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*,
|
||||||
|
client: "pyrogram.Client" = None,
|
||||||
|
user_id: "pyrogram.types.User",
|
||||||
|
date: "datetime"
|
||||||
|
):
|
||||||
|
super().__init__(client)
|
||||||
|
|
||||||
|
self.user = user_id
|
||||||
|
self.date = date
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
async def _parse(
|
||||||
|
client,
|
||||||
|
read_participant: "raw.base.ReadParticipantDate"
|
||||||
|
) -> "ReadParticipant":
|
||||||
|
return ReadParticipant(
|
||||||
|
client=client,
|
||||||
|
user_id=await client.get_users(read_participant.user_id),
|
||||||
|
date=utils.timestamp_to_datetime(read_participant.date)
|
||||||
|
)
|
||||||
Loading…
Reference in a new issue