From dc12030b3be9851ed37a22eee7fd2ecf1b88ff16 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Fri, 22 Mar 2024 11:54:17 +0530 Subject: [PATCH 01/14] Update Pyrogram Remove occurrences of disable_web_page_preview Add reply_parameters in some places --- requirements.txt | 10 +- .../methods/messages/edit_message_text.py | 11 +- userge/core/methods/messages/send_as_file.py | 5 +- userge/core/methods/messages/send_message.py | 14 ++- userge/core/types/bound/message.py | 103 ++++++++++-------- userge/core/types/new/channel_logger.py | 22 +++- userge/plugins/builtin/executor/__main__.py | 5 +- userge/plugins/builtin/help/__main__.py | 14 ++- userge/plugins/builtin/loader/__main__.py | 38 +++++-- 9 files changed, 145 insertions(+), 77 deletions(-) diff --git a/requirements.txt b/requirements.txt index a873e2939..3eb40d51f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -dnspython -heroku3 -motor -pyrogram==2.0.58 -tgcrypto +dnspython==2.2.0 +heroku3==4.2.1 +motor==3.3.2 # 2.5.1 +https://github.com/TelegramPlayGround/pyrogram/archive/ffbce0c.zip +TgCrypto==1.2.5 diff --git a/userge/core/methods/messages/edit_message_text.py b/userge/core/methods/messages/edit_message_text.py index d44b31f7d..76f160aaf 100644 --- a/userge/core/methods/messages/edit_message_text.py +++ b/userge/core/methods/messages/edit_message_text.py @@ -15,7 +15,10 @@ from typing import Optional, Union, List from pyrogram import enums -from pyrogram.types import InlineKeyboardMarkup, MessageEntity +from pyrogram.types import ( + InlineKeyboardMarkup, MessageEntity, + LinkPreviewOptions +) from userge import config from ...ext import RawClient @@ -31,7 +34,7 @@ async def edit_message_text(self, # pylint: disable=arguments-differ log: Union[bool, str] = False, parse_mode: Optional[enums.ParseMode] = None, entities: List[MessageEntity] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None ) -> Union['types.bound.Message', bool]: """\nExample: @@ -72,7 +75,7 @@ async def edit_message_text(self, # pylint: disable=arguments-differ List of special entities that appear in message text, which can be specified instead of *parse_mode*. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -90,7 +93,7 @@ async def edit_message_text(self, # pylint: disable=arguments-differ text=text, parse_mode=parse_mode, entities=entities, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) module = inspect.currentframe().f_back.f_globals['__name__'] if log: diff --git a/userge/core/methods/messages/send_as_file.py b/userge/core/methods/messages/send_as_file.py index d335a0434..f207b775e 100644 --- a/userge/core/methods/messages/send_as_file.py +++ b/userge/core/methods/messages/send_as_file.py @@ -15,6 +15,7 @@ from typing import Union, Optional from pyrogram.parser import Parser +from pyrogram.types import ReplyParameters from userge import logging from ... import types @@ -78,7 +79,9 @@ async def send_as_file(self, document=doc, caption=caption[:1024], disable_notification=True, - reply_to_message_id=reply_to_message_id) + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + )) module = inspect.currentframe().f_back.f_globals['__name__'] if log: await self._channel.fwd_msg(msg, module if isinstance(log, bool) else log) diff --git a/userge/core/methods/messages/send_message.py b/userge/core/methods/messages/send_message.py index 61ea7f476..11bc02e80 100644 --- a/userge/core/methods/messages/send_message.py +++ b/userge/core/methods/messages/send_message.py @@ -17,7 +17,9 @@ from pyrogram.types import ( InlineKeyboardMarkup, ReplyKeyboardMarkup, - ReplyKeyboardRemove, ForceReply, MessageEntity) + ReplyKeyboardRemove, ForceReply, MessageEntity, + LinkPreviewOptions, ReplyParameters +) from pyrogram import enums from userge import config @@ -33,7 +35,7 @@ async def send_message(self, # pylint: disable=arguments-differ log: Union[bool, str] = False, parse_mode: Optional[enums.ParseMode] = None, entities: List[MessageEntity] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, disable_notification: Optional[bool] = None, reply_to_message_id: Optional[int] = None, schedule_date: Optional[datetime] = None, @@ -77,7 +79,7 @@ async def send_message(self, # pylint: disable=arguments-differ List of special entities that appear in message text, which can be specified instead of *parse_mode*. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. disable_notification (``bool``, *optional*): @@ -106,9 +108,11 @@ async def send_message(self, # pylint: disable=arguments-differ text=text, parse_mode=parse_mode, entities=entities, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, disable_notification=disable_notification, - reply_to_message_id=reply_to_message_id, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), schedule_date=schedule_date, protect_content=protect_content, reply_markup=reply_markup) diff --git a/userge/core/types/bound/message.py b/userge/core/types/bound/message.py index f85374bfc..03c0770ed 100644 --- a/userge/core/types/bound/message.py +++ b/userge/core/types/bound/message.py @@ -16,7 +16,11 @@ from datetime import datetime from typing import List, Dict, Tuple, Union, Optional, Sequence, Callable, Any -from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message as RawMessage +from pyrogram.types import ( + InlineKeyboardMarkup, InlineKeyboardButton, + Message as RawMessage, + LinkPreviewOptions, ReplyParameters +) from pyrogram.errors import ( MessageAuthorRequired, MessageTooLong, MessageNotModified, MessageIdInvalid, MessageDeleteForbidden, BotInlineDisabled @@ -304,7 +308,10 @@ async def reply_as_file(self, filename=filename, caption=caption, log=log, - reply_to_message_id=reply_to_id) + reply_parameters=ReplyParameters( + message_id=reply_to_id + ) + ) async def reply(self, text: str, @@ -312,7 +319,7 @@ async def reply(self, log: Union[bool, str] = False, quote: Optional[bool] = None, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, disable_notification: Optional[bool] = None, reply_to_message_id: Optional[int] = None, schedule_date: Optional[datetime] = None, @@ -350,7 +357,7 @@ async def reply(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. disable_notification (``bool``, *optional*): @@ -386,17 +393,21 @@ async def reply(self, reply_to_message_id = self.id if log and isinstance(log, bool): log = self._module - return await self._client.send_message(chat_id=self.chat.id, - text=text, - del_in=del_in, - log=log, - parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, - disable_notification=disable_notification, - reply_to_message_id=reply_to_message_id, - schedule_date=schedule_date, - protect_content=protect_content, - reply_markup=reply_markup) + return await self._client.send_message( + chat_id=self.chat.id, + text=text, + del_in=del_in, + log=log, + parse_mode=parse_mode, + link_preview_options=link_preview_options, + disable_notification=disable_notification, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), + schedule_date=schedule_date, + protect_content=protect_content, + reply_markup=reply_markup + ) reply_text = reply @@ -406,7 +417,7 @@ async def edit(self, log: Union[bool, str] = False, sudo: bool = True, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None) -> Union['Message', bool]: """\nExample: message.edit_text("hello") @@ -435,7 +446,7 @@ async def edit(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -458,7 +469,7 @@ async def edit(self, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) except MessageNotModified: return self @@ -468,7 +479,7 @@ async def edit(self, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) if isinstance(msg, Message): self.id = msg.id # pylint: disable=W0201 @@ -482,7 +493,7 @@ async def force_edit(self, del_in: int = -1, log: Union[bool, str] = False, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None, **kwargs) -> Union['Message', bool]: """\nThis will first try to message.edit. @@ -513,7 +524,7 @@ async def force_edit(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -531,14 +542,14 @@ async def force_edit(self, log=log, sudo=False, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) except (MessageAuthorRequired, MessageIdInvalid): return await self.reply(text=text, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup, **kwargs) @@ -549,7 +560,7 @@ async def err(self, log: Union[bool, str] = False, sudo: bool = True, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None) -> Union['Message', bool]: """\nYou can send error messages with command info button using this method @@ -582,7 +593,7 @@ async def err(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -608,7 +619,7 @@ async def err(self, log=log, sudo=sudo, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) bot_username = (await self._client.get_me()).username if self._client.is_bot: @@ -622,7 +633,7 @@ async def err(self, log=log, sudo=sudo, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) else: bot_username = (await self._client.bot.get_me()).username @@ -642,7 +653,7 @@ async def err(self, log=log, sudo=sudo, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) return msg_obj @@ -652,7 +663,7 @@ async def force_err(self, show_help: bool = True, log: Union[bool, str] = False, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None) -> Union['Message', bool]: """\nThis will first try to message.err. If it raise MessageAuthorRequired or @@ -685,7 +696,7 @@ async def force_err(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -704,7 +715,7 @@ async def force_err(self, show_help=show_help, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) except (MessageAuthorRequired, MessageIdInvalid): if show_help: @@ -719,7 +730,7 @@ async def force_err(self, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) bot_username = (await self._client.get_me()).username if self._client.is_bot: @@ -732,7 +743,7 @@ async def force_err(self, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) else: bot_username = (await self._client.bot.get_me()).username @@ -751,7 +762,7 @@ async def force_err(self, del_in=del_in, log=log, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) return msg_obj @@ -762,7 +773,7 @@ async def edit_or_send_as_file(self, sudo: bool = True, as_raw: bool = False, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None, **kwargs) -> Union['Message', bool]: """\nThis will first try to message.edit. @@ -800,7 +811,7 @@ async def edit_or_send_as_file(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -821,7 +832,7 @@ async def edit_or_send_as_file(self, log=log, sudo=sudo, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup) except (MessageTooLong, OSError): return await self.reply_as_file(text=text, as_raw=as_raw, log=log, **kwargs) @@ -833,7 +844,7 @@ async def reply_or_send_as_file(self, quote: Optional[bool] = None, as_raw: bool = False, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, disable_notification: Optional[bool] = None, reply_to_message_id: Optional[int] = None, reply_markup: InlineKeyboardMarkup = None, @@ -878,7 +889,7 @@ async def reply_or_send_as_file(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. disable_notification (``bool``, *optional*): @@ -911,9 +922,11 @@ async def reply_or_send_as_file(self, log=log, quote=quote, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, disable_notification=disable_notification, - reply_to_message_id=reply_to_message_id, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), reply_markup=reply_markup) except MessageTooLong: return await self.reply_as_file(text=text, as_raw=as_raw, log=log, **kwargs) @@ -924,7 +937,7 @@ async def force_edit_or_send_as_file(self, log: Union[bool, str] = False, as_raw: bool = False, parse_mode: Optional[enums.ParseMode] = None, - disable_web_page_preview: Optional[bool] = None, + link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: InlineKeyboardMarkup = None, **kwargs) -> Union['Message', bool]: """\nThis will first try to message.edit_or_send_as_file. @@ -959,7 +972,7 @@ async def force_edit_or_send_as_file(self, Pass "html" to enable HTML-style parsing only. Pass None to completely disable style parsing. - disable_web_page_preview (``bool``, *optional*): + link_preview_options (:obj:`pyrogram.types.LinkPreviewOptions`, *optional*): Disables link previews for links in this message. reply_markup (:obj:`InlineKeyboardMarkup`, *optional*): @@ -979,7 +992,7 @@ async def force_edit_or_send_as_file(self, sudo=False, as_raw=as_raw, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup, **kwargs) except (MessageAuthorRequired, MessageIdInvalid): @@ -989,7 +1002,7 @@ async def force_edit_or_send_as_file(self, log=log, as_raw=as_raw, parse_mode=parse_mode, - disable_web_page_preview=disable_web_page_preview, + link_preview_options=link_preview_options, reply_markup=reply_markup, **kwargs) diff --git a/userge/core/types/new/channel_logger.py b/userge/core/types/new/channel_logger.py index 370ec7e69..0e583c8eb 100644 --- a/userge/core/types/new/channel_logger.py +++ b/userge/core/types/new/channel_logger.py @@ -14,7 +14,11 @@ from typing import Optional, Union from pyrogram.errors import ChatWriteForbidden -from pyrogram.types import Message as RawMessage +from pyrogram.types import ( + Message as RawMessage, + LinkPreviewOptions, + ReplyParameters +) from pyrogram.errors.exceptions import MessageTooLong from userge import config @@ -72,7 +76,9 @@ async def log(self, text: str, name: str = '') -> int: try: msg = await self._client.send_message(chat_id=self._id, text=string.format(text.strip()), - disable_web_page_preview=True) + link_preview_options=LinkPreviewOptions( + is_disabled=True + )) except MessageTooLong: msg = await self._client.send_as_file(chat_id=self._id, text=string.format(text.strip()), @@ -203,14 +209,20 @@ async def forward_stored(self, chat_id=chat_id, file_id=file_id, caption=caption, - reply_to_message_id=reply_to_message_id, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), reply_markup=buttons if client.is_bot and buttons else None) else: msg = await client.send_message( chat_id=chat_id, text=caption, - reply_to_message_id=reply_to_message_id, - disable_web_page_preview=True, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), + link_preview_options=LinkPreviewOptions( + is_disabled=True + ), reply_markup=buttons if client.is_bot and buttons else None) if del_in and msg: await asyncio.sleep(del_in) diff --git a/userge/plugins/builtin/executor/__main__.py b/userge/plugins/builtin/executor/__main__.py index 6ff890db0..4e8977f91 100644 --- a/userge/plugins/builtin/executor/__main__.py +++ b/userge/plugins/builtin/executor/__main__.py @@ -43,6 +43,7 @@ def getpgid(arg: Any) -> Any: setsid = None from pyrogram.types.messages_and_media.message import Str +from pyrogram.types import LinkPreviewOptions from pyrogram import enums from userge import userge, Message, config, pool @@ -216,7 +217,9 @@ async def _callback(output: Optional[str], errored: bool): await msg.edit_or_send_as_file(text=final, as_raw=as_raw, parse_mode=enums.ParseMode.MARKDOWN, - disable_web_page_preview=True, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ), filename="eval.txt", caption=cmd) else: diff --git a/userge/plugins/builtin/help/__main__.py b/userge/plugins/builtin/help/__main__.py index 8fc4cefbc..0c34090b3 100644 --- a/userge/plugins/builtin/help/__main__.py +++ b/userge/plugins/builtin/help/__main__.py @@ -13,11 +13,13 @@ from uuid import uuid4 from pyrogram import filters, enums -from pyrogram.errors.exceptions.bad_request_400 import MessageNotModified, MessageIdInvalid +from pyrogram.errors import MessageNotModified, MessageIdInvalid from pyrogram.types import ( InlineQueryResultArticle, InputTextMessageContent, InlineKeyboardMarkup, InlineKeyboardButton, - CallbackQuery, InlineQuery) + CallbackQuery, InlineQuery, + LinkPreviewOptions +) from userge import userge, Message, config, get_collection from userge.utils import is_command @@ -112,7 +114,9 @@ async def helpme(message: Message) -> None: # pylint: disable=missing-function- await message.edit(out_str, del_in=0, parse_mode=enums.ParseMode.HTML, - disable_web_page_preview=True) + link_preview_options=LinkPreviewOptions( + is_disabled=True + )) if userge.has_bot: @@ -156,7 +160,9 @@ async def pm_help_handler(_, msg: Message): else: out_str = f"No Command Found for: {cmd}" - await msg.reply(out_str, parse_mode=enums.ParseMode.HTML, disable_web_page_preview=True) + await msg.reply(out_str, parse_mode=enums.ParseMode.HTML, link_preview_options=LinkPreviewOptions( + is_disabled=True + )) @userge.bot.on_callback_query( filters=filters.regex( diff --git a/userge/plugins/builtin/loader/__main__.py b/userge/plugins/builtin/loader/__main__.py index 2c7a29075..864e252f5 100644 --- a/userge/plugins/builtin/loader/__main__.py +++ b/userge/plugins/builtin/loader/__main__.py @@ -8,6 +8,8 @@ from typing import List +from pyrogram.types import LinkPreviewOptions + from loader.types import Update from loader.userge import api from userge import userge, Message, config @@ -58,7 +60,9 @@ async def core(message: Message): out = _updates_to_str(updates) await message.edit_or_send_as_file( f"**{len(updates)}** new commits available for core repo\n\n{out}", - del_in=0, disable_web_page_preview=True) + del_in=0, link_preview_options=LinkPreviewOptions( + is_disabled=True + )) elif get_old: updates = await api.get_core_old_commits(old_limit) @@ -70,7 +74,9 @@ async def core(message: Message): out = _updates_to_str(updates) await message.edit_or_send_as_file( f"**{len(updates)}** old commits of core repo\n\n{out}", - del_in=0, disable_web_page_preview=True) + del_in=0, link_preview_options=LinkPreviewOptions( + is_disabled=True + )) elif set_branch or set_version: if not branch and not version: @@ -115,7 +121,11 @@ async def core(message: Message): **is latest** : `{core_repo.count == core_repo.max_count}` **head** : [link]({core_repo.head_url})""" - await message.edit(out, del_in=0, disable_web_page_preview=True) + await message.edit(out, del_in=0, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) @userge.on_cmd("repos", about={ @@ -184,7 +194,9 @@ async def repos(message: Message): out += f"**is latest** : `{plg_repo.count == plg_repo.max_count}`\n" out += f"**head** : [link]({plg_repo.head_url})\n\n" - await message.edit_or_send_as_file(out, del_in=0, disable_web_page_preview=True) + await message.edit_or_send_as_file(out, del_in=0, link_preview_options=LinkPreviewOptions( + is_disabled=True + )) else: if fetch: @@ -206,7 +218,11 @@ async def repos(message: Message): out = _updates_to_str(updates) await message.edit_or_send_as_file( f"**{len(updates)}** new commits available for repo: `{repo_id}`\n\n{out}", - del_in=0, disable_web_page_preview=True) + del_in=0, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) elif get_old: updates = await api.get_repo_old_commits(repo_id, old_limit) @@ -218,7 +234,11 @@ async def repos(message: Message): out = _updates_to_str(updates) await message.edit_or_send_as_file( f"**{len(updates)}** old commits of repo: `{repo_id}`\n\n{out}", - del_in=0, disable_web_page_preview=True) + del_in=0, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) elif set_branch or set_version or set_priority: if not branch and not version and not priority: @@ -534,7 +554,11 @@ async def update(message: Message): "updated to latest, " f"do `{config.CMD_TRIGGER}restart -h` to apply changes", del_in=3) else: - await message.edit_or_send_as_file(updates, del_in=0, disable_web_page_preview=True) + await message.edit_or_send_as_file(updates, del_in=0, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) else: await message.edit("
no updates found
", del_in=3) From cfa4241307c2ca8deeca25f9a1cf87beb2f30724 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Fri, 22 Mar 2024 12:04:39 +0530 Subject: [PATCH 02/14] fixes --- .../methods/messages/edit_message_text.py | 16 +++++++----- userge/core/methods/messages/send_as_file.py | 16 +++++++----- userge/core/methods/messages/send_message.py | 26 ++++++++++--------- userge/plugins/builtin/executor/__main__.py | 18 +++++++------ userge/plugins/builtin/help/__main__.py | 10 ++++--- userge/plugins/builtin/loader/__main__.py | 4 ++- 6 files changed, 52 insertions(+), 38 deletions(-) diff --git a/userge/core/methods/messages/edit_message_text.py b/userge/core/methods/messages/edit_message_text.py index 76f160aaf..9a869532f 100644 --- a/userge/core/methods/messages/edit_message_text.py +++ b/userge/core/methods/messages/edit_message_text.py @@ -88,13 +88,15 @@ async def edit_message_text(self, # pylint: disable=arguments-differ Raises: RPCError: In case of a Telegram RPC error. """ - msg = await super().edit_message_text(chat_id=chat_id, - message_id=message_id, - text=text, - parse_mode=parse_mode, - entities=entities, - link_preview_options=link_preview_options, - reply_markup=reply_markup) + msg = await super().edit_message_text( + chat_id=chat_id, + message_id=message_id, + text=text, + parse_mode=parse_mode, + entities=entities, + link_preview_options=link_preview_options, + reply_markup=reply_markup + ) module = inspect.currentframe().f_back.f_globals['__name__'] if log: await self._channel.fwd_msg(msg, module if isinstance(log, bool) else log) diff --git a/userge/core/methods/messages/send_as_file.py b/userge/core/methods/messages/send_as_file.py index f207b775e..6771c8b9f 100644 --- a/userge/core/methods/messages/send_as_file.py +++ b/userge/core/methods/messages/send_as_file.py @@ -75,13 +75,15 @@ async def send_as_file(self, doc = io.BytesIO(text.encode()) doc.name = filename - msg = await self.send_document(chat_id=chat_id, - document=doc, - caption=caption[:1024], - disable_notification=True, - reply_parameters=ReplyParameters( - message_id=reply_to_message_id - )) + msg = await self.send_document( + chat_id=chat_id, + document=doc, + caption=caption[:1024], + disable_notification=True, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ) + ) module = inspect.currentframe().f_back.f_globals['__name__'] if log: await self._channel.fwd_msg(msg, module if isinstance(log, bool) else log) diff --git a/userge/core/methods/messages/send_message.py b/userge/core/methods/messages/send_message.py index 11bc02e80..7ce48336d 100644 --- a/userge/core/methods/messages/send_message.py +++ b/userge/core/methods/messages/send_message.py @@ -104,18 +104,20 @@ async def send_message(self, # pylint: disable=arguments-differ Returns: :obj:`Message`: On success, the sent text message or True is returned. """ - msg = await super().send_message(chat_id=chat_id, - text=text, - parse_mode=parse_mode, - entities=entities, - link_preview_options=link_preview_options, - disable_notification=disable_notification, - reply_parameters=ReplyParameters( - message_id=reply_to_message_id - ), - schedule_date=schedule_date, - protect_content=protect_content, - reply_markup=reply_markup) + msg = await super().send_message( + chat_id=chat_id, + text=text, + parse_mode=parse_mode, + entities=entities, + link_preview_options=link_preview_options, + disable_notification=disable_notification, + reply_parameters=ReplyParameters( + message_id=reply_to_message_id + ), + schedule_date=schedule_date, + protect_content=protect_content, + reply_markup=reply_markup + ) module = inspect.currentframe().f_back.f_globals['__name__'] if log: await self._channel.fwd_msg(msg, module if isinstance(log, bool) else log) diff --git a/userge/plugins/builtin/executor/__main__.py b/userge/plugins/builtin/executor/__main__.py index 4e8977f91..5564984ed 100644 --- a/userge/plugins/builtin/executor/__main__.py +++ b/userge/plugins/builtin/executor/__main__.py @@ -214,14 +214,16 @@ async def _callback(output: Optional[str], errored: bool): msg_id = await CHANNEL.log(final) await msg.edit(f"**Logs**: {CHANNEL.get_link(msg_id)}") elif final: - await msg.edit_or_send_as_file(text=final, - as_raw=as_raw, - parse_mode=enums.ParseMode.MARKDOWN, - link_preview_options=LinkPreviewOptions( - is_disabled=True - ), - filename="eval.txt", - caption=cmd) + await msg.edit_or_send_as_file( + text=final, + as_raw=as_raw, + parse_mode=enums.ParseMode.MARKDOWN, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ), + filename="eval.txt", + caption=cmd + ) else: await msg.delete() diff --git a/userge/plugins/builtin/help/__main__.py b/userge/plugins/builtin/help/__main__.py index 0c34090b3..7c648aacb 100644 --- a/userge/plugins/builtin/help/__main__.py +++ b/userge/plugins/builtin/help/__main__.py @@ -160,9 +160,13 @@ async def pm_help_handler(_, msg: Message): else: out_str = f"No Command Found for: {cmd}" - await msg.reply(out_str, parse_mode=enums.ParseMode.HTML, link_preview_options=LinkPreviewOptions( - is_disabled=True - )) + await msg.reply( + out_str, + parse_mode=enums.ParseMode.HTML, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) @userge.bot.on_callback_query( filters=filters.regex( diff --git a/userge/plugins/builtin/loader/__main__.py b/userge/plugins/builtin/loader/__main__.py index 864e252f5..6c0a81b05 100644 --- a/userge/plugins/builtin/loader/__main__.py +++ b/userge/plugins/builtin/loader/__main__.py @@ -121,7 +121,9 @@ async def core(message: Message): **is latest** : `{core_repo.count == core_repo.max_count}` **head** : [link]({core_repo.head_url})""" - await message.edit(out, del_in=0, + await message.edit( + out, + del_in=0, link_preview_options=LinkPreviewOptions( is_disabled=True ) From 40d7135feb1c0701a27aeabe101a2f337672bd8d Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Fri, 22 Mar 2024 12:06:24 +0530 Subject: [PATCH 03/14] fixes --- userge/core/types/bound/message.py | 19 ++++++++++--------- userge/plugins/builtin/loader/__main__.py | 14 ++++++++++---- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/userge/core/types/bound/message.py b/userge/core/types/bound/message.py index 03c0770ed..274319a83 100644 --- a/userge/core/types/bound/message.py +++ b/userge/core/types/bound/message.py @@ -302,15 +302,16 @@ async def reply_as_file(self, asyncio.get_event_loop().create_task(self.delete()) if log and isinstance(log, bool): log = self._module - return await self._client.send_as_file(chat_id=self.chat.id, - text=text, - as_raw=as_raw, - filename=filename, - caption=caption, - log=log, - reply_parameters=ReplyParameters( - message_id=reply_to_id - ) + return await self._client.send_as_file( + chat_id=self.chat.id, + text=text, + as_raw=as_raw, + filename=filename, + caption=caption, + log=log, + reply_parameters=ReplyParameters( + message_id=reply_to_id + ) ) async def reply(self, diff --git a/userge/plugins/builtin/loader/__main__.py b/userge/plugins/builtin/loader/__main__.py index 6c0a81b05..a98ef9b50 100644 --- a/userge/plugins/builtin/loader/__main__.py +++ b/userge/plugins/builtin/loader/__main__.py @@ -196,9 +196,13 @@ async def repos(message: Message): out += f"**is latest** : `{plg_repo.count == plg_repo.max_count}`\n" out += f"**head** : [link]({plg_repo.head_url})\n\n" - await message.edit_or_send_as_file(out, del_in=0, link_preview_options=LinkPreviewOptions( - is_disabled=True - )) + await message.edit_or_send_as_file( + out, + del_in=0, + link_preview_options=LinkPreviewOptions( + is_disabled=True + ) + ) else: if fetch: @@ -556,7 +560,9 @@ async def update(message: Message): "updated to latest, " f"do `{config.CMD_TRIGGER}restart -h` to apply changes", del_in=3) else: - await message.edit_or_send_as_file(updates, del_in=0, + await message.edit_or_send_as_file( + updates, + del_in=0, link_preview_options=LinkPreviewOptions( is_disabled=True ) From b5f548bb3703f4685067762ba65e751ce5bc6753 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Fri, 22 Mar 2024 12:09:44 +0530 Subject: [PATCH 04/14] fixes --- userge/core/types/bound/message.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/userge/core/types/bound/message.py b/userge/core/types/bound/message.py index 274319a83..cb22e23cb 100644 --- a/userge/core/types/bound/message.py +++ b/userge/core/types/bound/message.py @@ -19,7 +19,7 @@ from pyrogram.types import ( InlineKeyboardMarkup, InlineKeyboardButton, Message as RawMessage, - LinkPreviewOptions, ReplyParameters + LinkPreviewOptions ) from pyrogram.errors import ( MessageAuthorRequired, MessageTooLong, MessageNotModified, @@ -309,9 +309,7 @@ async def reply_as_file(self, filename=filename, caption=caption, log=log, - reply_parameters=ReplyParameters( - message_id=reply_to_id - ) + reply_to_message_id=reply_to_message_id ) async def reply(self, @@ -402,9 +400,7 @@ async def reply(self, parse_mode=parse_mode, link_preview_options=link_preview_options, disable_notification=disable_notification, - reply_parameters=ReplyParameters( - message_id=reply_to_message_id - ), + reply_to_message_id=reply_to_message_id, schedule_date=schedule_date, protect_content=protect_content, reply_markup=reply_markup @@ -925,9 +921,7 @@ async def reply_or_send_as_file(self, parse_mode=parse_mode, link_preview_options=link_preview_options, disable_notification=disable_notification, - reply_parameters=ReplyParameters( - message_id=reply_to_message_id - ), + reply_to_message_id=reply_to_message_id, reply_markup=reply_markup) except MessageTooLong: return await self.reply_as_file(text=text, as_raw=as_raw, log=log, **kwargs) From 5407c04bca5de09994b08e8c0abb559caca8a5d4 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Fri, 22 Mar 2024 12:10:23 +0530 Subject: [PATCH 05/14] fixes --- userge/core/types/bound/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/userge/core/types/bound/message.py b/userge/core/types/bound/message.py index cb22e23cb..ac0d41826 100644 --- a/userge/core/types/bound/message.py +++ b/userge/core/types/bound/message.py @@ -309,7 +309,7 @@ async def reply_as_file(self, filename=filename, caption=caption, log=log, - reply_to_message_id=reply_to_message_id + reply_to_message_id=reply_to_id ) async def reply(self, From fa304e54ba0c8574770473ee0801c80effc4836b Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Tue, 26 Mar 2024 12:16:36 +0530 Subject: [PATCH 06/14] update pyrogram dependancy --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 3eb40d51f..894727557 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -https://github.com/TelegramPlayGround/pyrogram/archive/ffbce0c.zip +https://github.com/TelegramPlayGround/pyrogram/archive/d56b41042b.zip TgCrypto==1.2.5 From 2bc32833cb7a1ced790640aea43873214cb1874c Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Sun, 14 Apr 2024 20:34:36 +0530 Subject: [PATCH 07/14] update pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 894727557..32b4ec48a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -https://github.com/TelegramPlayGround/pyrogram/archive/d56b41042b.zip +https://github.com/TelegramPlayGround/pyrogram/archive/19436a9.zip TgCrypto==1.2.5 From 602d3a11e33ba15b2792414591257dc225330328 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Sun, 21 Apr 2024 09:14:29 +0530 Subject: [PATCH 08/14] Update Pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 32b4ec48a..c66650f61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -https://github.com/TelegramPlayGround/pyrogram/archive/19436a9.zip +pyrotgfork==2.1.22 TgCrypto==1.2.5 From a8ff938b265e39051d6b157e65cf02280b8414d9 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Wed, 24 Apr 2024 08:48:32 +0530 Subject: [PATCH 09/14] Update Pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c66650f61..aa338a348 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.22 +pyrotgfork==2.1.25 TgCrypto==1.2.5 From 74265fe1c41d78772666a6af0e15dd57d882857d Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Mon, 6 May 2024 01:39:28 +0530 Subject: [PATCH 10/14] Update Pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index aa338a348..179c7a858 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.25 +pyrotgfork==2.1.29 TgCrypto==1.2.5 From d5859944594842a9015b6d49dc64855298b0fd4a Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Sun, 26 May 2024 13:05:39 +0530 Subject: [PATCH 11/14] Update Pyrogram --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 179c7a858..b77ea7398 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.29 -TgCrypto==1.2.5 +pyrotgfork==2.1.32.1 +PyTgCrypto==1.2.7 From c6a45821302fe1231730bf571a8d1b769c6161bc Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Wed, 29 May 2024 18:41:46 +0530 Subject: [PATCH 12/14] Update Pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b77ea7398..d4ced9b95 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.32.1 +pyrotgfork==2.1.32.2 PyTgCrypto==1.2.7 From cdd26396263fc8918ddeacb5cbb5b65134182ee8 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Sat, 19 Oct 2024 20:04:38 +0530 Subject: [PATCH 13/14] Update Pyrogram --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d4ced9b95..d210a4daa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.32.2 +pyrotgfork==2.1.33.11 PyTgCrypto==1.2.7 From e389c04fc93d9daa556c5f983cad3b2f92c79304 Mon Sep 17 00:00:00 2001 From: Shrimadhav U K Date: Tue, 18 Mar 2025 19:02:32 +0530 Subject: [PATCH 14/14] Update Pyrogram --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index d210a4daa..e9df906a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ dnspython==2.2.0 heroku3==4.2.1 motor==3.3.2 # 2.5.1 -pyrotgfork==2.1.33.11 -PyTgCrypto==1.2.7 +pyrotgfork==2.2.9 +TgCrypto==1.2.5