Skip to content

Commit

Permalink
Pyrofork: Add get_all_stories method
Browse files Browse the repository at this point in the history
Signed-off-by: wulan17 <wulan17@nusantararom.org>
  • Loading branch information
wulan17 committed Sep 2, 2023
1 parent 282dd6e commit c1fbff0
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
1 change: 1 addition & 0 deletions compiler/docs/compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ def get_title_list(s: str) -> list:
delete_stories
edit_story
export_story_link
get_all_stories
get_stories
get_stories_history
get_user_stories
Expand Down
2 changes: 2 additions & 0 deletions pyrogram/methods/users/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from .get_common_chats import GetCommonChats
from .get_default_emoji_statuses import GetDefaultEmojiStatuses
from .get_me import GetMe
from .get_all_stories import GetAllStories
from .get_stories import GetStories
from .get_stories_history import GetUserStoriesHistory
from .get_user_stories import GetUserStories
Expand All @@ -49,6 +50,7 @@ class Users(
DeleteProfilePhotos,
GetUsers,
GetMe,
GetAllStories,
GetStories,
GetUserStoriesHistory,
GetUserStories,
Expand Down
57 changes: 57 additions & 0 deletions pyrogram/methods/users/get_all_stories.py
Original file line number Diff line number Diff line change
@@ -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 logging
from typing import AsyncGenerator, Optional

import pyrogram
from pyrogram import raw
from pyrogram import types

log = logging.getLogger(__name__)

class GetAllStories:
async def get_all_stories(
self: "pyrogram.Client"
) -> Optional[AsyncGenerator["types.Story"]]:
"""Get all active stories.
.. include:: /_includes/usable-by/users.rst
Returns:
``Generator``: On success, a generator yielding :obj:`~pyrogram.types.Story` objects is returned.
Example:
.. code-block:: python
# Get all active story
async for story in app.get_user_stories(user_id):
print(story)
Raises:
ValueError: In case of invalid arguments.
"""

rpc = raw.functions.stories.GetAllStories()

r = await self.invoke(rpc, sleep_threshold=-1)

for user_story in r.user_stories:
user_id = user_story.user_id
for story in user_story.stories:
yield await types.Story._parse(self, story, user_id)

0 comments on commit c1fbff0

Please sign in to comment.