From d66907159f7dde87ad1e23d4721c82c80e61a248 Mon Sep 17 00:00:00 2001 From: wulan17 Date: Wed, 9 Jul 2025 20:52:46 +0700 Subject: [PATCH] pyrofork: Drop translation * disabled by telegram Signed-off-by: wulan17 --- compiler/docs/compiler.py | 3 - pyrogram/methods/messages/__init__.py | 2 - pyrogram/methods/messages/translate_text.py | 121 ------------------ pyrogram/types/messages_and_media/__init__.py | 2 - pyrogram/types/messages_and_media/message.py | 37 ------ .../messages_and_media/translated_text.py | 61 --------- 6 files changed, 226 deletions(-) delete mode 100644 pyrogram/methods/messages/translate_text.py delete mode 100644 pyrogram/types/messages_and_media/translated_text.py diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index f262a6b3..9137cc1b 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -225,7 +225,6 @@ def pyrogram_api(): get_discussion_replies_count get_custom_emoji_stickers transcribe_audio - translate_message_text start_bot delete_chat_history """, @@ -569,7 +568,6 @@ def pyrogram_api(): WebPageEmpty WebPagePreview TranscribedAudio - TranslatedText TextQuote Poll PollOption @@ -822,7 +820,6 @@ def pyrogram_api(): Message.get_media_group Message.react Message.transcribe - Message.translate Message.wait_for_click """, chat=""" diff --git a/pyrogram/methods/messages/__init__.py b/pyrogram/methods/messages/__init__.py index 8a720a87..345dc1a9 100644 --- a/pyrogram/methods/messages/__init__.py +++ b/pyrogram/methods/messages/__init__.py @@ -79,7 +79,6 @@ from .stop_poll import StopPoll from .stream_media import StreamMedia from .vote_poll import VotePoll from .transcribe_audio import TranscribeAudio -from .translate_text import TranslateText class Messages( AddTaskToTodo, @@ -143,7 +142,6 @@ class Messages( StreamMedia, GetCustomEmojiStickers, TranscribeAudio, - TranslateText, StartBot ): pass diff --git a/pyrogram/methods/messages/translate_text.py b/pyrogram/methods/messages/translate_text.py deleted file mode 100644 index 92c967be..00000000 --- a/pyrogram/methods/messages/translate_text.py +++ /dev/null @@ -1,121 +0,0 @@ -# Pyrofork - Telegram MTProto API Client Library for Python -# Copyright (C) 2017-present Dan -# 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 typing import List, Optional, Union - -import pyrogram -from pyrogram import enums, raw, types, utils - - -class TranslateText: - async def translate_message_text( - self: "pyrogram.Client", - to_language_code: str, - chat_id: Optional[Union[int, str]] = None, - message_ids: Optional[Union[int, List[int]]] = None, - text: Optional[str] = None, - parse_mode: Optional["enums.ParseMode"] = None, - entities: Optional[List["types.MessageEntity"]] = None - ) -> Union["types.TranslatedText", List["types.TranslatedText"]]: - """Translates a text or message(s) to the given language. If the current user is a Telegram Premium user, then text formatting is preserved. - - Parameters: - to_language_code (``str``): - Language code of the language to which the message/text is translated. - Must be one of the supported language codes. - - chat_id (``Optional[int | str]``): - Unique identifier (int) or username (str) of the target chat. - - message_ids (``Optional[int | List[int]]``): - Identifier or list of message identifiers of the target message(s). - - text (``Optional[str]``): - Text to translate. - - parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*): - By default, texts are parsed using both Markdown and HTML styles. - You can combine both syntaxes together. - - entities (List of :obj:`~pyrogram.types.MessageEntity`): - List of special entities that appear in message text, which can be specified instead of *parse_mode*. - - Example: - .. code-block:: python - - # Using chat_id and message_ids - await app.translate_message_text("en", chat_id, message_ids) - - # Using text - await app.translate_message_text("en", text="Hello, how are you?") - - # Using text with parse_mode - await app.translate_message_text("en", text="*Hello*, how are you?", parse_mode=ParseMode.MARKDOWN) - - # Using text with entities - entities = [types.MessageEntityBold(offset=0, length=5)] - await app.translate_message_text("en", text="*Hello*, how are you?", entities=entities) - - Returns: - :obj:`~pyrogram.types.TranslatedText` | List of :obj:`~pyrogram.types.TranslatedText`: In case *message_ids* was not - a list, a single result is returned, otherwise a list of results is returned. - """ - if text is not None: - message, entities = ( - await utils.parse_text_entities( - self, - text, - parse_mode, - entities - ) - ).values() - - r = await self.invoke( - raw.functions.messages.TranslateText( - to_lang=to_language_code, - text=[ - raw.types.TextWithEntities( - text=message, - entities=entities or [] - ) - ] - ) - ) - - elif chat_id is not None and message_ids is not None: - ids = [message_ids] if not isinstance(message_ids, list) else message_ids - - r = await self.invoke( - raw.functions.messages.TranslateText( - to_lang=to_language_code, - peer=await self.resolve_peer(chat_id), - id=ids - ) - ) - else: - raise ValueError("Either 'text' or both 'chat_id' and 'message_ids' must be provided.") - - return ( - types.TranslatedText._parse(self, r.result[0]) - if len(r.result) == 1 - else [ - types.TranslatedText._parse(self, i) - for i in r.result - ] - ) \ No newline at end of file diff --git a/pyrogram/types/messages_and_media/__init__.py b/pyrogram/types/messages_and_media/__init__.py index 778ad9d9..86f67259 100644 --- a/pyrogram/types/messages_and_media/__init__.py +++ b/pyrogram/types/messages_and_media/__init__.py @@ -82,7 +82,6 @@ from .exported_story_link import ExportedStoryLink from .wallpaper import Wallpaper from .wallpaper_settings import WallpaperSettings from .transcribed_audio import TranscribedAudio -from .translated_text import TranslatedText from .text_quote import TextQuote __all__ = [ @@ -146,7 +145,6 @@ __all__ = [ "Wallpaper", "WallpaperSettings", "TranscribedAudio", - "TranslatedText", "TextQuote", "TodoList", "TodoTask", diff --git a/pyrogram/types/messages_and_media/message.py b/pyrogram/types/messages_and_media/message.py index bf53a774..9be931a0 100644 --- a/pyrogram/types/messages_and_media/message.py +++ b/pyrogram/types/messages_and_media/message.py @@ -5635,40 +5635,3 @@ class Message(Object, Update): chat_id=self.chat.id, message_id=self.id ) - - async def translate( - self, - to_language_code: str - ) -> "types.TranslatedText": - """Bound method *translate* of :obj:`~pyrogram.types.Message`. - - Use as a shortcut for: - .. code-block:: python - - await client.translate_message_text( - chat_id=message.chat.id, - message_ids=message_id, - to_language_code="en" - ) - - Example: - .. code-block:: python - - await Message.translate("en") - - Parameters: - to_language_code (``str``): - Language code of the language to which the message is translated. - Must be one of "af", "sq", "am", "ar", "hy", "az", "eu", "be", "bn", "bs", "bg", "ca", "ceb", "zh-CN", "zh", "zh-Hans", "zh-TW", "zh-Hant", "co", "hr", "cs", "da", "nl", "en", "eo", "et", "fi", "fr", "fy", "gl", "ka", "de", "el", "gu", "ht", "ha", "haw", "he", "iw", "hi", "hmn", "hu", "is", "ig", "id", "in", "ga", "it", "ja", "jv", "kn", "kk", "km", "rw", "ko", "ku", "ky", "lo", "la", "lv", "lt", "lb", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mn", "my", "ne", "no", "ny", "or", "ps", "fa", "pl", "pt", "pa", "ro", "ru", "sm", "gd", "sr", "st", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv", "tl", "tg", "ta", "tt", "te", "th", "tr", "tk", "uk", "ur", "ug", "uz", "vi", "cy", "xh", "yi", "ji", "yo", "zu". - - Returns: - :obj:`~pyrogram.types.TranslatedText`: The translated result is returned. - - Raises: - RPCError: In case of a Telegram RPC error. - """ - return await self._client.translate_message_text( - chat_id=self.chat.id, - message_ids=self.id, - to_language_code=to_language_code - ) diff --git a/pyrogram/types/messages_and_media/translated_text.py b/pyrogram/types/messages_and_media/translated_text.py deleted file mode 100644 index 5fb01a32..00000000 --- a/pyrogram/types/messages_and_media/translated_text.py +++ /dev/null @@ -1,61 +0,0 @@ -# Pyrofork - Telegram MTProto API Client Library for Python -# Copyright (C) 2017-present Dan -# 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 typing import List - -from pyrogram import raw, types - -from ..object import Object -from .message import Str - - -class TranslatedText(Object): - """A translated text with entities. - - Parameters: - text (``str``): - Translated text. - - entities (``str``, *optional*): - Entities of the text. - """ - - def __init__( - self, - *, - text: str, - entities: List["types.MessageEntity"] = None - ): - self.text = text - self.entities = entities - - @staticmethod - def _parse( - client, - translate_result: "raw.types.TextWithEntities" - ) -> "TranslatedText": - entities = [ - types.MessageEntity._parse(client, entity, {}) - for entity in translate_result.entities - ] - entities = types.List(filter(lambda x: x is not None, entities)) - - return TranslatedText( - text=Str(translate_result.text).init(entities) or None, entities=entities or None - )