diff --git a/compiler/api/template/combinator.txt b/compiler/api/template/combinator.txt index 7c02a1a8..fa7a7697 100644 --- a/compiler/api/template/combinator.txt +++ b/compiler/api/template/combinator.txt @@ -27,7 +27,7 @@ class {name}(TLObject): # type: ignore {read_types} return {name}({return_arguments}) - def write(self) -> bytes: + def write(self, *args) -> bytes: b = BytesIO() b.write(Int(self.ID, False)) diff --git a/pyrogram/client.py b/pyrogram/client.py index cf3b8ec3..cfef3a8d 100644 --- a/pyrogram/client.py +++ b/pyrogram/client.py @@ -21,15 +21,19 @@ import functools import inspect import logging import os +import platform import re import shutil +import sys import tempfile from concurrent.futures.thread import ThreadPoolExecutor from configparser import ConfigParser from hashlib import sha256 from importlib import import_module +from io import StringIO +from mimetypes import MimeTypes from pathlib import Path -from typing import Union, List, Optional +from typing import Union, List, Optional, Callable import pyrogram from pyrogram import __version__, __license__ @@ -51,12 +55,14 @@ from pyrogram.types import User, TermsOfService from pyrogram.utils import ainput from .dispatcher import Dispatcher from .file_id import FileId, FileType, ThumbnailSource -from .scaffold import Scaffold +from .mime_types import mime_types +from .parser import Parser +from .session.internals import MsgId log = logging.getLogger(__name__) -class Client(Methods, Scaffold): +class Client(Methods): """Pyrogram Client, the main means for interacting with Telegram. Parameters: @@ -177,10 +183,26 @@ class Client(Methods, Scaffold): terminal environments. """ + APP_VERSION = f"Pyrogram {__version__}" + DEVICE_MODEL = f"{platform.python_implementation()} {platform.python_version()}" + SYSTEM_VERSION = f"{platform.system()} {platform.release()}" + + LANG_CODE = "en" + + PARENT_DIR = Path(sys.argv[0]).parent + + INVITE_LINK_RE = re.compile(r"^(?:https?://)?(?:www\.)?(?:t(?:elegram)?\.(?:org|me|dog)/(?:joinchat/|\+))([\w-]+)$") + WORKERS = min(32, (os.cpu_count() or 0) + 4) # os.cpu_count() can be None + WORKDIR = PARENT_DIR + CONFIG_FILE = PARENT_DIR / "config.ini" + + mimetypes = MimeTypes() + mimetypes.readfp(StringIO(mime_types)) + def __init__( self, session_name: Union[str, Storage], - api_id: Union[int, str] = None, + api_id: int = None, api_hash: str = None, app_version: str = None, device_model: str = None, @@ -194,9 +216,9 @@ class Client(Methods, Scaffold): phone_code: str = None, password: str = None, force_sms: bool = False, - workers: int = Scaffold.WORKERS, - workdir: str = Scaffold.WORKDIR, - config_file: str = Scaffold.CONFIG_FILE, + workers: int = WORKERS, + workdir: str = WORKDIR, + config_file: str = CONFIG_FILE, plugins: dict = None, parse_mode: "enums.ParseMode" = enums.ParseMode.DEFAULT, no_updates: bool = None, @@ -207,7 +229,7 @@ class Client(Methods, Scaffold): super().__init__() self.session_name = session_name - self.api_id = int(api_id) if api_id else None + self.api_id = api_id self.api_hash = api_hash self.app_version = app_version self.device_model = device_model @@ -246,6 +268,24 @@ class Client(Methods, Scaffold): raise ValueError("Unknown storage engine") self.dispatcher = Dispatcher(self) + + self.rnd_id = MsgId + + self.parser = Parser(self) + self.parse_mode = enums.ParseMode.DEFAULT + + self.session = None + + self.media_sessions = {} + self.media_sessions_lock = asyncio.Lock() + + self.is_connected = None + self.is_initialized = None + + self.takeout_id = None + + self.disconnect_handler = None + self.loop = asyncio.get_event_loop() def __enter__(self): @@ -790,7 +830,7 @@ class Client(Methods, Scaffold): self, file_id: FileId, file_size: int, - progress: callable, + progress: Callable, progress_args: tuple = () ) -> str: dc_id = file_id.dc_id diff --git a/pyrogram/filters.py b/pyrogram/filters.py index 276d70c2..2eeef95c 100644 --- a/pyrogram/filters.py +++ b/pyrogram/filters.py @@ -127,7 +127,7 @@ def create(func: Callable, name: str = None, **kwargs) -> Filter: Custom filters give you extra control over which updates are allowed or not to be processed by your handlers. Parameters: - func (``callable``): + func (``Callable``): A function that accepts three positional arguments *(filter, client, update)* and returns a boolean: True if the update should be handled, False otherwise. The *filter* argument refers to the filter itself and can be used to access keyword arguments (read below). diff --git a/pyrogram/handlers/callback_query_handler.py b/pyrogram/handlers/callback_query_handler.py index b582d728..b924fffa 100644 --- a/pyrogram/handlers/callback_query_handler.py +++ b/pyrogram/handlers/callback_query_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class CallbackQueryHandler(Handler): :meth:`~pyrogram.Client.on_callback_query` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new CallbackQuery arrives. It takes *(client, callback_query)* as positional arguments (look at the section below for a detailed description). @@ -43,5 +45,5 @@ class CallbackQueryHandler(Handler): The received callback query. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/chat_join_request_handler.py b/pyrogram/handlers/chat_join_request_handler.py index 03e2ac67..54b8b86a 100644 --- a/pyrogram/handlers/chat_join_request_handler.py +++ b/pyrogram/handlers/chat_join_request_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class ChatJoinRequestHandler(Handler): :meth:`~pyrogram.Client.on_chat_join_request` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new ChatJoinRequest event arrives. It takes *(client, chat_join_request)* as positional arguments (look at the section below for a detailed description). @@ -43,5 +45,5 @@ class ChatJoinRequestHandler(Handler): The received chat join request. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/chat_member_updated_handler.py b/pyrogram/handlers/chat_member_updated_handler.py index 8cfdd726..a89e7e2b 100644 --- a/pyrogram/handlers/chat_member_updated_handler.py +++ b/pyrogram/handlers/chat_member_updated_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class ChatMemberUpdatedHandler(Handler): :meth:`~pyrogram.Client.on_chat_member_updated` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new ChatMemberUpdated event arrives. It takes *(client, chat_member_updated)* as positional arguments (look at the section below for a detailed description). @@ -43,5 +45,5 @@ class ChatMemberUpdatedHandler(Handler): The received chat member update. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/chosen_inline_result_handler.py b/pyrogram/handlers/chosen_inline_result_handler.py index 81691a35..1c04f8f4 100644 --- a/pyrogram/handlers/chosen_inline_result_handler.py +++ b/pyrogram/handlers/chosen_inline_result_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class ChosenInlineResultHandler(Handler): :meth:`~pyrogram.Client.on_chosen_inline_result` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new chosen inline result arrives. It takes *(client, chosen_inline_result)* as positional arguments (look at the section below for a detailed description). @@ -44,5 +46,5 @@ class ChosenInlineResultHandler(Handler): The received chosen inline result. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/deleted_messages_handler.py b/pyrogram/handlers/deleted_messages_handler.py index a336c650..ab9f8347 100644 --- a/pyrogram/handlers/deleted_messages_handler.py +++ b/pyrogram/handlers/deleted_messages_handler.py @@ -32,7 +32,7 @@ class DeletedMessagesHandler(Handler): :meth:`~pyrogram.Client.on_deleted_messages` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when one or more messages have been deleted. It takes *(client, messages)* as positional arguments (look at the section below for a detailed description). diff --git a/pyrogram/handlers/disconnect_handler.py b/pyrogram/handlers/disconnect_handler.py index c471e8c7..7420afd6 100644 --- a/pyrogram/handlers/disconnect_handler.py +++ b/pyrogram/handlers/disconnect_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class DisconnectHandler(Handler): :meth:`~pyrogram.Client.on_disconnect` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a disconnection occurs. It takes *(client)* as positional argument (look at the section below for a detailed description). @@ -37,5 +39,5 @@ class DisconnectHandler(Handler): is established. """ - def __init__(self, callback: callable): + def __init__(self, callback: Callable): super().__init__(callback) diff --git a/pyrogram/handlers/inline_query_handler.py b/pyrogram/handlers/inline_query_handler.py index 0ce58d17..f5ea23bc 100644 --- a/pyrogram/handlers/inline_query_handler.py +++ b/pyrogram/handlers/inline_query_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class InlineQueryHandler(Handler): :meth:`~pyrogram.Client.on_inline_query` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new InlineQuery arrives. It takes *(client, inline_query)* as positional arguments (look at the section below for a detailed description). @@ -43,5 +45,5 @@ class InlineQueryHandler(Handler): The received inline query. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/message_handler.py b/pyrogram/handlers/message_handler.py index 144dbe91..63a334fc 100644 --- a/pyrogram/handlers/message_handler.py +++ b/pyrogram/handlers/message_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class MessageHandler(Handler): :meth:`~pyrogram.Client.on_message` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new Message arrives. It takes *(client, message)* as positional arguments (look at the section below for a detailed description). @@ -43,5 +45,5 @@ class MessageHandler(Handler): The received message. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/poll_handler.py b/pyrogram/handlers/poll_handler.py index 0151f2b7..332ca7ea 100644 --- a/pyrogram/handlers/poll_handler.py +++ b/pyrogram/handlers/poll_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -28,7 +30,7 @@ class PollHandler(Handler): :meth:`~pyrogram.Client.on_poll` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new poll update arrives. It takes *(client, poll)* as positional arguments (look at the section below for a detailed description). @@ -44,5 +46,5 @@ class PollHandler(Handler): The received poll. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/handlers/raw_update_handler.py b/pyrogram/handlers/raw_update_handler.py index e12e8477..d957083b 100644 --- a/pyrogram/handlers/raw_update_handler.py +++ b/pyrogram/handlers/raw_update_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -27,7 +29,7 @@ class RawUpdateHandler(Handler): :meth:`~pyrogram.Client.on_raw_update` decorator. Parameters: - callback (``callable``): + callback (``Callable``): A function that will be called when a new update is received from the server. It takes *(client, update, users, chats)* as positional arguments (look at the section below for a detailed description). @@ -61,5 +63,5 @@ class RawUpdateHandler(Handler): - :obj:`~pyrogram.raw.types.ChannelForbidden` """ - def __init__(self, callback: callable): + def __init__(self, callback: Callable): super().__init__(callback) diff --git a/pyrogram/handlers/user_status_handler.py b/pyrogram/handlers/user_status_handler.py index caebac74..f10871e8 100644 --- a/pyrogram/handlers/user_status_handler.py +++ b/pyrogram/handlers/user_status_handler.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from typing import Callable + from .handler import Handler @@ -26,7 +28,7 @@ class UserStatusHandler(Handler): For a nicer way to register this handler, have a look at the :meth:`~pyrogram.Client.on_user_status` decorator. Parameters: - callback (``callable``): + callback (``Callable``): Pass a function that will be called when a new user status update arrives. It takes *(client, user)* as positional arguments (look at the section below for a detailed description). @@ -41,5 +43,5 @@ class UserStatusHandler(Handler): The user containing the updated status. """ - def __init__(self, callback: callable, filters=None): + def __init__(self, callback: Callable, filters=None): super().__init__(callback, filters) diff --git a/pyrogram/methods/advanced/resolve_peer.py b/pyrogram/methods/advanced/resolve_peer.py index 2a39780c..db4def9a 100644 --- a/pyrogram/methods/advanced/resolve_peer.py +++ b/pyrogram/methods/advanced/resolve_peer.py @@ -20,17 +20,17 @@ import logging import re from typing import Union +import pyrogram from pyrogram import raw from pyrogram import utils from pyrogram.errors import PeerIdInvalid -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class ResolvePeer(Scaffold): +class ResolvePeer: async def resolve_peer( - self, + self: "pyrogram.Client", peer_id: Union[int, str] ) -> Union[raw.base.InputPeer, raw.base.InputUser, raw.base.InputChannel]: """Get the InputPeer of a known peer id. diff --git a/pyrogram/methods/advanced/save_file.py b/pyrogram/methods/advanced/save_file.py index 3f6ebb68..9c92651d 100644 --- a/pyrogram/methods/advanced/save_file.py +++ b/pyrogram/methods/advanced/save_file.py @@ -25,23 +25,23 @@ import math import os from hashlib import md5 from pathlib import PurePath -from typing import Union, BinaryIO +from typing import Union, BinaryIO, Callable +import pyrogram from pyrogram import StopTransmission from pyrogram import raw -from pyrogram.scaffold import Scaffold from pyrogram.session import Session log = logging.getLogger(__name__) -class SaveFile(Scaffold): +class SaveFile: async def save_file( - self, + self: "pyrogram.Client", path: Union[str, BinaryIO], file_id: int = None, file_part: int = 0, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ): """Upload a file onto Telegram servers, without actually sending the message to anyone. @@ -64,7 +64,7 @@ class SaveFile(Scaffold): file_part (``int``, *optional*): In case a file part expired, pass the file_id and the file_part to retry uploading that specific chunk. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/advanced/send.py b/pyrogram/methods/advanced/send.py index 8ef0849c..6e5551cd 100644 --- a/pyrogram/methods/advanced/send.py +++ b/pyrogram/methods/advanced/send.py @@ -18,17 +18,17 @@ import logging +import pyrogram from pyrogram import raw from pyrogram.raw.core import TLObject -from pyrogram.scaffold import Scaffold from pyrogram.session import Session log = logging.getLogger(__name__) -class Send(Scaffold): +class Send: async def send( - self, + self: "pyrogram.Client", data: TLObject, retries: int = Session.MAX_RETRIES, timeout: float = Session.WAIT_TIMEOUT, diff --git a/pyrogram/methods/auth/accept_terms_of_service.py b/pyrogram/methods/auth/accept_terms_of_service.py index 5641a8ac..ea041d6c 100644 --- a/pyrogram/methods/auth/accept_terms_of_service.py +++ b/pyrogram/methods/auth/accept_terms_of_service.py @@ -16,12 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class AcceptTermsOfService(Scaffold): - async def accept_terms_of_service(self, terms_of_service_id: str) -> bool: +class AcceptTermsOfService: + async def accept_terms_of_service( + self: "pyrogram.Client", + terms_of_service_id: str + ) -> bool: """Accept the given terms of service. Parameters: diff --git a/pyrogram/methods/auth/check_password.py b/pyrogram/methods/auth/check_password.py index 1cfa526b..1f1d142c 100644 --- a/pyrogram/methods/auth/check_password.py +++ b/pyrogram/methods/auth/check_password.py @@ -18,16 +18,19 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold from pyrogram.utils import compute_password_check log = logging.getLogger(__name__) -class CheckPassword(Scaffold): - async def check_password(self, password: str) -> "types.User": +class CheckPassword: + async def check_password( + self: "pyrogram.Client", + password: str + ) -> "types.User": """Check your Two-Step Verification password and log in. Parameters: diff --git a/pyrogram/methods/auth/connect.py b/pyrogram/methods/auth/connect.py index 82cf661f..191a0e93 100644 --- a/pyrogram/methods/auth/connect.py +++ b/pyrogram/methods/auth/connect.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from pyrogram.scaffold import Scaffold +import pyrogram from pyrogram.session import Session -class Connect(Scaffold): - async def connect(self) -> bool: +class Connect: + async def connect( + self: "pyrogram.Client", + ) -> bool: """ Connect the client to Telegram servers. diff --git a/pyrogram/methods/auth/disconnect.py b/pyrogram/methods/auth/disconnect.py index ddc1e7e1..daa07b83 100644 --- a/pyrogram/methods/auth/disconnect.py +++ b/pyrogram/methods/auth/disconnect.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from pyrogram.scaffold import Scaffold +import pyrogram -class Disconnect(Scaffold): - async def disconnect(self): +class Disconnect: + async def disconnect( + self: "pyrogram.Client", + ): """Disconnect the client from Telegram servers. Raises: diff --git a/pyrogram/methods/auth/get_password_hint.py b/pyrogram/methods/auth/get_password_hint.py index 6ba3f280..d9002106 100644 --- a/pyrogram/methods/auth/get_password_hint.py +++ b/pyrogram/methods/auth/get_password_hint.py @@ -18,14 +18,16 @@ import logging +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetPasswordHint(Scaffold): - async def get_password_hint(self) -> str: +class GetPasswordHint: + async def get_password_hint( + self: "pyrogram.Client", + ) -> str: """Get your Two-Step Verification password hint. Returns: diff --git a/pyrogram/methods/auth/initialize.py b/pyrogram/methods/auth/initialize.py index 0b760881..2ee15b61 100644 --- a/pyrogram/methods/auth/initialize.py +++ b/pyrogram/methods/auth/initialize.py @@ -18,14 +18,16 @@ import logging -from pyrogram.scaffold import Scaffold +import pyrogram from pyrogram.syncer import Syncer log = logging.getLogger(__name__) -class Initialize(Scaffold): - async def initialize(self): +class Initialize: + async def initialize( + self: "pyrogram.Client", + ): """Initialize the client by starting up workers. This method will start updates and download workers. diff --git a/pyrogram/methods/auth/log_out.py b/pyrogram/methods/auth/log_out.py index 7174545d..2f8ad019 100644 --- a/pyrogram/methods/auth/log_out.py +++ b/pyrogram/methods/auth/log_out.py @@ -18,14 +18,16 @@ import logging +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class LogOut(Scaffold): - async def log_out(self): +class LogOut: + async def log_out( + self: "pyrogram.Client", + ): """Log out from Telegram and delete the *\\*.session* file. When you log out, the current client is stopped and the storage session deleted. diff --git a/pyrogram/methods/auth/recover_password.py b/pyrogram/methods/auth/recover_password.py index db877ec8..600ac86a 100644 --- a/pyrogram/methods/auth/recover_password.py +++ b/pyrogram/methods/auth/recover_password.py @@ -18,15 +18,18 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class RecoverPassword(Scaffold): - async def recover_password(self, recovery_code: str) -> "types.User": +class RecoverPassword: + async def recover_password( + self: "pyrogram.Client", + recovery_code: str + ) -> "types.User": """Recover your password with a recovery code and log in. Parameters: diff --git a/pyrogram/methods/auth/resend_code.py b/pyrogram/methods/auth/resend_code.py index 18e835f5..d17cc395 100644 --- a/pyrogram/methods/auth/resend_code.py +++ b/pyrogram/methods/auth/resend_code.py @@ -18,15 +18,19 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class ResendCode(Scaffold): - async def resend_code(self, phone_number: str, phone_code_hash: str) -> "types.SentCode": +class ResendCode: + async def resend_code( + self: "pyrogram.Client", + phone_number: str, + phone_code_hash: str + ) -> "types.SentCode": """Re-send the confirmation code using a different type. The type of the code to be re-sent is specified in the *next_type* attribute of the diff --git a/pyrogram/methods/auth/send_code.py b/pyrogram/methods/auth/send_code.py index 3f92cceb..3d42fa6b 100644 --- a/pyrogram/methods/auth/send_code.py +++ b/pyrogram/methods/auth/send_code.py @@ -18,17 +18,20 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram.errors import PhoneMigrate, NetworkMigrate -from pyrogram.scaffold import Scaffold from pyrogram.session import Session, Auth log = logging.getLogger(__name__) -class SendCode(Scaffold): - async def send_code(self, phone_number: str) -> "types.SentCode": +class SendCode: + async def send_code( + self: "pyrogram.Client", + phone_number: str + ) -> "types.SentCode": """Send the confirmation code to the given phone number. Parameters: diff --git a/pyrogram/methods/auth/send_recovery_code.py b/pyrogram/methods/auth/send_recovery_code.py index 07879978..40d2b7dd 100644 --- a/pyrogram/methods/auth/send_recovery_code.py +++ b/pyrogram/methods/auth/send_recovery_code.py @@ -18,14 +18,16 @@ import logging +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class SendRecoveryCode(Scaffold): - async def send_recovery_code(self) -> str: +class SendRecoveryCode: + async def send_recovery_code( + self: "pyrogram.Client", + ) -> str: """Send a code to your email to recover your password. Returns: diff --git a/pyrogram/methods/auth/sign_in.py b/pyrogram/methods/auth/sign_in.py index 19c0fbc1..d8079c95 100644 --- a/pyrogram/methods/auth/sign_in.py +++ b/pyrogram/methods/auth/sign_in.py @@ -19,16 +19,16 @@ import logging from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class SignIn(Scaffold): +class SignIn: async def sign_in( - self, + self: "pyrogram.Client", phone_number: str, phone_code_hash: str, phone_code: str diff --git a/pyrogram/methods/auth/sign_in_bot.py b/pyrogram/methods/auth/sign_in_bot.py index 7cbcb1ac..db4515a4 100644 --- a/pyrogram/methods/auth/sign_in_bot.py +++ b/pyrogram/methods/auth/sign_in_bot.py @@ -18,17 +18,20 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram.errors import UserMigrate -from pyrogram.scaffold import Scaffold from pyrogram.session import Session, Auth log = logging.getLogger(__name__) -class SignInBot(Scaffold): - async def sign_in_bot(self, bot_token: str) -> "types.User": +class SignInBot: + async def sign_in_bot( + self: "pyrogram.Client", + bot_token: str + ) -> "types.User": """Authorize a bot using its bot token generated by BotFather. Parameters: diff --git a/pyrogram/methods/auth/sign_up.py b/pyrogram/methods/auth/sign_up.py index 4b18a732..4e769ab1 100644 --- a/pyrogram/methods/auth/sign_up.py +++ b/pyrogram/methods/auth/sign_up.py @@ -18,16 +18,16 @@ import logging +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class SignUp(Scaffold): +class SignUp: async def sign_up( - self, + self: "pyrogram.Client", phone_number: str, phone_code_hash: str, first_name: str, diff --git a/pyrogram/methods/auth/terminate.py b/pyrogram/methods/auth/terminate.py index 46b66982..d8cca6ba 100644 --- a/pyrogram/methods/auth/terminate.py +++ b/pyrogram/methods/auth/terminate.py @@ -18,15 +18,17 @@ import logging +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold from pyrogram.syncer import Syncer log = logging.getLogger(__name__) -class Terminate(Scaffold): - async def terminate(self): +class Terminate: + async def terminate( + self: "pyrogram.Client", + ): """Terminate the client by shutting down workers. This method does the opposite of :meth:`~pyrogram.Client.initialize`. diff --git a/pyrogram/methods/bots/answer_callback_query.py b/pyrogram/methods/bots/answer_callback_query.py index 941389b7..73d5ce55 100644 --- a/pyrogram/methods/bots/answer_callback_query.py +++ b/pyrogram/methods/bots/answer_callback_query.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class AnswerCallbackQuery(Scaffold): +class AnswerCallbackQuery: async def answer_callback_query( - self, + self: "pyrogram.Client", callback_query_id: str, text: str = None, show_alert: bool = None, diff --git a/pyrogram/methods/bots/answer_inline_query.py b/pyrogram/methods/bots/answer_inline_query.py index 24e7a30c..1751171d 100644 --- a/pyrogram/methods/bots/answer_inline_query.py +++ b/pyrogram/methods/bots/answer_inline_query.py @@ -18,14 +18,14 @@ from typing import Iterable +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class AnswerInlineQuery(Scaffold): +class AnswerInlineQuery: async def answer_inline_query( - self, + self: "pyrogram.Client", inline_query_id: str, results: Iterable["types.InlineQueryResult"], cache_time: int = 300, diff --git a/pyrogram/methods/bots/get_game_high_scores.py b/pyrogram/methods/bots/get_game_high_scores.py index cd0b09ba..e4a2ed15 100644 --- a/pyrogram/methods/bots/get_game_high_scores.py +++ b/pyrogram/methods/bots/get_game_high_scores.py @@ -18,14 +18,14 @@ from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetGameHighScores(Scaffold): +class GetGameHighScores: async def get_game_high_scores( - self, + self: "pyrogram.Client", user_id: Union[int, str], chat_id: Union[int, str], message_id: int = None diff --git a/pyrogram/methods/bots/get_inline_bot_results.py b/pyrogram/methods/bots/get_inline_bot_results.py index 800de93e..2c41fec7 100644 --- a/pyrogram/methods/bots/get_inline_bot_results.py +++ b/pyrogram/methods/bots/get_inline_bot_results.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram.errors import UnknownError -from pyrogram.scaffold import Scaffold -class GetInlineBotResults(Scaffold): +class GetInlineBotResults: async def get_inline_bot_results( - self, + self: "pyrogram.Client", bot: Union[int, str], query: str = "", offset: str = "", diff --git a/pyrogram/methods/bots/request_callback_answer.py b/pyrogram/methods/bots/request_callback_answer.py index 5db9dfe0..ff6ae0d3 100644 --- a/pyrogram/methods/bots/request_callback_answer.py +++ b/pyrogram/methods/bots/request_callback_answer.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class RequestCallbackAnswer(Scaffold): +class RequestCallbackAnswer: async def request_callback_answer( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, callback_data: Union[str, bytes], diff --git a/pyrogram/methods/bots/send_game.py b/pyrogram/methods/bots/send_game.py index 05b9094f..7f9e856b 100644 --- a/pyrogram/methods/bots/send_game.py +++ b/pyrogram/methods/bots/send_game.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class SendGame(Scaffold): +class SendGame: async def send_game( - self, + self: "pyrogram.Client", chat_id: Union[int, str], game_short_name: str, disable_notification: bool = None, diff --git a/pyrogram/methods/bots/send_inline_bot_result.py b/pyrogram/methods/bots/send_inline_bot_result.py index ead95810..299aaaf6 100644 --- a/pyrogram/methods/bots/send_inline_bot_result.py +++ b/pyrogram/methods/bots/send_inline_bot_result.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SendInlineBotResult(Scaffold): +class SendInlineBotResult: async def send_inline_bot_result( - self, + self: "pyrogram.Client", chat_id: Union[int, str], query_id: int, result_id: str, diff --git a/pyrogram/methods/bots/set_bot_commands.py b/pyrogram/methods/bots/set_bot_commands.py index c3461515..8c9baa2e 100644 --- a/pyrogram/methods/bots/set_bot_commands.py +++ b/pyrogram/methods/bots/set_bot_commands.py @@ -19,11 +19,11 @@ from typing import List import pyrogram -from pyrogram import raw, types -from pyrogram.scaffold import Scaffold +from pyrogram import raw +from pyrogram import types -class SetBotCommands(Scaffold): +class SetBotCommands: async def set_bot_commands( self: "pyrogram.Client", commands: List["types.BotCommand"], @@ -31,7 +31,6 @@ class SetBotCommands(Scaffold): language_code: str = "", ): """Set the list of the bot's commands. - The commands passed will overwrite any command set previously. This method can be used by the own bot only. diff --git a/pyrogram/methods/bots/set_game_score.py b/pyrogram/methods/bots/set_game_score.py index edb38dcf..ef644b60 100644 --- a/pyrogram/methods/bots/set_game_score.py +++ b/pyrogram/methods/bots/set_game_score.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class SetGameScore(Scaffold): +class SetGameScore: async def set_game_score( - self, + self: "pyrogram.Client", user_id: Union[int, str], score: int, force: bool = None, diff --git a/pyrogram/methods/chats/add_chat_members.py b/pyrogram/methods/chats/add_chat_members.py index 70fb0f97..cda789aa 100644 --- a/pyrogram/methods/chats/add_chat_members.py +++ b/pyrogram/methods/chats/add_chat_members.py @@ -18,13 +18,13 @@ from typing import Union, List +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class AddChatMembers(Scaffold): +class AddChatMembers: async def add_chat_members( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_ids: Union[Union[int, str], List[Union[int, str]]], forward_limit: int = 100 diff --git a/pyrogram/methods/chats/archive_chats.py b/pyrogram/methods/chats/archive_chats.py index c65b7622..aa5b50d5 100644 --- a/pyrogram/methods/chats/archive_chats.py +++ b/pyrogram/methods/chats/archive_chats.py @@ -18,13 +18,13 @@ from typing import Union, List +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class ArchiveChats(Scaffold): +class ArchiveChats: async def archive_chats( - self, + self: "pyrogram.Client", chat_ids: Union[int, str, List[Union[int, str]]], ) -> bool: """Archive one or more chats. diff --git a/pyrogram/methods/chats/ban_chat_member.py b/pyrogram/methods/chats/ban_chat_member.py index 3edcb164..c01b7046 100644 --- a/pyrogram/methods/chats/ban_chat_member.py +++ b/pyrogram/methods/chats/ban_chat_member.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union +import pyrogram from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class BanChatMember(Scaffold): +class BanChatMember: async def ban_chat_member( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str], until_date: datetime = datetime.fromtimestamp(0) diff --git a/pyrogram/methods/chats/create_channel.py b/pyrogram/methods/chats/create_channel.py index b3b21eae..5920d5ff 100644 --- a/pyrogram/methods/chats/create_channel.py +++ b/pyrogram/methods/chats/create_channel.py @@ -15,15 +15,14 @@ # # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . - +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class CreateChannel(Scaffold): +class CreateChannel: async def create_channel( - self, + self: "pyrogram.Client", title: str, description: str = "" ) -> "types.Chat": diff --git a/pyrogram/methods/chats/create_group.py b/pyrogram/methods/chats/create_group.py index 2117d369..d01a2e68 100644 --- a/pyrogram/methods/chats/create_group.py +++ b/pyrogram/methods/chats/create_group.py @@ -18,14 +18,14 @@ from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class CreateGroup(Scaffold): +class CreateGroup: async def create_group( - self, + self: "pyrogram.Client", title: str, users: Union[Union[int, str], List[Union[int, str]]] ) -> "types.Chat": diff --git a/pyrogram/methods/chats/create_supergroup.py b/pyrogram/methods/chats/create_supergroup.py index 2c72e25b..348fc726 100644 --- a/pyrogram/methods/chats/create_supergroup.py +++ b/pyrogram/methods/chats/create_supergroup.py @@ -15,15 +15,14 @@ # # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . - +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class CreateSupergroup(Scaffold): +class CreateSupergroup: async def create_supergroup( - self, + self: "pyrogram.Client", title: str, description: str = "" ) -> "types.Chat": diff --git a/pyrogram/methods/chats/delete_channel.py b/pyrogram/methods/chats/delete_channel.py index 3f9baa4f..246c930a 100644 --- a/pyrogram/methods/chats/delete_channel.py +++ b/pyrogram/methods/chats/delete_channel.py @@ -18,12 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteChannel(Scaffold): - async def delete_channel(self, chat_id: Union[int, str]) -> bool: +class DeleteChannel: + async def delete_channel( + self: "pyrogram.Client", + chat_id: Union[int, str] + ) -> bool: """Delete a channel. Parameters: diff --git a/pyrogram/methods/chats/delete_chat_photo.py b/pyrogram/methods/chats/delete_chat_photo.py index 4311658b..0b4d6488 100644 --- a/pyrogram/methods/chats/delete_chat_photo.py +++ b/pyrogram/methods/chats/delete_chat_photo.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteChatPhoto(Scaffold): +class DeleteChatPhoto: async def delete_chat_photo( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> bool: """Delete a chat photo. diff --git a/pyrogram/methods/chats/delete_supergroup.py b/pyrogram/methods/chats/delete_supergroup.py index b9d3bdf7..5f6e8168 100644 --- a/pyrogram/methods/chats/delete_supergroup.py +++ b/pyrogram/methods/chats/delete_supergroup.py @@ -18,12 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteSupergroup(Scaffold): - async def delete_supergroup(self, chat_id: Union[int, str]) -> bool: +class DeleteSupergroup: + async def delete_supergroup( + self: "pyrogram.Client", + chat_id: Union[int, str] + ) -> bool: """Delete a supergroup. Parameters: diff --git a/pyrogram/methods/chats/delete_user_history.py b/pyrogram/methods/chats/delete_user_history.py index ca9d0c59..867100bb 100644 --- a/pyrogram/methods/chats/delete_user_history.py +++ b/pyrogram/methods/chats/delete_user_history.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteUserHistory(Scaffold): +class DeleteUserHistory: async def delete_user_history( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str], ) -> bool: diff --git a/pyrogram/methods/chats/get_chat.py b/pyrogram/methods/chats/get_chat.py index d9ecb166..99e57566 100644 --- a/pyrogram/methods/chats/get_chat.py +++ b/pyrogram/methods/chats/get_chat.py @@ -18,15 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class GetChat(Scaffold): +class GetChat: async def get_chat( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> Union["types.Chat", "types.ChatPreview"]: """Get up to date information about a chat. diff --git a/pyrogram/methods/chats/get_chat_event_log.py b/pyrogram/methods/chats/get_chat_event_log.py index 3e392a20..db277090 100644 --- a/pyrogram/methods/chats/get_chat_event_log.py +++ b/pyrogram/methods/chats/get_chat_event_log.py @@ -18,14 +18,14 @@ from typing import Union, List, AsyncGenerator, Optional +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetChatEventLog(Scaffold): +class GetChatEventLog: async def get_chat_event_log( - self, + self: "pyrogram.Client", chat_id: Union[int, str], query: str = "", offset_id: int = 0, diff --git a/pyrogram/methods/chats/get_chat_member.py b/pyrogram/methods/chats/get_chat_member.py index 9987327c..9717d019 100644 --- a/pyrogram/methods/chats/get_chat_member.py +++ b/pyrogram/methods/chats/get_chat_member.py @@ -18,15 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram.errors import UserNotParticipant -from pyrogram.scaffold import Scaffold -class GetChatMember(Scaffold): +class GetChatMember: async def get_chat_member( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str] ) -> "types.ChatMember": diff --git a/pyrogram/methods/chats/get_chat_members.py b/pyrogram/methods/chats/get_chat_members.py index 4c8ae602..7e6b8898 100644 --- a/pyrogram/methods/chats/get_chat_members.py +++ b/pyrogram/methods/chats/get_chat_members.py @@ -19,15 +19,15 @@ import logging from typing import Union, List +import pyrogram from pyrogram import raw, types, enums -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetChatMembers(Scaffold): +class GetChatMembers: async def get_chat_members( - self, + self: "pyrogram.Client", chat_id: Union[int, str], offset: int = 0, limit: int = 200, @@ -105,17 +105,17 @@ class GetChatMembers(Scaffold): elif isinstance(peer, raw.types.InputPeerChannel): filter = filter.lower() - if filter == Filters.ALL: + if filter == enums.ChatMembersFilter.ANY: filter = raw.types.ChannelParticipantsSearch(q=query) - elif filter == Filters.BANNED: + elif filter == enums.ChatMembersFilter.BANNED: filter = raw.types.ChannelParticipantsKicked(q=query) - elif filter == Filters.RESTRICTED: + elif filter == enums.ChatMembersFilter.RESTRICTED: filter = raw.types.ChannelParticipantsBanned(q=query) - elif filter == Filters.BOTS: + elif filter == enums.ChatMembersFilter.BOTS: filter = raw.types.ChannelParticipantsBots() - elif filter == Filters.RECENT: + elif filter == enums.ChatMembersFilter.RECENT: filter = raw.types.ChannelParticipantsRecent() - elif filter == Filters.ADMINISTRATORS: + elif filter == enums.ChatMembersFilter.ADMINISTRATORS: filter = raw.types.ChannelParticipantsAdmins() else: raise ValueError(f'Invalid filter "{filter}"') diff --git a/pyrogram/methods/chats/get_chat_members_count.py b/pyrogram/methods/chats/get_chat_members_count.py index aa943eea..a7dae4be 100644 --- a/pyrogram/methods/chats/get_chat_members_count.py +++ b/pyrogram/methods/chats/get_chat_members_count.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetChatMembersCount(Scaffold): +class GetChatMembersCount: async def get_chat_members_count( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> int: """Get the number of members in a chat. diff --git a/pyrogram/methods/chats/get_chat_online_count.py b/pyrogram/methods/chats/get_chat_online_count.py index a8d13214..3f8e5d6a 100644 --- a/pyrogram/methods/chats/get_chat_online_count.py +++ b/pyrogram/methods/chats/get_chat_online_count.py @@ -18,12 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetChatOnlineCount(Scaffold): - async def get_chat_online_count(self, chat_id: Union[int, str]) -> int: +class GetChatOnlineCount: + async def get_chat_online_count( + self: "pyrogram.Client", + chat_id: Union[int, str] + ) -> int: """Get the number of members that are currently online in a chat. Parameters: diff --git a/pyrogram/methods/chats/get_dialogs.py b/pyrogram/methods/chats/get_dialogs.py index 9fb907ca..7276c80b 100644 --- a/pyrogram/methods/chats/get_dialogs.py +++ b/pyrogram/methods/chats/get_dialogs.py @@ -20,17 +20,17 @@ import logging from datetime import datetime from typing import List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetDialogs(Scaffold): +class GetDialogs: async def get_dialogs( - self, + self: "pyrogram.Client", offset_date: datetime = datetime.fromtimestamp(0), limit: int = 100, pinned_only: bool = False diff --git a/pyrogram/methods/chats/get_dialogs_count.py b/pyrogram/methods/chats/get_dialogs_count.py index a8598e5f..3f869909 100644 --- a/pyrogram/methods/chats/get_dialogs_count.py +++ b/pyrogram/methods/chats/get_dialogs_count.py @@ -16,12 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetDialogsCount(Scaffold): - async def get_dialogs_count(self, pinned_only: bool = False) -> int: +class GetDialogsCount: + async def get_dialogs_count( + self: "pyrogram.Client", + pinned_only: bool = False + ) -> int: """Get the total count of your dialogs. pinned_only (``bool``, *optional*): diff --git a/pyrogram/methods/chats/get_nearby_chats.py b/pyrogram/methods/chats/get_nearby_chats.py index dcceb439..0dff05aa 100644 --- a/pyrogram/methods/chats/get_nearby_chats.py +++ b/pyrogram/methods/chats/get_nearby_chats.py @@ -18,15 +18,15 @@ from typing import List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class GetNearbyChats(Scaffold): +class GetNearbyChats: async def get_nearby_chats( - self, + self: "pyrogram.Client", latitude: float, longitude: float ) -> List["types.Chat"]: diff --git a/pyrogram/methods/chats/get_send_as_chats.py b/pyrogram/methods/chats/get_send_as_chats.py index 4d2fae48..147da217 100644 --- a/pyrogram/methods/chats/get_send_as_chats.py +++ b/pyrogram/methods/chats/get_send_as_chats.py @@ -18,14 +18,14 @@ from typing import List, Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetSendAsChats(Scaffold): +class GetSendAsChats: async def get_send_as_chats( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> List["types.Chat"]: """Get the list of "send_as" chats available. diff --git a/pyrogram/methods/chats/iter_chat_members.py b/pyrogram/methods/chats/iter_chat_members.py index 3661d506..f3ccf06c 100644 --- a/pyrogram/methods/chats/iter_chat_members.py +++ b/pyrogram/methods/chats/iter_chat_members.py @@ -18,9 +18,9 @@ from typing import Union, AsyncGenerator, Optional +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold class Filters: @@ -32,9 +32,9 @@ class Filters: ADMINISTRATORS = "administrators" -class IterChatMembers(Scaffold): +class IterChatMembers: async def iter_chat_members( - self, + self: "pyrogram.Client", chat_id: Union[int, str], limit: int = 0, query: str = "", diff --git a/pyrogram/methods/chats/iter_dialogs.py b/pyrogram/methods/chats/iter_dialogs.py index 4553e3d4..009bdfa8 100644 --- a/pyrogram/methods/chats/iter_dialogs.py +++ b/pyrogram/methods/chats/iter_dialogs.py @@ -18,13 +18,13 @@ from typing import AsyncGenerator, Optional +import pyrogram from pyrogram import types, raw, utils -from pyrogram.scaffold import Scaffold -class IterDialogs(Scaffold): +class IterDialogs: async def iter_dialogs( - self, + self: "pyrogram.Client", limit: int = 0 ) -> Optional[AsyncGenerator["types.Dialog", None]]: """Iterate through a user's dialogs sequentially. diff --git a/pyrogram/methods/chats/join_chat.py b/pyrogram/methods/chats/join_chat.py index 3f1a09f9..c1a850af 100644 --- a/pyrogram/methods/chats/join_chat.py +++ b/pyrogram/methods/chats/join_chat.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class JoinChat(Scaffold): +class JoinChat: async def join_chat( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> "types.Chat": """Join a group chat or channel. diff --git a/pyrogram/methods/chats/leave_chat.py b/pyrogram/methods/chats/leave_chat.py index 3271a1f9..56369e1c 100644 --- a/pyrogram/methods/chats/leave_chat.py +++ b/pyrogram/methods/chats/leave_chat.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class LeaveChat(Scaffold): +class LeaveChat: async def leave_chat( - self, + self: "pyrogram.Client", chat_id: Union[int, str], delete: bool = False ): diff --git a/pyrogram/methods/chats/mark_chat_unread.py b/pyrogram/methods/chats/mark_chat_unread.py index 4a48c5d6..32251e2a 100644 --- a/pyrogram/methods/chats/mark_chat_unread.py +++ b/pyrogram/methods/chats/mark_chat_unread.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram.raw import functions -from pyrogram.scaffold import Scaffold -class MarkChatUnread(Scaffold): +class MarkChatUnread: async def mark_chat_unread( - self, + self: "pyrogram.Client", chat_id: Union[int, str], ) -> bool: """Mark a chat as unread. diff --git a/pyrogram/methods/chats/pin_chat_message.py b/pyrogram/methods/chats/pin_chat_message.py index 016a19a7..9e34e1aa 100644 --- a/pyrogram/methods/chats/pin_chat_message.py +++ b/pyrogram/methods/chats/pin_chat_message.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw, types -from pyrogram.scaffold import Scaffold -class PinChatMessage(Scaffold): +class PinChatMessage: async def pin_chat_message( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, disable_notification: bool = False, diff --git a/pyrogram/methods/chats/promote_chat_member.py b/pyrogram/methods/chats/promote_chat_member.py index b1d43867..63a844bb 100644 --- a/pyrogram/methods/chats/promote_chat_member.py +++ b/pyrogram/methods/chats/promote_chat_member.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw, types -from pyrogram.scaffold import Scaffold -class PromoteChatMember(Scaffold): +class PromoteChatMember: async def promote_chat_member( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str], privileges: "types.ChatPrivileges" = types.ChatPrivileges(), diff --git a/pyrogram/methods/chats/restrict_chat_member.py b/pyrogram/methods/chats/restrict_chat_member.py index 22eee519..a8ab2173 100644 --- a/pyrogram/methods/chats/restrict_chat_member.py +++ b/pyrogram/methods/chats/restrict_chat_member.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union +import pyrogram from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class RestrictChatMember(Scaffold): +class RestrictChatMember: async def restrict_chat_member( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str], permissions: "types.ChatPermissions", diff --git a/pyrogram/methods/chats/set_administrator_title.py b/pyrogram/methods/chats/set_administrator_title.py index f59cf28a..ed59b342 100644 --- a/pyrogram/methods/chats/set_administrator_title.py +++ b/pyrogram/methods/chats/set_administrator_title.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetAdministratorTitle(Scaffold): +class SetAdministratorTitle: async def set_administrator_title( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str], title: str, diff --git a/pyrogram/methods/chats/set_chat_description.py b/pyrogram/methods/chats/set_chat_description.py index 6d2575f2..440b4050 100644 --- a/pyrogram/methods/chats/set_chat_description.py +++ b/pyrogram/methods/chats/set_chat_description.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetChatDescription(Scaffold): +class SetChatDescription: async def set_chat_description( - self, + self: "pyrogram.Client", chat_id: Union[int, str], description: str ) -> bool: diff --git a/pyrogram/methods/chats/set_chat_permissions.py b/pyrogram/methods/chats/set_chat_permissions.py index 2ff2b678..dfbd5d91 100644 --- a/pyrogram/methods/chats/set_chat_permissions.py +++ b/pyrogram/methods/chats/set_chat_permissions.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class SetChatPermissions(Scaffold): +class SetChatPermissions: async def set_chat_permissions( - self, + self: "pyrogram.Client", chat_id: Union[int, str], permissions: "types.ChatPermissions", ) -> "types.Chat": diff --git a/pyrogram/methods/chats/set_chat_photo.py b/pyrogram/methods/chats/set_chat_photo.py index a1fee7f6..1097b237 100644 --- a/pyrogram/methods/chats/set_chat_photo.py +++ b/pyrogram/methods/chats/set_chat_photo.py @@ -19,15 +19,15 @@ import os from typing import Union, BinaryIO +import pyrogram from pyrogram import raw from pyrogram import utils from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SetChatPhoto(Scaffold): +class SetChatPhoto: async def set_chat_photo( - self, + self: "pyrogram.Client", chat_id: Union[int, str], *, photo: Union[str, BinaryIO] = None, diff --git a/pyrogram/methods/chats/set_chat_protected_content.py b/pyrogram/methods/chats/set_chat_protected_content.py index d63e381d..1372481c 100644 --- a/pyrogram/methods/chats/set_chat_protected_content.py +++ b/pyrogram/methods/chats/set_chat_protected_content.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram.raw import functions -from pyrogram.scaffold import Scaffold -class SetChatProtectedContent(Scaffold): +class SetChatProtectedContent: async def set_chat_protected_content( - self, + self: "pyrogram.Client", chat_id: Union[int, str], enabled: bool ) -> bool: diff --git a/pyrogram/methods/chats/set_chat_title.py b/pyrogram/methods/chats/set_chat_title.py index 62649f38..ac30b078 100644 --- a/pyrogram/methods/chats/set_chat_title.py +++ b/pyrogram/methods/chats/set_chat_title.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetChatTitle(Scaffold): +class SetChatTitle: async def set_chat_title( - self, + self: "pyrogram.Client", chat_id: Union[int, str], title: str ) -> bool: diff --git a/pyrogram/methods/chats/set_chat_username.py b/pyrogram/methods/chats/set_chat_username.py index 8496dda3..c63207aa 100644 --- a/pyrogram/methods/chats/set_chat_username.py +++ b/pyrogram/methods/chats/set_chat_username.py @@ -18,13 +18,13 @@ from typing import Union, Optional +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetChatUsername(Scaffold): +class SetChatUsername: async def set_chat_username( - self, + self: "pyrogram.Client", chat_id: Union[int, str], username: Optional[str] ) -> bool: diff --git a/pyrogram/methods/chats/set_send_as_chat.py b/pyrogram/methods/chats/set_send_as_chat.py index 3fc686bb..dabb4066 100644 --- a/pyrogram/methods/chats/set_send_as_chat.py +++ b/pyrogram/methods/chats/set_send_as_chat.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetSendAsChat(Scaffold): +class SetSendAsChat: async def set_send_as_chat( - self, + self: "pyrogram.Client", chat_id: Union[int, str], send_as_chat_id: Union[int, str] ) -> bool: diff --git a/pyrogram/methods/chats/set_slow_mode.py b/pyrogram/methods/chats/set_slow_mode.py index 7e6739ba..3bc00cb2 100644 --- a/pyrogram/methods/chats/set_slow_mode.py +++ b/pyrogram/methods/chats/set_slow_mode.py @@ -18,13 +18,13 @@ from typing import Union, Optional +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetSlowMode(Scaffold): +class SetSlowMode: async def set_slow_mode( - self, + self: "pyrogram.Client", chat_id: Union[int, str], seconds: Optional[int] ) -> bool: diff --git a/pyrogram/methods/chats/unarchive_chats.py b/pyrogram/methods/chats/unarchive_chats.py index 32867798..a6b77d18 100644 --- a/pyrogram/methods/chats/unarchive_chats.py +++ b/pyrogram/methods/chats/unarchive_chats.py @@ -18,13 +18,13 @@ from typing import Union, List +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UnarchiveChats(Scaffold): +class UnarchiveChats: async def unarchive_chats( - self, + self: "pyrogram.Client", chat_ids: Union[int, str, List[Union[int, str]]], ) -> bool: """Unarchive one or more chats. diff --git a/pyrogram/methods/chats/unban_chat_member.py b/pyrogram/methods/chats/unban_chat_member.py index c7be7b58..9176fe33 100644 --- a/pyrogram/methods/chats/unban_chat_member.py +++ b/pyrogram/methods/chats/unban_chat_member.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UnbanChatMember(Scaffold): +class UnbanChatMember: async def unban_chat_member( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: Union[int, str] ) -> bool: diff --git a/pyrogram/methods/chats/unpin_all_chat_messages.py b/pyrogram/methods/chats/unpin_all_chat_messages.py index 3028120a..bd75c40d 100644 --- a/pyrogram/methods/chats/unpin_all_chat_messages.py +++ b/pyrogram/methods/chats/unpin_all_chat_messages.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UnpinAllChatMessages(Scaffold): +class UnpinAllChatMessages: async def unpin_all_chat_messages( - self, + self: "pyrogram.Client", chat_id: Union[int, str], ) -> bool: """Use this method to clear the list of pinned messages in a chat. diff --git a/pyrogram/methods/chats/unpin_chat_message.py b/pyrogram/methods/chats/unpin_chat_message.py index 83654452..cf3f9e9d 100644 --- a/pyrogram/methods/chats/unpin_chat_message.py +++ b/pyrogram/methods/chats/unpin_chat_message.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UnpinChatMessage(Scaffold): +class UnpinChatMessage: async def unpin_chat_message( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int = 0 ) -> bool: diff --git a/pyrogram/methods/contacts/add_contact.py b/pyrogram/methods/contacts/add_contact.py index cceb273d..72bdd88a 100644 --- a/pyrogram/methods/contacts/add_contact.py +++ b/pyrogram/methods/contacts/add_contact.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class AddContact(Scaffold): +class AddContact: async def add_contact( - self, + self: "pyrogram.Client", user_id: Union[int, str], first_name: str, last_name: str = "", diff --git a/pyrogram/methods/contacts/delete_contacts.py b/pyrogram/methods/contacts/delete_contacts.py index 27340747..e6ef3258 100644 --- a/pyrogram/methods/contacts/delete_contacts.py +++ b/pyrogram/methods/contacts/delete_contacts.py @@ -18,13 +18,13 @@ from typing import List, Union +import pyrogram from pyrogram import raw, types -from pyrogram.scaffold import Scaffold -class DeleteContacts(Scaffold): +class DeleteContacts: async def delete_contacts( - self, + self: "pyrogram.Client", user_ids: Union[int, str, List[Union[int, str]]] ) -> Union["types.User", List["types.User"], None]: """Delete contacts from your Telegram address book. diff --git a/pyrogram/methods/contacts/get_contacts.py b/pyrogram/methods/contacts/get_contacts.py index 98ed1150..0b41c3d6 100644 --- a/pyrogram/methods/contacts/get_contacts.py +++ b/pyrogram/methods/contacts/get_contacts.py @@ -19,15 +19,17 @@ import logging from typing import List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetContacts(Scaffold): - async def get_contacts(self) -> List["types.User"]: +class GetContacts: + async def get_contacts( + self: "pyrogram.Client" + ) -> List["types.User"]: """Get contacts from your Telegram address book. Returns: diff --git a/pyrogram/methods/contacts/get_contacts_count.py b/pyrogram/methods/contacts/get_contacts_count.py index b29fed7a..b7e5d371 100644 --- a/pyrogram/methods/contacts/get_contacts_count.py +++ b/pyrogram/methods/contacts/get_contacts_count.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetContactsCount(Scaffold): - async def get_contacts_count(self) -> int: +class GetContactsCount: + async def get_contacts_count( + self: "pyrogram.Client" + ) -> int: """Get the total count of contacts from your Telegram address book. Returns: diff --git a/pyrogram/methods/contacts/import_contacts.py b/pyrogram/methods/contacts/import_contacts.py index b7df8554..7a6e3142 100644 --- a/pyrogram/methods/contacts/import_contacts.py +++ b/pyrogram/methods/contacts/import_contacts.py @@ -18,14 +18,14 @@ from typing import List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class ImportContacts(Scaffold): +class ImportContacts: async def import_contacts( - self, + self: "pyrogram.Client", contacts: List["types.InputPhoneContact"] ): """Import contacts to your Telegram address book. diff --git a/pyrogram/methods/decorators/on_callback_query.py b/pyrogram/methods/decorators/on_callback_query.py index fb0b716f..07e15a3e 100644 --- a/pyrogram/methods/decorators/on_callback_query.py +++ b/pyrogram/methods/decorators/on_callback_query.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnCallbackQuery(Scaffold): +class OnCallbackQuery: def on_callback_query( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling callback queries. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_chat_join_request.py b/pyrogram/methods/decorators/on_chat_join_request.py index 06299018..57fb709c 100644 --- a/pyrogram/methods/decorators/on_chat_join_request.py +++ b/pyrogram/methods/decorators/on_chat_join_request.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnChatJoinRequest(Scaffold): +class OnChatJoinRequest: def on_chat_join_request( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling chat join requests. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_chat_member_updated.py b/pyrogram/methods/decorators/on_chat_member_updated.py index 9c10debf..c2f0e888 100644 --- a/pyrogram/methods/decorators/on_chat_member_updated.py +++ b/pyrogram/methods/decorators/on_chat_member_updated.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnChatMemberUpdated(Scaffold): +class OnChatMemberUpdated: def on_chat_member_updated( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling event changes on chat members. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_chosen_inline_result.py b/pyrogram/methods/decorators/on_chosen_inline_result.py index a2775c9b..090f6c04 100644 --- a/pyrogram/methods/decorators/on_chosen_inline_result.py +++ b/pyrogram/methods/decorators/on_chosen_inline_result.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnChosenInlineResult(Scaffold): +class OnChosenInlineResult: def on_chosen_inline_result( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling chosen inline results. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_deleted_messages.py b/pyrogram/methods/decorators/on_deleted_messages.py index 3bf88b08..9565c113 100644 --- a/pyrogram/methods/decorators/on_deleted_messages.py +++ b/pyrogram/methods/decorators/on_deleted_messages.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnDeletedMessages(Scaffold): +class OnDeletedMessages: def on_deleted_messages( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling deleted messages. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_disconnect.py b/pyrogram/methods/decorators/on_disconnect.py index 5e4f7501..ae54800f 100644 --- a/pyrogram/methods/decorators/on_disconnect.py +++ b/pyrogram/methods/decorators/on_disconnect.py @@ -19,11 +19,10 @@ from typing import Callable import pyrogram -from pyrogram.scaffold import Scaffold -class OnDisconnect(Scaffold): - def on_disconnect(self=None) -> callable: +class OnDisconnect: + def on_disconnect(self=None) -> Callable: """Decorator for handling disconnections. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_inline_query.py b/pyrogram/methods/decorators/on_inline_query.py index 4910670e..6b53a464 100644 --- a/pyrogram/methods/decorators/on_inline_query.py +++ b/pyrogram/methods/decorators/on_inline_query.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnInlineQuery(Scaffold): +class OnInlineQuery: def on_inline_query( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling inline queries. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_message.py b/pyrogram/methods/decorators/on_message.py index 634ca2e3..e9a3dfdd 100644 --- a/pyrogram/methods/decorators/on_message.py +++ b/pyrogram/methods/decorators/on_message.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnMessage(Scaffold): +class OnMessage: def on_message( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling messages. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_poll.py b/pyrogram/methods/decorators/on_poll.py index 26940403..6990c456 100644 --- a/pyrogram/methods/decorators/on_poll.py +++ b/pyrogram/methods/decorators/on_poll.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnPoll(Scaffold): +class OnPoll: def on_poll( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling poll updates. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_raw_update.py b/pyrogram/methods/decorators/on_raw_update.py index f61b156b..dffc50b9 100644 --- a/pyrogram/methods/decorators/on_raw_update.py +++ b/pyrogram/methods/decorators/on_raw_update.py @@ -19,14 +19,13 @@ from typing import Callable import pyrogram -from pyrogram.scaffold import Scaffold -class OnRawUpdate(Scaffold): +class OnRawUpdate: def on_raw_update( self=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling raw updates. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the diff --git a/pyrogram/methods/decorators/on_user_status.py b/pyrogram/methods/decorators/on_user_status.py index 38760c2f..a4328c37 100644 --- a/pyrogram/methods/decorators/on_user_status.py +++ b/pyrogram/methods/decorators/on_user_status.py @@ -20,15 +20,14 @@ from typing import Callable import pyrogram from pyrogram.filters import Filter -from pyrogram.scaffold import Scaffold -class OnUserStatus(Scaffold): +class OnUserStatus: def on_user_status( self=None, filters=None, group: int = 0 - ) -> callable: + ) -> Callable: """Decorator for handling user status updates. This does the same thing as :meth:`~pyrogram.Client.add_handler` using the :obj:`~pyrogram.handlers.UserStatusHandler`. diff --git a/pyrogram/methods/invite_links/approve_chat_join_request.py b/pyrogram/methods/invite_links/approve_chat_join_request.py index 0bb2f604..a18a1c14 100644 --- a/pyrogram/methods/invite_links/approve_chat_join_request.py +++ b/pyrogram/methods/invite_links/approve_chat_join_request.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class ApproveChatJoinRequest(Scaffold): +class ApproveChatJoinRequest: async def approve_chat_join_request( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: int, ) -> bool: diff --git a/pyrogram/methods/invite_links/create_chat_invite_link.py b/pyrogram/methods/invite_links/create_chat_invite_link.py index eec25787..15ca0341 100644 --- a/pyrogram/methods/invite_links/create_chat_invite_link.py +++ b/pyrogram/methods/invite_links/create_chat_invite_link.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union +import pyrogram from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class CreateChatInviteLink(Scaffold): +class CreateChatInviteLink: async def create_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], name: str = None, expire_date: datetime = None, diff --git a/pyrogram/methods/invite_links/decline_chat_join_request.py b/pyrogram/methods/invite_links/decline_chat_join_request.py index 3fc01e26..d7c3d2f2 100644 --- a/pyrogram/methods/invite_links/decline_chat_join_request.py +++ b/pyrogram/methods/invite_links/decline_chat_join_request.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeclineChatJoinRequest(Scaffold): +class DeclineChatJoinRequest: async def decline_chat_join_request( - self, + self: "pyrogram.Client", chat_id: Union[int, str], user_id: int, ) -> bool: diff --git a/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py b/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py index fda2aadb..c0517178 100644 --- a/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py +++ b/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteChatAdminInviteLinks(Scaffold): +class DeleteChatAdminInviteLinks: async def delete_chat_admin_invite_links( - self, + self: "pyrogram.Client", chat_id: Union[int, str], admin_id: Union[int, str], ) -> bool: diff --git a/pyrogram/methods/invite_links/delete_chat_invite_link.py b/pyrogram/methods/invite_links/delete_chat_invite_link.py index eeab4e35..19f4b49b 100644 --- a/pyrogram/methods/invite_links/delete_chat_invite_link.py +++ b/pyrogram/methods/invite_links/delete_chat_invite_link.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteChatInviteLink(Scaffold): +class DeleteChatInviteLink: async def delete_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str, ) -> bool: diff --git a/pyrogram/methods/invite_links/edit_chat_invite_link.py b/pyrogram/methods/invite_links/edit_chat_invite_link.py index 9a375360..4a6755d6 100644 --- a/pyrogram/methods/invite_links/edit_chat_invite_link.py +++ b/pyrogram/methods/invite_links/edit_chat_invite_link.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union +import pyrogram from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class EditChatInviteLink(Scaffold): +class EditChatInviteLink: async def edit_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str, name: str = None, diff --git a/pyrogram/methods/invite_links/export_chat_invite_link.py b/pyrogram/methods/invite_links/export_chat_invite_link.py index 061ccdf3..9734470f 100644 --- a/pyrogram/methods/invite_links/export_chat_invite_link.py +++ b/pyrogram/methods/invite_links/export_chat_invite_link.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class ExportChatInviteLink(Scaffold): +class ExportChatInviteLink: async def export_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], ) -> "types.ChatInviteLink": """Generate a new primary invite link for a chat; any previously generated primary link is revoked. diff --git a/pyrogram/methods/invite_links/get_chat_admin_invite_links.py b/pyrogram/methods/invite_links/get_chat_admin_invite_links.py index 8687795d..0c266082 100644 --- a/pyrogram/methods/invite_links/get_chat_admin_invite_links.py +++ b/pyrogram/methods/invite_links/get_chat_admin_invite_links.py @@ -18,14 +18,14 @@ from typing import Union, Optional, AsyncGenerator +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetChatAdminInviteLinks(Scaffold): +class GetChatAdminInviteLinks: async def get_chat_admin_invite_links( - self, + self: "pyrogram.Client", chat_id: Union[int, str], admin_id: Union[int, str], revoked: bool = False, diff --git a/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py b/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py index 789f551a..419c76a7 100644 --- a/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py +++ b/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetChatAdminInviteLinksCount(Scaffold): +class GetChatAdminInviteLinksCount: async def get_chat_admin_invite_links_count( - self, + self: "pyrogram.Client", chat_id: Union[int, str], admin_id: Union[int, str], revoked: bool = False, diff --git a/pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py b/pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py index 8b048a58..0f41925a 100644 --- a/pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py +++ b/pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw, types -from pyrogram.scaffold import Scaffold -class GetChatAdminsWithInviteLinks(Scaffold): +class GetChatAdminsWithInviteLinks: async def get_chat_admins_with_invite_links( - self, + self: "pyrogram.Client", chat_id: Union[int, str], ): """Get the list of the administrators that have exported invite links in a chat. diff --git a/pyrogram/methods/invite_links/get_chat_invite_link.py b/pyrogram/methods/invite_links/get_chat_invite_link.py index a5361bab..0fe0da8e 100644 --- a/pyrogram/methods/invite_links/get_chat_invite_link.py +++ b/pyrogram/methods/invite_links/get_chat_invite_link.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetChatInviteLink(Scaffold): +class GetChatInviteLink: async def get_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str, ) -> "types.ChatInviteLink": diff --git a/pyrogram/methods/invite_links/get_chat_invite_link_members.py b/pyrogram/methods/invite_links/get_chat_invite_link_members.py index 5d6e9208..8269a346 100644 --- a/pyrogram/methods/invite_links/get_chat_invite_link_members.py +++ b/pyrogram/methods/invite_links/get_chat_invite_link_members.py @@ -18,14 +18,14 @@ from typing import Union, Optional, AsyncGenerator +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetChatInviteLinkMembers(Scaffold): +class GetChatInviteLinkMembers: async def get_chat_invite_link_members( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str, limit: int = 0 diff --git a/pyrogram/methods/invite_links/get_chat_invite_link_members_count.py b/pyrogram/methods/invite_links/get_chat_invite_link_members_count.py index a4f5bbb7..c37258fe 100644 --- a/pyrogram/methods/invite_links/get_chat_invite_link_members_count.py +++ b/pyrogram/methods/invite_links/get_chat_invite_link_members_count.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetChatInviteLinkMembersCount(Scaffold): +class GetChatInviteLinkMembersCount: async def get_chat_invite_link_members_count( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str ) -> int: diff --git a/pyrogram/methods/invite_links/revoke_chat_invite_link.py b/pyrogram/methods/invite_links/revoke_chat_invite_link.py index cb3c39cd..64af8e5f 100644 --- a/pyrogram/methods/invite_links/revoke_chat_invite_link.py +++ b/pyrogram/methods/invite_links/revoke_chat_invite_link.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class RevokeChatInviteLink(Scaffold): +class RevokeChatInviteLink: async def revoke_chat_invite_link( - self, + self: "pyrogram.Client", chat_id: Union[int, str], invite_link: str, ) -> "types.ChatInviteLink": diff --git a/pyrogram/methods/messages/copy_media_group.py b/pyrogram/methods/messages/copy_media_group.py index 06aa6c20..367cf47c 100644 --- a/pyrogram/methods/messages/copy_media_group.py +++ b/pyrogram/methods/messages/copy_media_group.py @@ -19,13 +19,13 @@ from datetime import datetime from typing import Union, List +import pyrogram from pyrogram import types, utils, raw -from pyrogram.scaffold import Scaffold -class CopyMediaGroup(Scaffold): +class CopyMediaGroup: async def copy_media_group( - self, + self: "pyrogram.Client", chat_id: Union[int, str], from_chat_id: Union[int, str], message_id: int, diff --git a/pyrogram/methods/messages/copy_message.py b/pyrogram/methods/messages/copy_message.py index ee40945b..94c11d4b 100644 --- a/pyrogram/methods/messages/copy_message.py +++ b/pyrogram/methods/messages/copy_message.py @@ -20,15 +20,15 @@ import logging from datetime import datetime from typing import Union, List, Optional +import pyrogram from pyrogram import types, enums -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class CopyMessage(Scaffold): +class CopyMessage: async def copy_message( - self, + self: "pyrogram.Client", chat_id: Union[int, str], from_chat_id: Union[int, str], message_id: int, diff --git a/pyrogram/methods/messages/delete_messages.py b/pyrogram/methods/messages/delete_messages.py index b9807dc5..30438944 100644 --- a/pyrogram/methods/messages/delete_messages.py +++ b/pyrogram/methods/messages/delete_messages.py @@ -18,13 +18,13 @@ from typing import Union, Iterable +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class DeleteMessages(Scaffold): +class DeleteMessages: async def delete_messages( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_ids: Union[int, Iterable[int]], revoke: bool = True diff --git a/pyrogram/methods/messages/download_media.py b/pyrogram/methods/messages/download_media.py index c1472e95..d75ba281 100644 --- a/pyrogram/methods/messages/download_media.py +++ b/pyrogram/methods/messages/download_media.py @@ -20,22 +20,22 @@ import asyncio import os import time from datetime import datetime -from typing import Union, Optional +from typing import Union, Optional, Callable +import pyrogram from pyrogram import types from pyrogram.file_id import FileId, FileType, PHOTO_TYPES -from pyrogram.scaffold import Scaffold DEFAULT_DOWNLOAD_DIR = "downloads/" -class DownloadMedia(Scaffold): +class DownloadMedia: async def download_media( - self, + self: "pyrogram.Client", message: Union["types.Message", str], file_name: str = DEFAULT_DOWNLOAD_DIR, block: bool = True, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional[str]: """Download the media from a message. @@ -55,7 +55,7 @@ class DownloadMedia(Scaffold): Blocks the code execution until the file has been downloaded. Defaults to True. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/edit_inline_caption.py b/pyrogram/methods/messages/edit_inline_caption.py index ed99b62d..3068098e 100644 --- a/pyrogram/methods/messages/edit_inline_caption.py +++ b/pyrogram/methods/messages/edit_inline_caption.py @@ -18,13 +18,13 @@ from typing import Optional +import pyrogram from pyrogram import types, enums -from pyrogram.scaffold import Scaffold -class EditInlineCaption(Scaffold): +class EditInlineCaption: async def edit_inline_caption( - self, + self: "pyrogram.Client", inline_message_id: str, caption: str, parse_mode: Optional["enums.ParseMode"] = None, diff --git a/pyrogram/methods/messages/edit_inline_media.py b/pyrogram/methods/messages/edit_inline_media.py index 6b8c834a..0613bd73 100644 --- a/pyrogram/methods/messages/edit_inline_media.py +++ b/pyrogram/methods/messages/edit_inline_media.py @@ -19,17 +19,17 @@ import os import re +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold from .inline_session import get_session -class EditInlineMedia(Scaffold): +class EditInlineMedia: async def edit_inline_media( - self, + self: "pyrogram.Client", inline_message_id: str, media: "types.InputMedia", reply_markup: "types.InlineKeyboardMarkup" = None diff --git a/pyrogram/methods/messages/edit_inline_reply_markup.py b/pyrogram/methods/messages/edit_inline_reply_markup.py index 614da617..b3760c67 100644 --- a/pyrogram/methods/messages/edit_inline_reply_markup.py +++ b/pyrogram/methods/messages/edit_inline_reply_markup.py @@ -16,16 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold from .inline_session import get_session -class EditInlineReplyMarkup(Scaffold): +class EditInlineReplyMarkup: async def edit_inline_reply_markup( - self, + self: "pyrogram.Client", inline_message_id: str, reply_markup: "types.InlineKeyboardMarkup" = None ) -> bool: diff --git a/pyrogram/methods/messages/edit_inline_text.py b/pyrogram/methods/messages/edit_inline_text.py index af4b5555..ae4cab36 100644 --- a/pyrogram/methods/messages/edit_inline_text.py +++ b/pyrogram/methods/messages/edit_inline_text.py @@ -18,16 +18,16 @@ from typing import Optional +import pyrogram from pyrogram import raw, enums from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold from .inline_session import get_session -class EditInlineText(Scaffold): +class EditInlineText: async def edit_inline_text( - self, + self: "pyrogram.Client", inline_message_id: str, text: str, parse_mode: Optional["enums.ParseMode"] = None, diff --git a/pyrogram/methods/messages/edit_message_caption.py b/pyrogram/methods/messages/edit_message_caption.py index e368d4f5..fc92b02f 100644 --- a/pyrogram/methods/messages/edit_message_caption.py +++ b/pyrogram/methods/messages/edit_message_caption.py @@ -18,13 +18,13 @@ from typing import Union, List, Optional +import pyrogram from pyrogram import types, enums -from pyrogram.scaffold import Scaffold -class EditMessageCaption(Scaffold): +class EditMessageCaption: async def edit_message_caption( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, caption: str, diff --git a/pyrogram/methods/messages/edit_message_media.py b/pyrogram/methods/messages/edit_message_media.py index 4e443e71..1593bfb6 100644 --- a/pyrogram/methods/messages/edit_message_media.py +++ b/pyrogram/methods/messages/edit_message_media.py @@ -20,16 +20,16 @@ import os import re from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class EditMessageMedia(Scaffold): +class EditMessageMedia: async def edit_message_media( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, media: "types.InputMedia", diff --git a/pyrogram/methods/messages/edit_message_reply_markup.py b/pyrogram/methods/messages/edit_message_reply_markup.py index 2bbe1bc9..91b6fcd3 100644 --- a/pyrogram/methods/messages/edit_message_reply_markup.py +++ b/pyrogram/methods/messages/edit_message_reply_markup.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class EditMessageReplyMarkup(Scaffold): +class EditMessageReplyMarkup: async def edit_message_reply_markup( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, reply_markup: "types.InlineKeyboardMarkup" = None, diff --git a/pyrogram/methods/messages/edit_message_text.py b/pyrogram/methods/messages/edit_message_text.py index c58429a2..0f409cfe 100644 --- a/pyrogram/methods/messages/edit_message_text.py +++ b/pyrogram/methods/messages/edit_message_text.py @@ -18,15 +18,15 @@ from typing import Union, List, Optional +import pyrogram from pyrogram import raw, enums from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class EditMessageText(Scaffold): +class EditMessageText: async def edit_message_text( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, text: str, diff --git a/pyrogram/methods/messages/forward_messages.py b/pyrogram/methods/messages/forward_messages.py index acddd6e6..12ed56aa 100644 --- a/pyrogram/methods/messages/forward_messages.py +++ b/pyrogram/methods/messages/forward_messages.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union, Iterable, List +import pyrogram from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class ForwardMessages(Scaffold): +class ForwardMessages: async def forward_messages( - self, + self: "pyrogram.Client", chat_id: Union[int, str], from_chat_id: Union[int, str], message_ids: Union[int, Iterable[int]], diff --git a/pyrogram/methods/messages/get_discussion_message.py b/pyrogram/methods/messages/get_discussion_message.py index c7d47261..f1de4592 100644 --- a/pyrogram/methods/messages/get_discussion_message.py +++ b/pyrogram/methods/messages/get_discussion_message.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetDiscussionMessage(Scaffold): +class GetDiscussionMessage: async def get_discussion_message( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, ) -> "types.Message": diff --git a/pyrogram/methods/messages/get_history.py b/pyrogram/methods/messages/get_history.py index a461b720..a67d971e 100644 --- a/pyrogram/methods/messages/get_history.py +++ b/pyrogram/methods/messages/get_history.py @@ -20,17 +20,17 @@ import logging from datetime import datetime from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetHistory(Scaffold): +class GetHistory: async def get_history( - self, + self: "pyrogram.Client", chat_id: Union[int, str], limit: int = 100, offset: int = 0, diff --git a/pyrogram/methods/messages/get_history_count.py b/pyrogram/methods/messages/get_history_count.py index 9facdbeb..a76c10b5 100644 --- a/pyrogram/methods/messages/get_history_count.py +++ b/pyrogram/methods/messages/get_history_count.py @@ -19,15 +19,15 @@ import logging from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetHistoryCount(Scaffold): +class GetHistoryCount: async def get_history_count( - self, + self: "pyrogram.Client", chat_id: Union[int, str] ) -> int: """Get the total count of messages in a chat. diff --git a/pyrogram/methods/messages/get_media_group.py b/pyrogram/methods/messages/get_media_group.py index 3b33bfd4..b50d4785 100644 --- a/pyrogram/methods/messages/get_media_group.py +++ b/pyrogram/methods/messages/get_media_group.py @@ -19,15 +19,15 @@ import logging from typing import Union, List +import pyrogram from pyrogram import types -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class GetMediaGroup(Scaffold): +class GetMediaGroup: async def get_media_group( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int ) -> List["types.Message"]: diff --git a/pyrogram/methods/messages/get_messages.py b/pyrogram/methods/messages/get_messages.py index b9c0fbf7..e9e408b5 100644 --- a/pyrogram/methods/messages/get_messages.py +++ b/pyrogram/methods/messages/get_messages.py @@ -19,10 +19,10 @@ import logging from typing import Union, Iterable, List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) @@ -30,9 +30,9 @@ log = logging.getLogger(__name__) # TODO: Rewrite using a flag for replied messages and have message_ids non-optional -class GetMessages(Scaffold): +class GetMessages: async def get_messages( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_ids: Union[int, Iterable[int]] = None, reply_to_message_ids: Union[int, Iterable[int]] = None, diff --git a/pyrogram/methods/messages/iter_history.py b/pyrogram/methods/messages/iter_history.py index c5eda288..4914cd1d 100644 --- a/pyrogram/methods/messages/iter_history.py +++ b/pyrogram/methods/messages/iter_history.py @@ -19,13 +19,13 @@ from datetime import datetime from typing import Union, Optional, AsyncGenerator +import pyrogram from pyrogram import types -from pyrogram.scaffold import Scaffold -class IterHistory(Scaffold): +class IterHistory: async def iter_history( - self, + self: "pyrogram.Client", chat_id: Union[int, str], limit: int = 0, offset: int = 0, diff --git a/pyrogram/methods/messages/read_history.py b/pyrogram/methods/messages/read_history.py index 881b59ad..66b8bf50 100644 --- a/pyrogram/methods/messages/read_history.py +++ b/pyrogram/methods/messages/read_history.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class ReadHistory(Scaffold): +class ReadHistory: async def read_history( - self, + self: "pyrogram.Client", chat_id: Union[int, str], max_id: int = 0 ) -> bool: diff --git a/pyrogram/methods/messages/retract_vote.py b/pyrogram/methods/messages/retract_vote.py index 4baba811..f49807cd 100644 --- a/pyrogram/methods/messages/retract_vote.py +++ b/pyrogram/methods/messages/retract_vote.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class RetractVote(Scaffold): +class RetractVote: async def retract_vote( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int ) -> "types.Poll": diff --git a/pyrogram/methods/messages/search_global.py b/pyrogram/methods/messages/search_global.py index 6dff7bf0..3f0d4e9f 100644 --- a/pyrogram/methods/messages/search_global.py +++ b/pyrogram/methods/messages/search_global.py @@ -18,15 +18,15 @@ from typing import AsyncGenerator, Optional +import pyrogram from pyrogram import raw, enums from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class SearchGlobal(Scaffold): +class SearchGlobal: async def search_global( - self, + self: "pyrogram.Client", query: str = "", filter: "enums.MessagesFilter" = enums.MessagesFilter.ANY, limit: int = 0, diff --git a/pyrogram/methods/messages/search_global_count.py b/pyrogram/methods/messages/search_global_count.py index d8da0163..c848546e 100644 --- a/pyrogram/methods/messages/search_global_count.py +++ b/pyrogram/methods/messages/search_global_count.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw, enums -from pyrogram.scaffold import Scaffold -class SearchGlobalCount(Scaffold): +class SearchGlobalCount: async def search_global_count( - self, + self: "pyrogram.Client", query: str = "", filter: "enums.MessagesFilter" = enums.MessagesFilter.ANY, ) -> int: diff --git a/pyrogram/methods/messages/search_messages.py b/pyrogram/methods/messages/search_messages.py index 07728193..b448a1c2 100644 --- a/pyrogram/methods/messages/search_messages.py +++ b/pyrogram/methods/messages/search_messages.py @@ -18,13 +18,13 @@ from typing import Union, List, AsyncGenerator, Optional +import pyrogram from pyrogram import raw, types, utils, enums -from pyrogram.scaffold import Scaffold # noinspection PyShadowingBuiltins async def get_chunk( - client: Scaffold, + client, chat_id: Union[int, str], query: str = "", filter: "enums.MessagesFilter" = enums.MessagesFilter.ANY, @@ -57,10 +57,10 @@ async def get_chunk( return await utils.parse_messages(client, r) -class SearchMessages(Scaffold): +class SearchMessages: # noinspection PyShadowingBuiltins async def search_messages( - self, + self: "pyrogram.Client", chat_id: Union[int, str], query: str = "", offset: int = 0, diff --git a/pyrogram/methods/messages/search_messages_count.py b/pyrogram/methods/messages/search_messages_count.py index 87e0a745..85c25d06 100644 --- a/pyrogram/methods/messages/search_messages_count.py +++ b/pyrogram/methods/messages/search_messages_count.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw, enums -from pyrogram.scaffold import Scaffold -class SearchMessagesCount(Scaffold): +class SearchMessagesCount: async def search_messages_count( - self, + self: "pyrogram.Client", chat_id: Union[int, str], query: str = "", filter: "enums.MessagesFilter" = enums.MessagesFilter.ANY, diff --git a/pyrogram/methods/messages/send_animation.py b/pyrogram/methods/messages/send_animation.py index 4e6a9f40..2e84fe82 100644 --- a/pyrogram/methods/messages/send_animation.py +++ b/pyrogram/methods/messages/send_animation.py @@ -19,20 +19,20 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, List, Optional +from typing import Union, BinaryIO, List, Optional, Callable +import pyrogram from pyrogram import StopTransmission, enums from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendAnimation(Scaffold): +class SendAnimation: async def send_animation( - self, + self: "pyrogram.Client", chat_id: Union[int, str], animation: Union[str, BinaryIO], caption: str = "", @@ -54,7 +54,7 @@ class SendAnimation(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send animation files (animation or H.264/MPEG-4 AVC video without sound). @@ -122,7 +122,7 @@ class SendAnimation(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_audio.py b/pyrogram/methods/messages/send_audio.py index 6cef5b47..47e914a8 100644 --- a/pyrogram/methods/messages/send_audio.py +++ b/pyrogram/methods/messages/send_audio.py @@ -18,21 +18,21 @@ import os import re -from typing import Union, BinaryIO, List, Optional +from datetime import datetime +from typing import Union, BinaryIO, List, Optional, Callable +import pyrogram from pyrogram import StopTransmission, enums from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -from datetime import datetime -class SendAudio(Scaffold): +class SendAudio: async def send_audio( - self, + self: "pyrogram.Client", chat_id: Union[int, str], audio: Union[str, BinaryIO], caption: str = "", @@ -53,7 +53,7 @@ class SendAudio(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send audio files. @@ -119,7 +119,7 @@ class SendAudio(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_cached_media.py b/pyrogram/methods/messages/send_cached_media.py index 60832553..4763e94d 100644 --- a/pyrogram/methods/messages/send_cached_media.py +++ b/pyrogram/methods/messages/send_cached_media.py @@ -19,15 +19,15 @@ from datetime import datetime from typing import Union, List, Optional +import pyrogram from pyrogram import raw, enums from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class SendCachedMedia(Scaffold): +class SendCachedMedia: async def send_cached_media( - self, + self: "pyrogram.Client", chat_id: Union[int, str], file_id: str, caption: str = "", diff --git a/pyrogram/methods/messages/send_chat_action.py b/pyrogram/methods/messages/send_chat_action.py index bbff1d44..9145653e 100644 --- a/pyrogram/methods/messages/send_chat_action.py +++ b/pyrogram/methods/messages/send_chat_action.py @@ -20,12 +20,11 @@ from typing import Union import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SendChatAction(Scaffold): +class SendChatAction: async def send_chat_action( - self, + self: "pyrogram.Client", chat_id: Union[int, str], action: "pyrogram.enums.ChatAction" ) -> bool: diff --git a/pyrogram/methods/messages/send_contact.py b/pyrogram/methods/messages/send_contact.py index f9c84f4c..6285b502 100644 --- a/pyrogram/methods/messages/send_contact.py +++ b/pyrogram/methods/messages/send_contact.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union -from pyrogram import raw +import pyrogram +from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class SendContact(Scaffold): +class SendContact: async def send_contact( - self, + self: "pyrogram.Client", chat_id: Union[int, str], phone_number: str, first_name: str, diff --git a/pyrogram/methods/messages/send_dice.py b/pyrogram/methods/messages/send_dice.py index 9c7f5d1a..c3a6bb42 100644 --- a/pyrogram/methods/messages/send_dice.py +++ b/pyrogram/methods/messages/send_dice.py @@ -16,17 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from datetime import datetime from typing import Union, Optional -from pyrogram import raw +import pyrogram +from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -from datetime import datetime -class SendDice(Scaffold): +class SendDice: async def send_dice( - self, + self: "pyrogram.Client", chat_id: Union[int, str], emoji: str = "🎲", disable_notification: bool = None, diff --git a/pyrogram/methods/messages/send_document.py b/pyrogram/methods/messages/send_document.py index 5844d2d2..79f6e160 100644 --- a/pyrogram/methods/messages/send_document.py +++ b/pyrogram/methods/messages/send_document.py @@ -19,20 +19,20 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, List, Optional +from typing import Union, BinaryIO, List, Optional, Callable +import pyrogram from pyrogram import StopTransmission, enums from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendDocument(Scaffold): +class SendDocument: async def send_document( - self, + self: "pyrogram.Client", chat_id: Union[int, str], document: Union[str, BinaryIO], thumb: Union[str, BinaryIO] = None, @@ -51,7 +51,7 @@ class SendDocument(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send generic files. @@ -111,7 +111,7 @@ class SendDocument(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_location.py b/pyrogram/methods/messages/send_location.py index 6c33c1b4..3e9bf37c 100644 --- a/pyrogram/methods/messages/send_location.py +++ b/pyrogram/methods/messages/send_location.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union -from pyrogram import raw +import pyrogram +from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class SendLocation(Scaffold): +class SendLocation: async def send_location( - self, + self: "pyrogram.Client", chat_id: Union[int, str], latitude: float, longitude: float, diff --git a/pyrogram/methods/messages/send_media_group.py b/pyrogram/methods/messages/send_media_group.py index 04c91c3b..ccb61361 100644 --- a/pyrogram/methods/messages/send_media_group.py +++ b/pyrogram/methods/messages/send_media_group.py @@ -22,19 +22,19 @@ import re from datetime import datetime from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class SendMediaGroup(Scaffold): +class SendMediaGroup: # TODO: Add progress parameter async def send_media_group( - self, + self: "pyrogram.Client", chat_id: Union[int, str], media: List[Union[ "types.InputMediaPhoto", diff --git a/pyrogram/methods/messages/send_message.py b/pyrogram/methods/messages/send_message.py index 34063625..70544178 100644 --- a/pyrogram/methods/messages/send_message.py +++ b/pyrogram/methods/messages/send_message.py @@ -16,18 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from datetime import datetime from typing import Union, List, Optional +import pyrogram from pyrogram import raw, utils, enums from pyrogram import types -from pyrogram.scaffold import Scaffold - -from datetime import datetime -class SendMessage(Scaffold): +class SendMessage: async def send_message( - self, + self: "pyrogram.Client", chat_id: Union[int, str], text: str, parse_mode: Optional["enums.ParseMode"] = None, diff --git a/pyrogram/methods/messages/send_photo.py b/pyrogram/methods/messages/send_photo.py index bf7b482c..5cacfb39 100644 --- a/pyrogram/methods/messages/send_photo.py +++ b/pyrogram/methods/messages/send_photo.py @@ -19,7 +19,7 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, List, Optional +from typing import Union, BinaryIO, List, Optional, Callable import pyrogram from pyrogram import raw, enums @@ -27,12 +27,11 @@ from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendPhoto(Scaffold): +class SendPhoto: async def send_photo( - self, + self: "pyrogram.Client", chat_id: Union[int, str], photo: Union[str, BinaryIO], caption: str = "", @@ -49,7 +48,7 @@ class SendPhoto(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send photos. @@ -99,7 +98,7 @@ class SendPhoto(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_poll.py b/pyrogram/methods/messages/send_poll.py index a02c5266..10545256 100644 --- a/pyrogram/methods/messages/send_poll.py +++ b/pyrogram/methods/messages/send_poll.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union, List -from pyrogram import raw +import pyrogram +from pyrogram import raw, utils from pyrogram import types, enums -from pyrogram.scaffold import Scaffold -class SendPoll(Scaffold): +class SendPoll: async def send_poll( - self, + self: "pyrogram.Client", chat_id: Union[int, str], question: str, options: List[str], diff --git a/pyrogram/methods/messages/send_reaction.py b/pyrogram/methods/messages/send_reaction.py index 9e6c353c..b096934f 100644 --- a/pyrogram/methods/messages/send_reaction.py +++ b/pyrogram/methods/messages/send_reaction.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SendReaction(Scaffold): +class SendReaction: async def send_reaction( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, emoji: str = "" diff --git a/pyrogram/methods/messages/send_sticker.py b/pyrogram/methods/messages/send_sticker.py index 76571d99..460cfc63 100644 --- a/pyrogram/methods/messages/send_sticker.py +++ b/pyrogram/methods/messages/send_sticker.py @@ -19,20 +19,20 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, Optional +from typing import Union, BinaryIO, Optional, Callable +import pyrogram from pyrogram import StopTransmission from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendSticker(Scaffold): +class SendSticker: async def send_sticker( - self, + self: "pyrogram.Client", chat_id: Union[int, str], sticker: Union[str, BinaryIO], disable_notification: bool = None, @@ -45,7 +45,7 @@ class SendSticker(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send static .webp or animated .tgs stickers. @@ -80,7 +80,7 @@ class SendSticker(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_venue.py b/pyrogram/methods/messages/send_venue.py index 5293cf01..4dd81f7a 100644 --- a/pyrogram/methods/messages/send_venue.py +++ b/pyrogram/methods/messages/send_venue.py @@ -19,14 +19,14 @@ from datetime import datetime from typing import Union -from pyrogram import raw +import pyrogram +from pyrogram import raw, utils from pyrogram import types -from pyrogram.scaffold import Scaffold -class SendVenue(Scaffold): +class SendVenue: async def send_venue( - self, + self: "pyrogram.Client", chat_id: Union[int, str], latitude: float, longitude: float, diff --git a/pyrogram/methods/messages/send_video.py b/pyrogram/methods/messages/send_video.py index 96f2a9c3..9fd85213 100644 --- a/pyrogram/methods/messages/send_video.py +++ b/pyrogram/methods/messages/send_video.py @@ -19,20 +19,20 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, List, Optional +from typing import Union, BinaryIO, List, Optional, Callable +import pyrogram from pyrogram import StopTransmission, enums from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendVideo(Scaffold): +class SendVideo: async def send_video( - self, + self: "pyrogram.Client", chat_id: Union[int, str], video: Union[str, BinaryIO], caption: str = "", @@ -55,7 +55,7 @@ class SendVideo(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send video files. @@ -128,7 +128,7 @@ class SendVideo(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_video_note.py b/pyrogram/methods/messages/send_video_note.py index c2f0a159..b4fd8891 100644 --- a/pyrogram/methods/messages/send_video_note.py +++ b/pyrogram/methods/messages/send_video_note.py @@ -18,20 +18,20 @@ import os from datetime import datetime -from typing import Union, BinaryIO, Optional +from typing import Union, BinaryIO, Optional, Callable +import pyrogram from pyrogram import StopTransmission from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendVideoNote(Scaffold): +class SendVideoNote: async def send_video_note( - self, + self: "pyrogram.Client", chat_id: Union[int, str], video_note: Union[str, BinaryIO], duration: int = 0, @@ -47,7 +47,7 @@ class SendVideoNote(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send video messages. @@ -94,7 +94,7 @@ class SendVideoNote(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/send_voice.py b/pyrogram/methods/messages/send_voice.py index 79fefcab..5179866e 100644 --- a/pyrogram/methods/messages/send_voice.py +++ b/pyrogram/methods/messages/send_voice.py @@ -19,20 +19,20 @@ import os import re from datetime import datetime -from typing import Union, BinaryIO, List, Optional +from typing import Union, BinaryIO, List, Optional, Callable +import pyrogram from pyrogram import StopTransmission, enums from pyrogram import raw from pyrogram import types from pyrogram import utils from pyrogram.errors import FilePartMissing from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class SendVoice(Scaffold): +class SendVoice: async def send_voice( - self, + self: "pyrogram.Client", chat_id: Union[int, str], voice: Union[str, BinaryIO], caption: str = "", @@ -49,7 +49,7 @@ class SendVoice(Scaffold): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> Optional["types.Message"]: """Send audio files. @@ -97,7 +97,7 @@ class SendVoice(Scaffold): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/methods/messages/stop_poll.py b/pyrogram/methods/messages/stop_poll.py index 113f1618..3fdba750 100644 --- a/pyrogram/methods/messages/stop_poll.py +++ b/pyrogram/methods/messages/stop_poll.py @@ -18,14 +18,14 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class StopPoll(Scaffold): +class StopPoll: async def stop_poll( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: int, reply_markup: "types.InlineKeyboardMarkup" = None diff --git a/pyrogram/methods/messages/vote_poll.py b/pyrogram/methods/messages/vote_poll.py index d6753a27..70a50365 100644 --- a/pyrogram/methods/messages/vote_poll.py +++ b/pyrogram/methods/messages/vote_poll.py @@ -18,14 +18,14 @@ from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class VotePoll(Scaffold): +class VotePoll: async def vote_poll( - self, + self: "pyrogram.Client", chat_id: Union[int, str], message_id: id, options: Union[int, List[int]] diff --git a/pyrogram/methods/password/change_cloud_password.py b/pyrogram/methods/password/change_cloud_password.py index f950c65a..a0e82963 100644 --- a/pyrogram/methods/password/change_cloud_password.py +++ b/pyrogram/methods/password/change_cloud_password.py @@ -18,14 +18,14 @@ import os +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold from pyrogram.utils import compute_password_hash, compute_password_check, btoi, itob -class ChangeCloudPassword(Scaffold): +class ChangeCloudPassword: async def change_cloud_password( - self, + self: "pyrogram.Client", current_password: str, new_password: str, new_hint: str = "" diff --git a/pyrogram/methods/password/enable_cloud_password.py b/pyrogram/methods/password/enable_cloud_password.py index 7073af59..840acfdd 100644 --- a/pyrogram/methods/password/enable_cloud_password.py +++ b/pyrogram/methods/password/enable_cloud_password.py @@ -18,14 +18,14 @@ import os +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold from pyrogram.utils import compute_password_hash, btoi, itob -class EnableCloudPassword(Scaffold): +class EnableCloudPassword: async def enable_cloud_password( - self, + self: "pyrogram.Client", password: str, hint: str = "", email: str = None diff --git a/pyrogram/methods/password/remove_cloud_password.py b/pyrogram/methods/password/remove_cloud_password.py index 18ae31e5..1a1c9a0b 100644 --- a/pyrogram/methods/password/remove_cloud_password.py +++ b/pyrogram/methods/password/remove_cloud_password.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold from pyrogram.utils import compute_password_check -class RemoveCloudPassword(Scaffold): +class RemoveCloudPassword: async def remove_cloud_password( - self, + self: "pyrogram.Client", password: str ) -> bool: """Turn off the Two-Step Verification security feature (Cloud Password) on your account. diff --git a/pyrogram/methods/users/block_user.py b/pyrogram/methods/users/block_user.py index 0efda2b9..b1d96537 100644 --- a/pyrogram/methods/users/block_user.py +++ b/pyrogram/methods/users/block_user.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class BlockUser(Scaffold): +class BlockUser: async def block_user( - self, + self: "pyrogram.Client", user_id: Union[int, str] ) -> bool: """Block a user. diff --git a/pyrogram/methods/users/delete_profile_photos.py b/pyrogram/methods/users/delete_profile_photos.py index 64f3ce77..a1df82eb 100644 --- a/pyrogram/methods/users/delete_profile_photos.py +++ b/pyrogram/methods/users/delete_profile_photos.py @@ -18,15 +18,15 @@ from typing import List, Union +import pyrogram from pyrogram import raw from pyrogram import utils from pyrogram.file_id import FileType -from pyrogram.scaffold import Scaffold -class DeleteProfilePhotos(Scaffold): +class DeleteProfilePhotos: async def delete_profile_photos( - self, + self: "pyrogram.Client", photo_ids: Union[str, List[str]] ) -> bool: """Delete your own profile photos. diff --git a/pyrogram/methods/users/get_common_chats.py b/pyrogram/methods/users/get_common_chats.py index 7969647a..e083e3c9 100644 --- a/pyrogram/methods/users/get_common_chats.py +++ b/pyrogram/methods/users/get_common_chats.py @@ -18,13 +18,16 @@ from typing import Union +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetCommonChats(Scaffold): - async def get_common_chats(self, user_id: Union[int, str]) -> list: +class GetCommonChats: + async def get_common_chats( + self: "pyrogram.Client", + user_id: Union[int, str] + ) -> list: """Get the common chats you have with a user. Parameters: diff --git a/pyrogram/methods/users/get_me.py b/pyrogram/methods/users/get_me.py index b7ebf2d7..17ffe3b8 100644 --- a/pyrogram/methods/users/get_me.py +++ b/pyrogram/methods/users/get_me.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetMe(Scaffold): - async def get_me(self) -> "types.User": +class GetMe: + async def get_me( + self: "pyrogram.Client" + ) -> "types.User": """Get your own user identity. Returns: diff --git a/pyrogram/methods/users/get_profile_photos.py b/pyrogram/methods/users/get_profile_photos.py index fb8c75c4..62341550 100644 --- a/pyrogram/methods/users/get_profile_photos.py +++ b/pyrogram/methods/users/get_profile_photos.py @@ -18,15 +18,15 @@ from typing import Union, List +import pyrogram from pyrogram import raw from pyrogram import types from pyrogram import utils -from pyrogram.scaffold import Scaffold -class GetProfilePhotos(Scaffold): +class GetProfilePhotos: async def get_profile_photos( - self, + self: "pyrogram.Client", chat_id: Union[int, str], offset: int = 0, limit: int = 100 diff --git a/pyrogram/methods/users/get_profile_photos_count.py b/pyrogram/methods/users/get_profile_photos_count.py index dcb7ee4b..c0065dd7 100644 --- a/pyrogram/methods/users/get_profile_photos_count.py +++ b/pyrogram/methods/users/get_profile_photos_count.py @@ -18,12 +18,15 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class GetProfilePhotosCount(Scaffold): - async def get_profile_photos_count(self, chat_id: Union[int, str]) -> int: +class GetProfilePhotosCount: + async def get_profile_photos_count( + self: "pyrogram.Client", + chat_id: Union[int, str] + ) -> int: """Get the total count of profile pictures for a user. Parameters: diff --git a/pyrogram/methods/users/get_users.py b/pyrogram/methods/users/get_users.py index 43ae0084..0e9c9614 100644 --- a/pyrogram/methods/users/get_users.py +++ b/pyrogram/methods/users/get_users.py @@ -19,14 +19,14 @@ import asyncio from typing import Iterable, Union, List +import pyrogram from pyrogram import raw from pyrogram import types -from pyrogram.scaffold import Scaffold -class GetUsers(Scaffold): +class GetUsers: async def get_users( - self, + self: "pyrogram.Client", user_ids: Union[Iterable[Union[int, str]], int, str] ) -> Union["types.User", List["types.User"]]: """Get information about a user. diff --git a/pyrogram/methods/users/iter_profile_photos.py b/pyrogram/methods/users/iter_profile_photos.py index eda77a88..88c02c3a 100644 --- a/pyrogram/methods/users/iter_profile_photos.py +++ b/pyrogram/methods/users/iter_profile_photos.py @@ -18,13 +18,13 @@ from typing import Union, AsyncGenerator, Optional +import pyrogram from pyrogram import types -from pyrogram.scaffold import Scaffold -class IterProfilePhotos(Scaffold): +class IterProfilePhotos: async def iter_profile_photos( - self, + self: "pyrogram.Client", chat_id: Union[int, str], offset: int = 0, limit: int = 0, diff --git a/pyrogram/methods/users/set_profile_photo.py b/pyrogram/methods/users/set_profile_photo.py index 9b1c5c04..a68db7cd 100644 --- a/pyrogram/methods/users/set_profile_photo.py +++ b/pyrogram/methods/users/set_profile_photo.py @@ -18,13 +18,13 @@ from typing import Union, BinaryIO +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetProfilePhoto(Scaffold): +class SetProfilePhoto: async def set_profile_photo( - self, + self: "pyrogram.Client", *, photo: Union[str, BinaryIO] = None, video: Union[str, BinaryIO] = None diff --git a/pyrogram/methods/users/set_username.py b/pyrogram/methods/users/set_username.py index 881f2ae6..eeffc25f 100644 --- a/pyrogram/methods/users/set_username.py +++ b/pyrogram/methods/users/set_username.py @@ -18,13 +18,13 @@ from typing import Optional +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class SetUsername(Scaffold): +class SetUsername: async def set_username( - self, + self: "pyrogram.Client", username: Optional[str] ) -> bool: """Set your own username. diff --git a/pyrogram/methods/users/unblock_user.py b/pyrogram/methods/users/unblock_user.py index 4218bb1e..433105ac 100644 --- a/pyrogram/methods/users/unblock_user.py +++ b/pyrogram/methods/users/unblock_user.py @@ -18,13 +18,13 @@ from typing import Union +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UnblockUser(Scaffold): +class UnblockUser: async def unblock_user( - self, + self: "pyrogram.Client", user_id: Union[int, str] ) -> bool: """Unblock a user. diff --git a/pyrogram/methods/users/update_profile.py b/pyrogram/methods/users/update_profile.py index 4dc81204..c77c8b4b 100644 --- a/pyrogram/methods/users/update_profile.py +++ b/pyrogram/methods/users/update_profile.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold -class UpdateProfile(Scaffold): +class UpdateProfile: async def update_profile( - self, + self: "pyrogram.Client", first_name: str = None, last_name: str = None, bio: str = None diff --git a/pyrogram/methods/utilities/add_handler.py b/pyrogram/methods/utilities/add_handler.py index d0ef15ff..12b41bfe 100644 --- a/pyrogram/methods/utilities/add_handler.py +++ b/pyrogram/methods/utilities/add_handler.py @@ -16,13 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram.handlers import DisconnectHandler from pyrogram.handlers.handler import Handler -from pyrogram.scaffold import Scaffold -class AddHandler(Scaffold): - def add_handler(self, handler: "Handler", group: int = 0): +class AddHandler: + def add_handler( + self: "pyrogram.Client", + handler: "Handler", + group: int = 0 + ): """Register an update handler. You can register multiple handlers, but at most one handler within a group will be used for a single update. diff --git a/pyrogram/methods/utilities/export_session_string.py b/pyrogram/methods/utilities/export_session_string.py index cd1741bd..8177c456 100644 --- a/pyrogram/methods/utilities/export_session_string.py +++ b/pyrogram/methods/utilities/export_session_string.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from pyrogram.scaffold import Scaffold +import pyrogram -class ExportSessionString(Scaffold): - async def export_session_string(self): +class ExportSessionString: + async def export_session_string( + self: "pyrogram.Client" + ): """Export the current authorized session as a serialized string. Session strings are useful for storing in-memory authorized sessions in a portable, serialized string. diff --git a/pyrogram/methods/utilities/remove_handler.py b/pyrogram/methods/utilities/remove_handler.py index 12be00b4..fca4a879 100644 --- a/pyrogram/methods/utilities/remove_handler.py +++ b/pyrogram/methods/utilities/remove_handler.py @@ -16,13 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import pyrogram from pyrogram.handlers import DisconnectHandler from pyrogram.handlers.handler import Handler -from pyrogram.scaffold import Scaffold -class RemoveHandler(Scaffold): - def remove_handler(self, handler: "Handler", group: int = 0): +class RemoveHandler: + def remove_handler( + self: "pyrogram.Client", + handler: "Handler", + group: int = 0 + ): """Remove a previously-registered update handler. Make sure to provide the right group where the handler was added in. You can use the return value of the diff --git a/pyrogram/methods/utilities/restart.py b/pyrogram/methods/utilities/restart.py index e750137f..66c24608 100644 --- a/pyrogram/methods/utilities/restart.py +++ b/pyrogram/methods/utilities/restart.py @@ -16,11 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from pyrogram.scaffold import Scaffold +import pyrogram -class Restart(Scaffold): - async def restart(self, block: bool = True): +class Restart: + async def restart( + self: "pyrogram.Client", + block: bool = True + ): """Restart the Client. This method will first call :meth:`~pyrogram.Client.stop` and then :meth:`~pyrogram.Client.start` in a row in diff --git a/pyrogram/methods/utilities/run.py b/pyrogram/methods/utilities/run.py index 40decbbd..6247b936 100644 --- a/pyrogram/methods/utilities/run.py +++ b/pyrogram/methods/utilities/run.py @@ -19,12 +19,15 @@ import asyncio import inspect +import pyrogram from pyrogram.methods.utilities.idle import idle -from pyrogram.scaffold import Scaffold -class Run(Scaffold): - def run(self, coroutine=None): +class Run: + def run( + self: "pyrogram.Client", + coroutine=None + ): """Start the client, idle the main script and finally stop the client. This is a convenience method that calls :meth:`~pyrogram.Client.start`, :meth:`~pyrogram.idle` and diff --git a/pyrogram/methods/utilities/start.py b/pyrogram/methods/utilities/start.py index a8144d3f..61ce87a2 100644 --- a/pyrogram/methods/utilities/start.py +++ b/pyrogram/methods/utilities/start.py @@ -18,14 +18,16 @@ import logging +import pyrogram from pyrogram import raw -from pyrogram.scaffold import Scaffold log = logging.getLogger(__name__) -class Start(Scaffold): - async def start(self): +class Start: + async def start( + self: "pyrogram.Client" + ): """Start the client. This method connects the client to Telegram and, in case of new sessions, automatically manages the full diff --git a/pyrogram/methods/utilities/stop.py b/pyrogram/methods/utilities/stop.py index 3536caa1..92b99fc5 100644 --- a/pyrogram/methods/utilities/stop.py +++ b/pyrogram/methods/utilities/stop.py @@ -16,11 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from pyrogram.scaffold import Scaffold +import pyrogram -class Stop(Scaffold): - async def stop(self, block: bool = True): +class Stop: + async def stop( + self: "pyrogram.Client", + block: bool = True + ): """Stop the Client. This method disconnects the client from Telegram and stops the underlying tasks. diff --git a/pyrogram/methods/utilities/stop_transmission.py b/pyrogram/methods/utilities/stop_transmission.py index 70bd58d4..0639eab8 100644 --- a/pyrogram/methods/utilities/stop_transmission.py +++ b/pyrogram/methods/utilities/stop_transmission.py @@ -17,10 +17,9 @@ # along with Pyrogram. If not, see . import pyrogram -from pyrogram.scaffold import Scaffold -class StopTransmission(Scaffold): +class StopTransmission: def stop_transmission(self): """Stop downloading or uploading a file. diff --git a/pyrogram/scaffold.py b/pyrogram/scaffold.py deleted file mode 100644 index d87d1522..00000000 --- a/pyrogram/scaffold.py +++ /dev/null @@ -1,201 +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 . - -import asyncio -import os -import platform -import re -import sys -from io import StringIO -from mimetypes import MimeTypes -from pathlib import Path - -import pyrogram -from pyrogram import __version__, enums -from pyrogram.parser import Parser -from pyrogram.session.internals import MsgId -from .mime_types import mime_types - - -class Scaffold: - APP_VERSION = f"Pyrogram {__version__}" - DEVICE_MODEL = f"{platform.python_implementation()} {platform.python_version()}" - SYSTEM_VERSION = f"{platform.system()} {platform.release()}" - - LANG_CODE = "en" - - PARENT_DIR = Path(sys.argv[0]).parent - - INVITE_LINK_RE = re.compile(r"^(?:https?://)?(?:www\.)?(?:t(?:elegram)?\.(?:org|me|dog)/(?:joinchat/|\+))([\w-]+)$") - WORKERS = min(32, os.cpu_count() + 4) - WORKDIR = PARENT_DIR - CONFIG_FILE = PARENT_DIR / "config.ini" - - mimetypes = MimeTypes() - mimetypes.readfp(StringIO(mime_types)) - - def __init__(self): - try: - asyncio.get_event_loop() - except RuntimeError: - # This happens when creating Client instances inside different threads that don't have an event loop. - # Set the main event loop in this thread. - asyncio.set_event_loop(pyrogram.main_event_loop) - - self.session_name = None - self.api_id = None - self.api_hash = None - self.app_version = None - self.device_model = None - self.system_version = None - self.lang_code = None - self.ipv6 = None - self.proxy = None - self.test_mode = None - self.bot_token = None - self.phone_number = None - self.phone_code = None - self.password = None - self.force_sms = None - self.workers = None - self.workdir = None - self.config_file = None - self.plugins = None - self.parse_mode = None - self.no_updates = None - self.takeout = None - self.sleep_threshold = None - - self.executor = None - - self.storage = None - - self.rnd_id = MsgId - - self.parser = Parser(self) - self.parse_mode = enums.ParseMode.DEFAULT - - self.session = None - - self.media_sessions = {} - self.media_sessions_lock = asyncio.Lock() - - self.is_connected = None - self.is_initialized = None - - self.no_updates = None - self.takeout_id = None - - self.dispatcher = None - - self.disconnect_handler = None - - self.loop = None - - async def send(self, *args, **kwargs): - pass - - async def resolve_peer(self, *args, **kwargs): - pass - - def fetch_peers(self, *args, **kwargs): - pass - - def add_handler(self, *args, **kwargs): - pass - - async def save_file(self, *args, **kwargs): - pass - - async def get_messages(self, *args, **kwargs): - pass - - async def get_history(self, *args, **kwargs): - pass - - async def get_dialogs(self, *args, **kwargs): - pass - - async def get_chat_members(self, *args, **kwargs): - pass - - async def get_chat_members_count(self, *args, **kwargs): - pass - - async def answer_inline_query(self, *args, **kwargs): - pass - - async def get_profile_photos(self, *args, **kwargs): - pass - - async def edit_message_text(self, *args, **kwargs): - pass - - async def edit_inline_text(self, *args, **kwargs): - pass - - async def edit_message_media(self, *args, **kwargs): - pass - - async def edit_inline_media(self, *args, **kwargs): - pass - - async def edit_message_reply_markup(self, *args, **kwargs): - pass - - async def edit_inline_reply_markup(self, *args, **kwargs): - pass - - def guess_mime_type(self, *args, **kwargs): - pass - - def guess_extension(self, *args, **kwargs): - pass - - def load_config(self, *args, **kwargs): - pass - - def load_session(self, *args, **kwargs): - pass - - def load_plugins(self, *args, **kwargs): - pass - - async def handle_download(self, *args, **kwargs): - pass - - async def start(self, *args, **kwargs): - pass - - async def stop(self, *args, **kwargs): - pass - - async def connect(self, *args, **kwargs): - pass - - async def authorize(self, *args, **kwargs): - pass - - async def disconnect(self, *args, **kwargs): - pass - - async def initialize(self, *args, **kwargs): - pass - - async def terminate(self, *args, **kwargs): - pass diff --git a/pyrogram/types/inline_mode/inline_query_result_audio.py b/pyrogram/types/inline_mode/inline_query_result_audio.py index 06ab5f94..a3902100 100644 --- a/pyrogram/types/inline_mode/inline_query_result_audio.py +++ b/pyrogram/types/inline_mode/inline_query_result_audio.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from typing import Union, List, Optional +from typing import List, Optional import pyrogram from pyrogram import raw, types, utils, enums diff --git a/pyrogram/types/messages_and_media/__init__.py b/pyrogram/types/messages_and_media/__init__.py index 944d7e6e..cbed4f0f 100644 --- a/pyrogram/types/messages_and_media/__init__.py +++ b/pyrogram/types/messages_and_media/__init__.py @@ -28,6 +28,7 @@ from .message_entity import MessageEntity from .photo import Photo from .poll import Poll from .poll_option import PollOption +from .reaction import Reaction from .sticker import Sticker from .stripped_thumbnail import StrippedThumbnail from .thumbnail import Thumbnail @@ -36,7 +37,6 @@ from .video import Video from .video_note import VideoNote from .voice import Voice from .webpage import WebPage -from .reaction import Reaction __all__ = [ "Animation", "Audio", "Contact", "Document", "Game", "Location", "Message", "MessageEntity", "Photo", "Thumbnail", diff --git a/pyrogram/types/messages_and_media/message.py b/pyrogram/types/messages_and_media/message.py index 56ffd691..e9f3cab6 100644 --- a/pyrogram/types/messages_and_media/message.py +++ b/pyrogram/types/messages_and_media/message.py @@ -19,7 +19,7 @@ import logging from datetime import datetime from functools import partial -from typing import List, Match, Union, BinaryIO, Optional +from typing import List, Match, Union, BinaryIO, Optional, Callable import pyrogram from pyrogram import raw, enums @@ -867,7 +867,7 @@ class Message(Object, Update): reply_to_message_id: int = None, schedule_date: datetime = None, protect_content: bool = None, - reply_markup = None + reply_markup=None ) -> "Message": """Bound method *reply_text* of :obj:`~pyrogram.types.Message`. @@ -970,7 +970,7 @@ class Message(Object, Update): "types.ForceReply" ] = None, reply_to_message_id: int = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_animation* :obj:`~pyrogram.types.Message`. @@ -1037,7 +1037,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -1109,7 +1109,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_audio* of :obj:`~pyrogram.types.Message`. @@ -1176,7 +1176,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -1457,7 +1457,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_document* of :obj:`~pyrogram.types.Message`. @@ -1527,7 +1527,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -1865,7 +1865,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_photo* of :obj:`~pyrogram.types.Message`. @@ -1922,7 +1922,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -2088,7 +2088,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_sticker* of :obj:`~pyrogram.types.Message`. @@ -2130,7 +2130,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -2295,7 +2295,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_video* of :obj:`~pyrogram.types.Message`. @@ -2370,7 +2370,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -2440,7 +2440,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_video_note* of :obj:`~pyrogram.types.Message`. @@ -2494,7 +2494,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -2559,7 +2559,7 @@ class Message(Object, Update): "types.ReplyKeyboardRemove", "types.ForceReply" ] = None, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> "Message": """Bound method *reply_voice* of :obj:`~pyrogram.types.Message`. @@ -2614,7 +2614,7 @@ class Message(Object, Update): Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully @@ -3321,7 +3321,7 @@ class Message(Object, Update): self, file_name: str = "", block: bool = True, - progress: callable = None, + progress: Callable = None, progress_args: tuple = () ) -> str: """Bound method *download* of :obj:`~pyrogram.types.Message`. @@ -3348,7 +3348,7 @@ class Message(Object, Update): Blocks the code execution until the file has been downloaded. Defaults to True. - progress (``callable``, *optional*): + progress (``Callable``, *optional*): Pass a callback function to view the file transmission progress. The function must take *(current, total)* as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully diff --git a/pyrogram/types/messages_and_media/video_note.py b/pyrogram/types/messages_and_media/video_note.py index 450d536d..3e6b40d0 100644 --- a/pyrogram/types/messages_and_media/video_note.py +++ b/pyrogram/types/messages_and_media/video_note.py @@ -16,6 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +from datetime import datetime from typing import List import pyrogram @@ -23,7 +24,6 @@ from pyrogram import raw, utils from pyrogram import types from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType from ..object import Object -from datetime import datetime class VideoNote(Object): diff --git a/pyrogram/types/object.py b/pyrogram/types/object.py index 601bcd6e..caf18373 100644 --- a/pyrogram/types/object.py +++ b/pyrogram/types/object.py @@ -24,12 +24,7 @@ from json import dumps import pyrogram -class Meta(type, metaclass=type("", (type,), {"__str__": lambda _: "~hi"})): - def __str__(self): - return f"" - - -class Object(metaclass=Meta): +class Object: def __init__(self, client: "pyrogram.Client" = None): self._client = client diff --git a/pyrogram/types/user_and_chats/chat_event.py b/pyrogram/types/user_and_chats/chat_event.py index fa539be8..a5292c64 100644 --- a/pyrogram/types/user_and_chats/chat_event.py +++ b/pyrogram/types/user_and_chats/chat_event.py @@ -254,10 +254,10 @@ class ChatEvent(Object): @staticmethod async def _parse( - client: "pyrogram.Client", - event: "raw.base.ChannelAdminLogEvent", - users: List["raw.base.User"], - chats: List["raw.base.Chat"] + client: "pyrogram.Client", + event: "raw.base.ChannelAdminLogEvent", + users: List["raw.base.User"], + chats: List["raw.base.Chat"] ): users = {i.id: i for i in users} chats = {i.id: i for i in chats} diff --git a/pyrogram/types/user_and_chats/chat_member.py b/pyrogram/types/user_and_chats/chat_member.py index 06f45b8d..9b585d7c 100644 --- a/pyrogram/types/user_and_chats/chat_member.py +++ b/pyrogram/types/user_and_chats/chat_member.py @@ -108,8 +108,8 @@ class ChatMember(Object): @staticmethod def _parse( - client: "pyrogram.Client", - member: Union["raw.base.ChatParticipant", "raw.base.ChannelParticipant"], + client: "pyrogram.Client", + member: Union["raw.base.ChatParticipant", "raw.base.ChannelParticipant"], users: Dict[int, "raw.base.User"], chats: Dict[int, "raw.base.Chat"] ) -> "ChatMember": diff --git a/pyrogram/utils.py b/pyrogram/utils.py index 60f6ca9d..b3f04e60 100644 --- a/pyrogram/utils.py +++ b/pyrogram/utils.py @@ -297,7 +297,7 @@ async def parse_text_entities( text: str, parse_mode: enums.ParseMode, entities: List["types.MessageEntity"] -) -> Dict[str, raw.base.MessageEntity]: +) -> Dict[str, Union[str, List[raw.base.MessageEntity]]]: if entities: # Inject the client instance because parsing user mentions requires it for entity in entities: