diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index bd1cb4a4..9cbce0ad 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -357,7 +357,6 @@ def pyrogram_api(): edit_story_caption edit_story_media edit_story_privacy - export_story_link forward_story get_all_stories get_chat_stories diff --git a/pyrogram/methods/stories/__init__.py b/pyrogram/methods/stories/__init__.py index 870889c5..a77b8e61 100644 --- a/pyrogram/methods/stories/__init__.py +++ b/pyrogram/methods/stories/__init__.py @@ -22,7 +22,6 @@ from .delete_stories import DeleteStories from .edit_story_caption import EditStoryCaption from .edit_story_media import EditStoryMedia from .edit_story_privacy import EditStoryPrivacy -from .export_story_link import ExportStoryLink from .forward_story import ForwardStory from .get_all_stories import GetAllStories from .get_chat_stories import GetChatStories @@ -42,7 +41,6 @@ class Stories( EditStoryCaption, EditStoryMedia, EditStoryPrivacy, - ExportStoryLink, ForwardStory, GetAllStories, GetChatStories, diff --git a/pyrogram/methods/stories/export_story_link.py b/pyrogram/methods/stories/export_story_link.py deleted file mode 100644 index c7e48e81..00000000 --- a/pyrogram/methods/stories/export_story_link.py +++ /dev/null @@ -1,60 +0,0 @@ -# Pyrogram - Telegram MTProto API Client Library for Python -# Copyright (C) 2017-present Dan -# -# This file is part of Pyrogram. -# -# Pyrogram 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, -# 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 . - -from typing import Union - -import pyrogram -from pyrogram import raw - - -class ExportStoryLink: - async def export_story_link( - self: "pyrogram.Client", - chat_id: Union[int, str], - story_id: int, - ) -> str: - """Export a story link. - - .. include:: /_includes/usable-by/users.rst - - Parameters: - chat_id (``int`` | ``str``): - Unique identifier (int) or username (str) of the target chat. - For your personal cloud (Saved Messages) you can simply use "me" or "self". - For a contact that exists in your Telegram address book you can use his phone number (str). - - story_id (``int``): - Unique identifier of the target story. - - Returns: - ``str``: On success, a link to the exported story is returned. - - Example: - .. code-block:: python - - # Export a story link - link = app.export_story_link(chat_id, 1) - """ - r = await self.invoke( - raw.functions.stories.ExportStoryLink( - peer=await self.resolve_peer(chat_id), - id=story_id - ) - ) - - return r.link diff --git a/pyrogram/types/messages_and_media/story.py b/pyrogram/types/messages_and_media/story.py index f4bdcaaf..ee93c89d 100644 --- a/pyrogram/types/messages_and_media/story.py +++ b/pyrogram/types/messages_and_media/story.py @@ -343,6 +343,13 @@ class Story(Object, Update): client=client ) + @property + def link(self) -> str: + if not self.chat.username: + return None + + return f"https://t.me/{self.chat.username}/s/{self.id}" + async def reply_text( self, text: str, @@ -1617,31 +1624,6 @@ class Story(Object, Update): disallowed_users=disallowed_users, ) - async def export_link(self) -> "types.ExportedStoryLink": - """Bound method *export_link* of :obj:`~pyrogram.types.Story`. - - Use as a shortcut for: - - .. code-block:: python - - await client.export_story_link( - chat_id=self.chat.id, - story_id=story.id - ) - - Example: - .. code-block:: python - - link = await story.export_link() - - Returns: - ``str``: On success, a link to the story as string is returned. - - Raises: - RPCError: In case of a Telegram RPC error. - """ - return await self._client.export_story_link(chat_id=self.chat.id, story_id=self.id) - async def react(self, emoji: Union[int, str] = None) -> bool: """Bound method *react* of :obj:`~pyrogram.types.Story`.