diff --git a/requirements.txt b/requirements.txt index a873e2939..e9df906a4 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 +pyrotgfork==2.2.9 +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..9a869532f 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*): @@ -85,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, - disable_web_page_preview=disable_web_page_preview, - 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 d335a0434..6771c8b9f 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 @@ -74,11 +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_to_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 61ea7f476..7ce48336d 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*): @@ -102,16 +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, - 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) + 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/core/types/bound/message.py b/userge/core/types/bound/message.py index f85374bfc..ac0d41826 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 +) from pyrogram.errors import ( MessageAuthorRequired, MessageTooLong, MessageNotModified, MessageIdInvalid, MessageDeleteForbidden, BotInlineDisabled @@ -298,13 +302,15 @@ 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_to_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_to_message_id=reply_to_id + ) async def reply(self, text: str, @@ -312,7 +318,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 +356,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 +392,19 @@ 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_to_message_id=reply_to_message_id, + schedule_date=schedule_date, + protect_content=protect_content, + reply_markup=reply_markup + ) reply_text = reply @@ -406,7 +414,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 +443,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 +466,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 +476,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 +490,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 +521,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 +539,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 +557,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 +590,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 +616,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 +630,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 +650,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 +660,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 +693,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 +712,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 +727,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 +740,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 +759,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 +770,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 +808,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 +829,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 +841,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 +886,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,7 +919,7 @@ 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_markup=reply_markup) @@ -924,7 +932,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 +967,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 +987,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 +997,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..5564984ed 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 @@ -213,12 +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, - disable_web_page_preview=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 8fc4cefbc..7c648aacb 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,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, 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..a98ef9b50 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,13 @@ 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 +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, 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 +224,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 +240,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 +560,13 @@ 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)