From 8353e5a2a2c62bfc4a48e556c0262137f46f1687 Mon Sep 17 00:00:00 2001 From: wulan17 Date: Tue, 6 Feb 2024 02:48:22 +0700 Subject: [PATCH] Pyrofork: Full rebrand Signed-off-by: wulan17 --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .github/ISSUE_TEMPLATE/config.yml | 12 +- .github/workflows/build-docs.yml | 1 + .github/workflows/python.yml | 2 +- .gitignore | 12 +- MANIFEST.in | 10 +- Makefile | 4 +- README.md | 7 +- build-docs.sh | 37 +- compiler/api/compiler.py | 36 +- compiler/api/template/combinator.txt | 6 +- compiler/api/template/type.txt | 6 +- compiler/docs/compiler.py | 30 +- compiler/docs/template/bound-methods.rst | 4 +- compiler/docs/template/methods.rst | 12 +- compiler/docs/template/types.rst | 6 +- compiler/errors/compiler.py | 4 +- docs/source/api/client.rst | 4 +- docs/source/api/decorators.rst | 36 +- docs/source/api/enums/ChatAction.rst | 2 +- docs/source/api/enums/ChatEventAction.rst | 2 +- docs/source/api/enums/ChatMemberStatus.rst | 2 +- docs/source/api/enums/ChatMembersFilter.rst | 2 +- docs/source/api/enums/ChatType.rst | 2 +- docs/source/api/enums/ListenerTypes.rst | 2 +- docs/source/api/enums/MessageEntityType.rst | 2 +- docs/source/api/enums/MessageMediaType.rst | 2 +- docs/source/api/enums/MessageServiceType.rst | 2 +- docs/source/api/enums/MessagesFilter.rst | 2 +- docs/source/api/enums/NextCodeType.rst | 2 +- docs/source/api/enums/ParseMode.rst | 2 +- docs/source/api/enums/PollType.rst | 2 +- docs/source/api/enums/ReactionType.rst | 2 +- docs/source/api/enums/SentCodeType.rst | 2 +- docs/source/api/enums/StoriesPrivacyRules.rst | 2 +- docs/source/api/enums/StoryPrivacy.rst | 2 +- docs/source/api/enums/UserStatus.rst | 2 +- docs/source/api/enums/index.rst | 2 +- docs/source/api/errors/index.rst | 4 +- docs/source/api/filters.rst | 2 +- docs/source/api/handlers.rst | 6 +- docs/source/conf.py | 6 +- docs/source/faq/how-to-avoid-flood-waits.rst | 2 +- docs/source/index.rst | 4 +- docs/source/intro/install.rst | 4 +- docs/source/intro/quickstart.rst | 2 +- docs/source/start/auth.rst | 10 +- docs/source/start/errors.rst | 10 +- docs/source/start/examples/bot_keyboards.rst | 8 +- .../start/examples/callback_queries.rst | 2 +- docs/source/start/examples/echo_bot.rst | 2 +- .../start/examples/get_chat_history.rst | 2 +- .../start/examples/get_chat_members.rst | 2 +- docs/source/start/examples/get_dialogs.rst | 2 +- docs/source/start/examples/hello_world.rst | 2 +- docs/source/start/examples/index.rst | 2 +- docs/source/start/examples/inline_queries.rst | 6 +- docs/source/start/examples/raw_updates.rst | 2 +- .../source/start/examples/use_inline_bots.rst | 2 +- docs/source/start/examples/welcome_bot.rst | 2 +- docs/source/start/invoking.rst | 16 +- docs/source/start/setup.rst | 2 +- docs/source/start/updates.rst | 18 +- docs/source/topics/advanced-usage.rst | 26 +- docs/source/topics/create-filters.rst | 34 +- docs/source/topics/debugging.rst | 8 +- docs/source/topics/more-on-updates.rst | 6 +- docs/source/topics/proxy.rst | 2 +- docs/source/topics/scheduling.rst | 4 +- docs/source/topics/serializing.rst | 4 +- docs/source/topics/smart-plugins.rst | 16 +- docs/source/topics/speedups.rst | 4 +- docs/source/topics/storage-engines.rst | 24 +- docs/source/topics/synchronous.rst | 6 +- docs/source/topics/test-servers.rst | 2 +- docs/source/topics/text-formatting.rst | 30 +- docs/source/topics/use-filters.rst | 16 +- pyproject.toml | 4 +- {pyrogram => pyrofork}/__init__.py | 3 +- {pyrogram => pyrofork}/client.py | 60 +-- {pyrogram => pyrofork}/connection/__init__.py | 11 +- .../connection/connection.py | 0 .../connection/transport/__init__.py | 11 +- .../connection/transport/tcp/__init__.py | 11 +- .../connection/transport/tcp/tcp.py | 11 +- .../connection/transport/tcp/tcp_abridged.py | 11 +- .../transport/tcp/tcp_abridged_o.py | 19 +- .../connection/transport/tcp/tcp_full.py | 11 +- .../transport/tcp/tcp_intermediate.py | 11 +- .../transport/tcp/tcp_intermediate_o.py | 13 +- {pyrogram => pyrofork}/crypto/__init__.py | 11 +- {pyrogram => pyrofork}/crypto/aes.py | 13 +- {pyrogram => pyrofork}/crypto/mtproto.py | 15 +- {pyrogram => pyrofork}/crypto/prime.py | 11 +- {pyrogram => pyrofork}/crypto/rsa.py | 11 +- {pyrogram => pyrofork}/dispatcher.py | 38 +- {pyrogram => pyrofork}/emoji.py | 11 +- {pyrogram => pyrofork}/enums/__init__.py | 11 +- {pyrogram => pyrofork}/enums/auto_name.py | 13 +- {pyrogram => pyrofork}/enums/chat_action.py | 15 +- .../enums/chat_event_action.py | 2 +- .../enums/chat_member_status.py | 13 +- .../enums/chat_members_filter.py | 15 +- {pyrogram => pyrofork}/enums/chat_type.py | 13 +- .../enums/listerner_types.py | 2 +- .../enums/message_entity_type.py | 21 +- .../enums/message_media_type.py | 13 +- .../enums/message_service_type.py | 2 +- .../enums/messages_filter.py | 15 +- .../enums/next_code_type.py | 15 +- {pyrogram => pyrofork}/enums/parse_mode.py | 11 +- {pyrogram => pyrofork}/enums/poll_type.py | 13 +- {pyrogram => pyrofork}/enums/profile_color.py | 2 +- {pyrogram => pyrofork}/enums/reaction_type.py | 2 +- {pyrogram => pyrofork}/enums/reply_color.py | 2 +- .../enums/sent_code_type.py | 15 +- .../enums/stories_privacy_rules.py | 2 +- {pyrogram => pyrofork}/enums/story_privacy.py | 2 +- {pyrogram => pyrofork}/enums/user_status.py | 13 +- {pyrogram => pyrofork}/errors/__init__.py | 11 +- .../errors/pyromod/__init__.py | 0 .../errors/pyromod/listener_stopped.py | 0 .../errors/pyromod/listener_timeout.py | 0 {pyrogram => pyrofork}/errors/rpc_error.py | 19 +- {pyrogram => pyrofork}/file_id.py | 13 +- {pyrogram => pyrofork}/filters.py | 69 +-- {pyrogram => pyrofork}/handlers/__init__.py | 0 .../handlers/callback_query_handler.py | 37 +- .../handlers/chat_join_request_handler.py | 19 +- .../handlers/chat_member_updated_handler.py | 19 +- .../handlers/chosen_inline_result_handler.py | 19 +- .../handlers/conversation_handler.py | 17 +- .../handlers/deleted_messages_handler.py | 27 +- .../handlers/disconnect_handler.py | 17 +- .../handlers/edited_message_handler.py | 19 +- {pyrogram => pyrofork}/handlers/handler.py | 19 +- .../handlers/inline_query_handler.py | 19 +- .../handlers/message_handler.py | 35 +- .../message_reaction_count_updated_handler.py | 19 +- .../message_reaction_updated_handler.py | 19 +- .../handlers/poll_handler.py | 19 +- .../handlers/raw_update_handler.py | 33 +- .../handlers/story_handler.py | 8 +- .../handlers/user_status_handler.py | 19 +- {pyrogram => pyrofork}/helpers/__init__.py | 2 +- {pyrogram => pyrofork}/helpers/helpers.py | 2 +- {pyrogram => pyrofork}/methods/__init__.py | 2 +- .../methods/advanced/__init__.py | 11 +- .../methods/advanced/invoke.py | 27 +- .../methods/advanced/resolve_peer.py | 23 +- .../methods/advanced/save_file.py | 23 +- .../methods/auth/__init__.py | 11 +- .../methods/auth/accept_terms_of_service.py | 17 +- .../methods/auth/check_password.py | 23 +- .../methods/auth/connect.py | 17 +- .../methods/auth/disconnect.py | 15 +- .../methods/auth/get_password_hint.py | 17 +- .../methods/auth/initialize.py | 15 +- .../methods/auth/log_out.py | 17 +- .../methods/auth/recover_password.py | 21 +- .../methods/auth/resend_code.py | 23 +- .../methods/auth/send_code.py | 25 +- .../methods/auth/send_recovery_code.py | 17 +- .../methods/auth/sign_in.py | 25 +- .../methods/auth/sign_in_bot.py | 25 +- .../methods/auth/sign_up.py | 23 +- .../methods/auth/terminate.py | 19 +- .../methods/bots/__init__.py | 11 +- .../methods/bots/answer_callback_query.py | 17 +- .../methods/bots/answer_inline_query.py | 23 +- .../methods/bots/answer_web_app_query.py | 23 +- .../methods/bots/delete_bot_commands.py | 21 +- .../methods/bots/get_bot_commands.py | 23 +- .../bots/get_bot_default_privileges.py | 19 +- .../methods/bots/get_bot_info.py | 10 +- .../methods/bots/get_chat_menu_button.py | 19 +- .../methods/bots/get_game_high_scores.py | 21 +- .../methods/bots/get_inline_bot_results.py | 25 +- .../methods/bots/request_callback_answer.py | 17 +- .../methods/bots/send_game.py | 12 +- .../methods/bots/send_inline_bot_result.py | 14 +- .../methods/bots/set_bot_commands.py | 27 +- .../bots/set_bot_default_privileges.py | 23 +- .../methods/bots/set_bot_info.py | 6 +- .../methods/bots/set_chat_menu_button.py | 23 +- .../methods/bots/set_game_score.py | 21 +- .../methods/chats/__init__.py | 0 .../methods/chats/add_chat_members.py | 17 +- .../methods/chats/archive_chats.py | 17 +- .../methods/chats/ban_chat_member.py | 21 +- .../methods/chats/close_forum_topic.py | 8 +- .../methods/chats/close_general_topic.py | 8 +- .../methods/chats/create_channel.py | 21 +- .../methods/chats/create_forum_topic.py | 10 +- .../methods/chats/create_group.py | 23 +- .../methods/chats/create_supergroup.py | 23 +- .../methods/chats/delete_channel.py | 17 +- .../methods/chats/delete_chat_photo.py | 17 +- .../methods/chats/delete_forum_topic.py | 8 +- .../methods/chats/delete_supergroup.py | 17 +- .../methods/chats/delete_user_history.py | 17 +- .../methods/chats/edit_forum_topic.py | 8 +- .../methods/chats/edit_general_topic.py | 8 +- .../methods/chats/get_chat.py | 25 +- .../methods/chats/get_chat_event_log.py | 23 +- .../methods/chats/get_chat_member.py | 23 +- .../methods/chats/get_chat_members.py | 29 +- .../methods/chats/get_chat_members_count.py | 17 +- .../methods/chats/get_chat_online_count.py | 17 +- .../methods/chats/get_dialogs.py | 21 +- .../methods/chats/get_dialogs_count.py | 17 +- .../methods/chats/get_forum_topics.py | 12 +- .../methods/chats/get_forum_topics_by_id.py | 12 +- .../methods/chats/get_nearby_chats.py | 23 +- .../methods/chats/get_send_as_chats.py | 21 +- .../methods/chats/hide_general_topic.py | 8 +- .../methods/chats/join_chat.py | 25 +- .../methods/chats/leave_chat.py | 17 +- .../methods/chats/mark_chat_unread.py | 17 +- .../methods/chats/pin_chat_message.py | 19 +- .../methods/chats/promote_chat_member.py | 8 +- .../methods/chats/reopen_forum_topic.py | 8 +- .../methods/chats/reopen_general_topic.py | 8 +- .../methods/chats/restrict_chat_member.py | 14 +- .../methods/chats/set_administrator_title.py | 17 +- .../methods/chats/set_chat_description.py | 17 +- .../methods/chats/set_chat_permissions.py | 14 +- .../methods/chats/set_chat_photo.py | 25 +- .../chats/set_chat_protected_content.py | 17 +- .../methods/chats/set_chat_title.py | 17 +- .../methods/chats/set_chat_username.py | 19 +- .../methods/chats/set_send_as_chat.py | 19 +- .../methods/chats/set_slow_mode.py | 17 +- .../methods/chats/unarchive_chats.py | 17 +- .../methods/chats/unban_chat_member.py | 17 +- .../methods/chats/unhide_general_topic.py | 8 +- .../methods/chats/unpin_all_chat_messages.py | 17 +- .../methods/chats/unpin_chat_message.py | 17 +- .../methods/chats/update_color.py | 20 +- .../methods/contacts/__init__.py | 11 +- .../methods/contacts/add_contact.py | 21 +- .../methods/contacts/delete_contacts.py | 19 +- .../methods/contacts/get_contacts.py | 21 +- .../methods/contacts/get_contacts_count.py | 17 +- .../methods/contacts/import_contacts.py | 23 +- .../methods/decorators/__init__.py | 0 .../methods/decorators/on_callback_query.py | 27 +- .../decorators/on_chat_join_request.py | 27 +- .../decorators/on_chat_member_updated.py | 27 +- .../decorators/on_chosen_inline_result.py | 27 +- .../methods/decorators/on_deleted_messages.py | 27 +- .../methods/decorators/on_disconnect.py | 23 +- .../methods/decorators/on_edited_message.py | 27 +- .../methods/decorators/on_inline_query.py | 27 +- .../methods/decorators/on_message.py | 27 +- .../on_message_reaction_count_updated.py | 27 +- .../decorators/on_message_reaction_updated.py | 27 +- .../methods/decorators/on_poll.py | 27 +- .../methods/decorators/on_raw_update.py | 23 +- .../methods/decorators/on_story.py | 16 +- .../methods/decorators/on_user_status.py | 27 +- .../methods/invite_links/__init__.py | 11 +- .../approve_all_chat_join_requests.py | 17 +- .../invite_links/approve_chat_join_request.py | 17 +- .../invite_links/create_chat_invite_link.py | 23 +- .../decline_all_chat_join_requests.py | 17 +- .../invite_links/decline_chat_join_request.py | 17 +- .../delete_chat_admin_invite_links.py | 17 +- .../invite_links/delete_chat_invite_link.py | 17 +- .../invite_links/edit_chat_invite_link.py | 21 +- .../invite_links/export_chat_invite_link.py | 21 +- .../get_chat_admin_invite_links.py | 23 +- .../get_chat_admin_invite_links_count.py | 17 +- .../get_chat_admins_with_invite_links.py | 19 +- .../invite_links/get_chat_invite_link.py | 21 +- .../get_chat_invite_link_joiners.py | 23 +- .../get_chat_invite_link_joiners_count.py | 17 +- .../invite_links/get_chat_join_requests.py | 23 +- .../invite_links/revoke_chat_invite_link.py | 21 +- .../methods/messages/__init__.py | 11 +- .../methods/messages/copy_media_group.py | 10 +- .../methods/messages/copy_message.py | 14 +- .../methods/messages/delete_messages.py | 17 +- .../methods/messages/download_media.py | 23 +- .../methods/messages/edit_inline_caption.py | 21 +- .../methods/messages/edit_inline_media.py | 31 +- .../messages/edit_inline_reply_markup.py | 25 +- .../methods/messages/edit_inline_text.py | 25 +- .../methods/messages/edit_message_caption.py | 25 +- .../methods/messages/edit_message_media.py | 31 +- .../messages/edit_message_reply_markup.py | 25 +- .../methods/messages/edit_message_text.py | 29 +- .../methods/messages/forward_messages.py | 10 +- .../methods/messages/get_chat_history.py | 10 +- .../messages/get_chat_history_count.py | 19 +- .../messages/get_custom_emoji_stickers.py | 23 +- .../messages/get_discussion_message.py | 19 +- .../messages/get_discussion_replies.py | 17 +- .../messages/get_discussion_replies_count.py | 17 +- .../methods/messages/get_media_group.py | 19 +- .../methods/messages/get_messages.py | 23 +- .../methods/messages/inline_session.py | 23 +- .../methods/messages/read_chat_history.py | 17 +- .../methods/messages/retract_vote.py | 21 +- .../methods/messages/search_global.py | 33 +- .../methods/messages/search_global_count.py | 21 +- .../methods/messages/search_messages.py | 25 +- .../methods/messages/search_messages_count.py | 21 +- .../methods/messages/send_animation.py | 28 +- .../methods/messages/send_audio.py | 30 +- .../methods/messages/send_cached_media.py | 20 +- .../methods/messages/send_chat_action.py | 10 +- .../methods/messages/send_contact.py | 16 +- .../methods/messages/send_dice.py | 16 +- .../methods/messages/send_document.py | 28 +- .../methods/messages/send_location.py | 16 +- .../methods/messages/send_media_group.py | 24 +- .../methods/messages/send_message.py | 22 +- .../methods/messages/send_photo.py | 28 +- .../methods/messages/send_poll.py | 26 +- .../methods/messages/send_reaction.py | 18 +- .../methods/messages/send_sticker.py | 28 +- .../methods/messages/send_venue.py | 16 +- .../methods/messages/send_video.py | 28 +- .../methods/messages/send_video_note.py | 28 +- .../methods/messages/send_voice.py | 28 +- .../methods/messages/send_web_page.py | 18 +- .../methods/messages/stop_poll.py | 23 +- .../methods/messages/stream_media.py | 21 +- .../methods/messages/vote_poll.py | 21 +- .../methods/password/__init__.py | 11 +- .../methods/password/change_cloud_password.py | 19 +- .../methods/password/enable_cloud_password.py | 19 +- .../methods/password/remove_cloud_password.py | 19 +- .../methods/pyromod/__init__.py | 0 {pyrogram => pyrofork}/methods/pyromod/ask.py | 14 +- .../get_listener_matching_with_data.py | 14 +- ...stener_matching_with_identifier_pattern.py | 16 +- .../get_many_listeners_matching_with_data.py | 14 +- ...teners_matching_with_identifier_pattern.py | 16 +- .../methods/pyromod/listen.py | 20 +- .../pyromod/register_next_step_handler.py | 14 +- .../methods/pyromod/remove_listerner.py | 10 +- .../methods/pyromod/stop_listener.py | 12 +- .../methods/pyromod/stop_listening.py | 12 +- .../pyromod/wait_for_callback_query.py | 10 +- .../methods/pyromod/wait_for_message.py | 10 +- .../methods/stickers/__init__.py | 0 .../methods/stickers/add_sticker_to_set.py | 12 +- .../methods/stickers/create_sticker_set.py | 12 +- .../methods/stickers/get_sticker_set.py | 10 +- .../methods/users/__init__.py | 11 +- .../methods/users/block_user.py | 17 +- .../methods/users/delete_profile_photos.py | 23 +- .../methods/users/delete_stories.py | 8 +- .../methods/users/edit_story.py | 18 +- .../methods/users/export_story_link.py | 10 +- .../methods/users/forward_story.py | 16 +- .../methods/users/get_all_stories.py | 10 +- .../methods/users/get_chat_photos.py | 19 +- .../methods/users/get_chat_photos_count.py | 17 +- .../methods/users/get_common_chats.py | 21 +- .../users/get_default_emoji_statuses.py | 21 +- .../methods/users/get_me.py | 21 +- .../methods/users/get_peer_stories.py | 10 +- .../methods/users/get_stories.py | 10 +- .../methods/users/get_stories_history.py | 10 +- .../methods/users/get_users.py | 21 +- .../methods/users/send_story.py | 22 +- .../methods/users/set_emoji_status.py | 21 +- .../methods/users/set_profile_photo.py | 17 +- .../methods/users/set_username.py | 19 +- .../methods/users/unblock_user.py | 17 +- .../methods/users/update_profile.py | 17 +- .../methods/utilities/__init__.py | 11 +- .../methods/utilities/add_handler.py | 23 +- .../methods/utilities/compose.py | 23 +- .../utilities/export_session_string.py | 15 +- .../methods/utilities/idle.py | 15 +- .../methods/utilities/remove_handler.py | 25 +- .../methods/utilities/restart.py | 21 +- .../methods/utilities/run.py | 27 +- .../methods/utilities/run_sync.py | 82 ++-- .../methods/utilities/start.py | 21 +- .../methods/utilities/stop.py | 19 +- .../methods/utilities/stop_transmission.py | 4 +- {pyrogram => pyrofork}/mime_types.py | 11 +- {pyrogram => pyrofork}/nav/__init__.py | 0 {pyrogram => pyrofork}/nav/pagination.py | 2 +- {pyrogram => pyrofork}/parser/__init__.py | 11 +- {pyrogram => pyrofork}/parser/html.py | 23 +- {pyrogram => pyrofork}/parser/markdown.py | 17 +- {pyrogram => pyrofork}/parser/parser.py | 17 +- {pyrogram => pyrofork}/parser/utils.py | 11 +- {pyrogram => pyrofork}/py.typed | 0 {pyrogram => pyrofork}/raw/__init__.py | 11 +- {pyrogram => pyrofork}/raw/core/__init__.py | 11 +- .../raw/core/future_salt.py | 11 +- .../raw/core/future_salts.py | 11 +- .../raw/core/gzip_packed.py | 11 +- {pyrogram => pyrofork}/raw/core/list.py | 13 +- {pyrogram => pyrofork}/raw/core/message.py | 11 +- .../raw/core/msg_container.py | 11 +- .../raw/core/primitives/__init__.py | 11 +- .../raw/core/primitives/bool.py | 11 +- .../raw/core/primitives/bytes.py | 11 +- .../raw/core/primitives/double.py | 11 +- .../raw/core/primitives/int.py | 11 +- .../raw/core/primitives/string.py | 11 +- .../raw/core/primitives/vector.py | 11 +- {pyrogram => pyrofork}/raw/core/tl_object.py | 13 +- {pyrogram => pyrofork}/session/__init__.py | 11 +- {pyrogram => pyrofork}/session/auth.py | 14 +- .../session/internals/__init__.py | 11 +- .../session/internals/data_center.py | 0 .../session/internals/msg_factory.py | 17 +- .../session/internals/msg_id.py | 11 +- .../session/internals/seq_no.py | 11 +- {pyrogram => pyrofork}/session/session.py | 20 +- {pyrogram => pyrofork}/storage/__init__.py | 11 +- .../storage/dummy_client.py | 0 .../storage/file_storage.py | 11 +- .../storage/memory_storage.py | 11 +- .../storage/mongo_storage.py | 4 +- .../storage/sqlite_storage.py | 2 +- {pyrogram => pyrofork}/storage/storage.py | 11 +- {pyrogram => pyrofork}/sync.py | 17 +- {pyrogram => pyrofork}/types/__init__.py | 11 +- .../types/authorization/__init__.py | 11 +- .../types/authorization/sent_code.py | 23 +- .../types/authorization/terms_of_service.py | 19 +- .../types/bots_and_keyboards/__init__.py | 11 +- .../types/bots_and_keyboards/bot_command.py | 13 +- .../bots_and_keyboards/bot_command_scope.py | 31 +- ...t_command_scope_all_chat_administrators.py | 17 +- .../bot_command_scope_all_group_chats.py | 17 +- .../bot_command_scope_all_private_chats.py | 17 +- .../bot_command_scope_chat.py | 17 +- .../bot_command_scope_chat_administrators.py | 17 +- .../bot_command_scope_chat_member.py | 17 +- .../bot_command_scope_default.py | 17 +- .../types/bots_and_keyboards/bot_info.py | 2 +- .../types/bots_and_keyboards/callback_game.py | 11 +- .../bots_and_keyboards/callback_query.py | 59 +-- .../types/bots_and_keyboards/force_reply.py | 17 +- .../bots_and_keyboards/game_high_score.py | 21 +- .../inline_keyboard_button.py | 27 +- .../inline_keyboard_markup.py | 21 +- .../bots_and_keyboards/keyboard_button.py | 19 +- .../types/bots_and_keyboards/login_url.py | 13 +- .../types/bots_and_keyboards/menu_button.py | 25 +- .../menu_button_commands.py | 17 +- .../bots_and_keyboards/menu_button_default.py | 17 +- .../bots_and_keyboards/menu_button_web_app.py | 21 +- .../reply_keyboard_markup.py | 21 +- .../reply_keyboard_remove.py | 17 +- .../request_peer_type_channel.py | 0 .../request_peer_type_chat.py | 0 .../request_peer_type_user.py | 0 .../sent_web_app_message.py | 13 +- .../types/bots_and_keyboards/web_app_info.py | 11 +- .../types/inline_mode/__init__.py | 11 +- .../types/inline_mode/chosen_inline_result.py | 23 +- .../types/inline_mode/inline_query.py | 31 +- .../types/inline_mode/inline_query_result.py | 64 +++ .../inline_query_result_animation.py | 14 +- .../inline_query_result_article.py | 23 +- .../inline_mode/inline_query_result_audio.py | 25 +- .../inline_query_result_cached_animation.py | 25 +- .../inline_query_result_cached_audio.py | 25 +- .../inline_query_result_cached_document.py | 25 +- .../inline_query_result_cached_photo.py | 25 +- .../inline_query_result_cached_sticker.py | 21 +- .../inline_query_result_cached_video.py | 25 +- .../inline_query_result_cached_voice.py | 25 +- .../inline_query_result_contact.py | 21 +- .../inline_query_result_document.py | 25 +- .../inline_query_result_location.py | 21 +- .../inline_mode/inline_query_result_photo.py | 25 +- .../inline_mode/inline_query_result_venue.py | 21 +- .../inline_mode/inline_query_result_video.py | 25 +- .../inline_mode/inline_query_result_voice.py | 25 +- .../types/input_media/__init__.py | 11 +- .../types/input_media/input_media.py | 21 +- .../input_media/input_media_animation.py | 15 +- .../types/input_media/input_media_area.py | 4 +- .../input_media_area_channel_post.py | 8 +- .../types/input_media/input_media_audio.py | 17 +- .../types/input_media/input_media_document.py | 15 +- .../types/input_media/input_media_photo.py | 17 +- .../types/input_media/input_media_video.py | 17 +- .../types/input_media/input_phone_contact.py | 17 +- .../types/input_message_content/__init__.py | 0 .../input_message_content.py | 41 ++ .../input_reply_to_message.py | 6 +- .../input_reply_to_story.py | 4 +- .../input_text_message_content.py | 21 +- {pyrogram => pyrofork}/types/list.py | 13 +- .../types/messages_and_media/__init__.py | 10 +- .../types/messages_and_media/animation.py | 23 +- .../types/messages_and_media/audio.py | 23 +- .../types/messages_and_media/contact.py | 19 +- .../types/messages_and_media/dice.py | 17 +- .../types/messages_and_media/document.py | 23 +- .../messages_and_media/exported_story_link.py | 2 +- .../types/messages_and_media/game.py | 23 +- .../types/messages_and_media/giveaway.py | 10 +- .../messages_and_media/giveaway_launched.py | 0 .../messages_and_media/giveaway_result.py | 12 +- .../types/messages_and_media/location.py | 17 +- .../types/messages_and_media/media_area.py | 8 +- .../media_area_channel_post.py | 10 +- .../media_area_coordinates.py | 2 +- .../types/messages_and_media/message.py | 434 +++++++++--------- .../messages_and_media/message_entity.py | 31 +- .../message_reaction_count_updated.py | 22 +- .../message_reaction_updated.py | 28 +- .../messages_and_media/message_reactions.py | 21 +- .../types/messages_and_media/message_story.py | 10 +- .../types/messages_and_media/photo.py | 23 +- .../types/messages_and_media/poll.py | 20 +- .../types/messages_and_media/poll_option.py | 15 +- .../types/messages_and_media/reaction.py | 20 +- .../messages_and_media/reaction_count.py | 14 +- .../types/messages_and_media/reaction_type.py | 12 +- .../types/messages_and_media/sticker.py | 25 +- .../types/messages_and_media/stickerset.py | 6 +- .../stories_privacy_rules.py | 4 +- .../types/messages_and_media/story.py | 192 ++++---- .../types/messages_and_media/story_deleted.py | 12 +- .../story_forward_header.py | 10 +- .../types/messages_and_media/story_skipped.py | 12 +- .../types/messages_and_media/story_views.py | 2 +- .../messages_and_media/stripped_thumbnail.py | 17 +- .../types/messages_and_media/thumbnail.py | 19 +- .../types/messages_and_media/venue.py | 21 +- .../types/messages_and_media/video.py | 23 +- .../types/messages_and_media/video_note.py | 23 +- .../types/messages_and_media/voice.py | 19 +- .../types/messages_and_media/web_app_data.py | 13 +- .../types/messages_and_media/web_page.py | 29 +- .../messages_and_media/web_page_empty.py | 17 +- .../messages_and_media/web_page_preview.py | 19 +- {pyrogram => pyrofork}/types/object.py | 27 +- .../types/pyromod/__init__.py | 0 .../types/pyromod/identifier.py | 0 .../types/pyromod/listener.py | 14 +- {pyrogram => pyrofork}/types/update.py | 6 +- .../types/user_and_chats/__init__.py | 0 .../types/user_and_chats/chat.py | 148 +++--- .../chat_admin_with_invite_links.py | 21 +- .../types/user_and_chats/chat_color.py | 6 +- .../types/user_and_chats/chat_event.py | 96 ++-- .../types/user_and_chats/chat_event_filter.py | 13 +- .../types/user_and_chats/chat_invite_link.py | 21 +- .../types/user_and_chats/chat_join_request.py | 31 +- .../user_and_chats/chat_joined_by_request.py | 0 .../types/user_and_chats/chat_joiner.py | 23 +- .../types/user_and_chats/chat_member.py | 35 +- .../user_and_chats/chat_member_updated.py | 31 +- .../types/user_and_chats/chat_permissions.py | 2 +- .../types/user_and_chats/chat_photo.py | 19 +- .../types/user_and_chats/chat_preview.py | 23 +- .../types/user_and_chats/chat_privileges.py | 2 +- .../types/user_and_chats/chat_reactions.py | 19 +- .../types/user_and_chats/dialog.py | 23 +- .../types/user_and_chats/emoji_status.py | 19 +- .../types/user_and_chats/forum_topic.py | 8 +- .../user_and_chats/forum_topic_closed.py | 0 .../user_and_chats/forum_topic_created.py | 2 +- .../user_and_chats/forum_topic_edited.py | 2 +- .../user_and_chats/forum_topic_reopened.py | 0 .../general_forum_topic_hidden.py | 0 .../general_forum_topic_unhidden.py | 0 .../user_and_chats/invite_link_importer.py | 17 +- .../types/user_and_chats/peer_channel.py | 2 +- .../types/user_and_chats/peer_user.py | 2 +- .../types/user_and_chats/restriction.py | 13 +- .../types/user_and_chats/user.py | 62 +-- .../types/user_and_chats/username.py | 2 +- .../types/user_and_chats/video_chat_ended.py | 13 +- .../video_chat_members_invited.py | 15 +- .../user_and_chats/video_chat_scheduled.py | 13 +- .../user_and_chats/video_chat_started.py | 11 +- {pyrogram => pyrofork}/utils.py | 14 +- .../types/inline_mode/inline_query_result.py | 63 --- .../input_message_content.py | 40 -- tests/__init__.py | 11 +- tests/filters/__init__.py | 11 +- tests/filters/test_command.py | 13 +- tests/parser/__init__.py | 11 +- tests/parser/test_html.py | 81 ++-- tests/test_file_id.py | 13 +- 593 files changed, 5228 insertions(+), 4866 deletions(-) rename {pyrogram => pyrofork}/__init__.py (96%) rename {pyrogram => pyrofork}/client.py (96%) rename {pyrogram => pyrofork}/connection/__init__.py (61%) rename {pyrogram => pyrofork}/connection/connection.py (100%) rename {pyrogram => pyrofork}/connection/transport/__init__.py (60%) rename {pyrogram => pyrofork}/connection/transport/tcp/__init__.py (67%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp.py (91%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp_abridged.py (80%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp_abridged_o.py (81%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp_full.py (81%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp_intermediate.py (77%) rename {pyrogram => pyrofork}/connection/transport/tcp/tcp_intermediate_o.py (84%) rename {pyrogram => pyrofork}/crypto/__init__.py (59%) rename {pyrogram => pyrofork}/crypto/aes.py (89%) rename {pyrogram => pyrofork}/crypto/mtproto.py (88%) rename {pyrogram => pyrofork}/crypto/prime.py (85%) rename {pyrogram => pyrofork}/crypto/rsa.py (97%) rename {pyrogram => pyrofork}/dispatcher.py (91%) rename {pyrogram => pyrofork}/emoji.py (99%) rename {pyrogram => pyrofork}/enums/__init__.py (83%) rename {pyrogram => pyrofork}/enums/auto_name.py (62%) rename {pyrogram => pyrofork}/enums/chat_action.py (81%) rename {pyrogram => pyrofork}/enums/chat_event_action.py (98%) rename {pyrogram => pyrofork}/enums/chat_member_status.py (68%) rename {pyrogram => pyrofork}/enums/chat_members_filter.py (70%) rename {pyrogram => pyrofork}/enums/chat_type.py (67%) rename {pyrogram => pyrofork}/enums/listerner_types.py (94%) rename {pyrogram => pyrofork}/enums/message_entity_type.py (77%) rename {pyrogram => pyrofork}/enums/message_media_type.py (76%) rename {pyrogram => pyrofork}/enums/message_service_type.py (97%) rename {pyrogram => pyrofork}/enums/messages_filter.py (79%) rename {pyrogram => pyrofork}/enums/next_code_type.py (71%) rename {pyrogram => pyrofork}/enums/parse_mode.py (71%) rename {pyrogram => pyrofork}/enums/poll_type.py (62%) rename {pyrogram => pyrofork}/enums/profile_color.py (93%) rename {pyrogram => pyrofork}/enums/reaction_type.py (94%) rename {pyrogram => pyrofork}/enums/reply_color.py (95%) rename {pyrogram => pyrofork}/enums/sent_code_type.py (74%) rename {pyrogram => pyrofork}/enums/stories_privacy_rules.py (95%) rename {pyrogram => pyrofork}/enums/story_privacy.py (94%) rename {pyrogram => pyrofork}/enums/user_status.py (69%) rename {pyrogram => pyrofork}/errors/__init__.py (86%) rename {pyrogram => pyrofork}/errors/pyromod/__init__.py (100%) rename {pyrogram => pyrofork}/errors/pyromod/listener_stopped.py (100%) rename {pyrogram => pyrofork}/errors/pyromod/listener_timeout.py (100%) rename {pyrogram => pyrofork}/errors/rpc_error.py (84%) rename {pyrogram => pyrofork}/file_id.py (97%) rename {pyrogram => pyrofork}/filters.py (91%) rename {pyrogram => pyrofork}/handlers/__init__.py (100%) rename {pyrogram => pyrofork}/handlers/callback_query_handler.py (86%) rename {pyrogram => pyrofork}/handlers/chat_join_request_handler.py (71%) rename {pyrogram => pyrofork}/handlers/chat_member_updated_handler.py (71%) rename {pyrogram => pyrofork}/handlers/chosen_inline_result_handler.py (72%) rename {pyrogram => pyrofork}/handlers/conversation_handler.py (80%) rename {pyrogram => pyrofork}/handlers/deleted_messages_handler.py (72%) rename {pyrogram => pyrofork}/handlers/disconnect_handler.py (71%) rename {pyrogram => pyrofork}/handlers/edited_message_handler.py (71%) rename {pyrogram => pyrofork}/handlers/handler.py (68%) rename {pyrogram => pyrofork}/handlers/inline_query_handler.py (71%) rename {pyrogram => pyrofork}/handlers/message_handler.py (84%) rename {pyrogram => pyrofork}/handlers/message_reaction_count_updated_handler.py (73%) rename {pyrogram => pyrofork}/handlers/message_reaction_updated_handler.py (72%) rename {pyrogram => pyrofork}/handlers/poll_handler.py (71%) rename {pyrogram => pyrofork}/handlers/raw_update_handler.py (68%) rename {pyrogram => pyrofork}/handlers/story_handler.py (89%) rename {pyrogram => pyrofork}/handlers/user_status_handler.py (72%) rename {pyrogram => pyrofork}/helpers/__init__.py (94%) rename {pyrogram => pyrofork}/helpers/helpers.py (99%) rename {pyrogram => pyrofork}/methods/__init__.py (95%) rename {pyrogram => pyrofork}/methods/advanced/__init__.py (66%) rename {pyrogram => pyrofork}/methods/advanced/invoke.py (78%) rename {pyrogram => pyrofork}/methods/advanced/resolve_peer.py (87%) rename {pyrogram => pyrofork}/methods/advanced/save_file.py (93%) rename {pyrogram => pyrofork}/methods/auth/__init__.py (79%) rename {pyrogram => pyrofork}/methods/auth/accept_terms_of_service.py (71%) rename {pyrogram => pyrofork}/methods/auth/check_password.py (71%) rename {pyrogram => pyrofork}/methods/auth/connect.py (75%) rename {pyrogram => pyrofork}/methods/auth/disconnect.py (74%) rename {pyrogram => pyrofork}/methods/auth/get_password_hint.py (68%) rename {pyrogram => pyrofork}/methods/auth/initialize.py (77%) rename {pyrogram => pyrofork}/methods/auth/log_out.py (74%) rename {pyrogram => pyrofork}/methods/auth/recover_password.py (72%) rename {pyrogram => pyrofork}/methods/auth/resend_code.py (73%) rename {pyrogram => pyrofork}/methods/auth/send_code.py (78%) rename {pyrogram => pyrofork}/methods/auth/send_recovery_code.py (71%) rename {pyrogram => pyrofork}/methods/auth/sign_in.py (80%) rename {pyrogram => pyrofork}/methods/auth/sign_in_bot.py (78%) rename {pyrogram => pyrofork}/methods/auth/sign_up.py (77%) rename {pyrogram => pyrofork}/methods/auth/terminate.py (76%) rename {pyrogram => pyrofork}/methods/bots/__init__.py (83%) rename {pyrogram => pyrofork}/methods/bots/answer_callback_query.py (87%) rename {pyrogram => pyrofork}/methods/bots/answer_inline_query.py (88%) rename {pyrogram => pyrofork}/methods/bots/answer_web_app_query.py (71%) rename {pyrogram => pyrofork}/methods/bots/delete_bot_commands.py (76%) rename {pyrogram => pyrofork}/methods/bots/get_bot_commands.py (76%) rename {pyrogram => pyrofork}/methods/bots/get_bot_default_privileges.py (78%) rename {pyrogram => pyrofork}/methods/bots/get_bot_info.py (91%) rename {pyrogram => pyrofork}/methods/bots/get_chat_menu_button.py (81%) rename {pyrogram => pyrofork}/methods/bots/get_game_high_scores.py (82%) rename {pyrogram => pyrofork}/methods/bots/get_inline_bot_results.py (82%) rename {pyrogram => pyrofork}/methods/bots/request_callback_answer.py (85%) rename {pyrogram => pyrofork}/methods/bots/send_game.py (94%) rename {pyrogram => pyrofork}/methods/bots/send_inline_bot_result.py (91%) rename {pyrogram => pyrofork}/methods/bots/set_bot_commands.py (74%) rename {pyrogram => pyrofork}/methods/bots/set_bot_default_privileges.py (82%) rename {pyrogram => pyrofork}/methods/bots/set_bot_info.py (96%) rename {pyrogram => pyrofork}/methods/bots/set_chat_menu_button.py (72%) rename {pyrogram => pyrofork}/methods/bots/set_game_score.py (87%) rename {pyrogram => pyrofork}/methods/chats/__init__.py (100%) rename {pyrogram => pyrofork}/methods/chats/add_chat_members.py (87%) rename {pyrogram => pyrofork}/methods/chats/archive_chats.py (81%) rename {pyrogram => pyrofork}/methods/chats/ban_chat_member.py (89%) rename {pyrogram => pyrofork}/methods/chats/close_forum_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/close_general_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/create_channel.py (72%) rename {pyrogram => pyrofork}/methods/chats/create_forum_topic.py (93%) rename {pyrogram => pyrofork}/methods/chats/create_group.py (75%) rename {pyrogram => pyrofork}/methods/chats/create_supergroup.py (72%) rename {pyrogram => pyrofork}/methods/chats/delete_channel.py (75%) rename {pyrogram => pyrofork}/methods/chats/delete_chat_photo.py (82%) rename {pyrogram => pyrofork}/methods/chats/delete_forum_topic.py (95%) rename {pyrogram => pyrofork}/methods/chats/delete_supergroup.py (75%) rename {pyrogram => pyrofork}/methods/chats/delete_user_history.py (80%) rename {pyrogram => pyrofork}/methods/chats/edit_forum_topic.py (95%) rename {pyrogram => pyrofork}/methods/chats/edit_general_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/get_chat.py (82%) rename {pyrogram => pyrofork}/methods/chats/get_chat_event_log.py (86%) rename {pyrogram => pyrofork}/methods/chats/get_chat_member.py (84%) rename {pyrogram => pyrofork}/methods/chats/get_chat_members.py (85%) rename {pyrogram => pyrofork}/methods/chats/get_chat_members_count.py (82%) rename {pyrogram => pyrofork}/methods/chats/get_chat_online_count.py (76%) rename {pyrogram => pyrofork}/methods/chats/get_dialogs.py (84%) rename {pyrogram => pyrofork}/methods/chats/get_dialogs_count.py (79%) rename {pyrogram => pyrofork}/methods/chats/get_forum_topics.py (92%) rename {pyrogram => pyrofork}/methods/chats/get_forum_topics_by_id.py (92%) rename {pyrogram => pyrofork}/methods/chats/get_nearby_chats.py (77%) rename {pyrogram => pyrofork}/methods/chats/get_send_as_chats.py (77%) rename {pyrogram => pyrofork}/methods/chats/hide_general_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/join_chat.py (77%) rename {pyrogram => pyrofork}/methods/chats/leave_chat.py (84%) rename {pyrogram => pyrofork}/methods/chats/mark_chat_unread.py (74%) rename {pyrogram => pyrofork}/methods/chats/pin_chat_message.py (84%) rename {pyrogram => pyrofork}/methods/chats/promote_chat_member.py (96%) rename {pyrogram => pyrofork}/methods/chats/reopen_forum_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/reopen_general_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/restrict_chat_member.py (96%) rename {pyrogram => pyrofork}/methods/chats/set_administrator_title.py (87%) rename {pyrogram => pyrofork}/methods/chats/set_chat_description.py (81%) rename {pyrogram => pyrofork}/methods/chats/set_chat_permissions.py (96%) rename {pyrogram => pyrofork}/methods/chats/set_chat_photo.py (86%) rename {pyrogram => pyrofork}/methods/chats/set_chat_protected_content.py (76%) rename {pyrogram => pyrofork}/methods/chats/set_chat_title.py (84%) rename {pyrogram => pyrofork}/methods/chats/set_chat_username.py (80%) rename {pyrogram => pyrofork}/methods/chats/set_send_as_chat.py (77%) rename {pyrogram => pyrofork}/methods/chats/set_slow_mode.py (80%) rename {pyrogram => pyrofork}/methods/chats/unarchive_chats.py (81%) rename {pyrogram => pyrofork}/methods/chats/unban_chat_member.py (82%) rename {pyrogram => pyrofork}/methods/chats/unhide_general_topic.py (94%) rename {pyrogram => pyrofork}/methods/chats/unpin_all_chat_messages.py (79%) rename {pyrogram => pyrofork}/methods/chats/unpin_chat_message.py (81%) rename {pyrogram => pyrofork}/methods/chats/update_color.py (82%) rename {pyrogram => pyrofork}/methods/contacts/__init__.py (70%) rename {pyrogram => pyrofork}/methods/contacts/add_contact.py (80%) rename {pyrogram => pyrofork}/methods/contacts/delete_contacts.py (78%) rename {pyrogram => pyrofork}/methods/contacts/get_contacts.py (68%) rename {pyrogram => pyrofork}/methods/contacts/get_contacts_count.py (71%) rename {pyrogram => pyrofork}/methods/contacts/import_contacts.py (70%) rename {pyrogram => pyrofork}/methods/decorators/__init__.py (100%) rename {pyrogram => pyrofork}/methods/decorators/on_callback_query.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_chat_join_request.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_chat_member_updated.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_chosen_inline_result.py (66%) rename {pyrogram => pyrofork}/methods/decorators/on_deleted_messages.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_disconnect.py (58%) rename {pyrogram => pyrofork}/methods/decorators/on_edited_message.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_inline_query.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_message.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_message_reaction_count_updated.py (66%) rename {pyrogram => pyrofork}/methods/decorators/on_message_reaction_updated.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_poll.py (65%) rename {pyrogram => pyrofork}/methods/decorators/on_raw_update.py (64%) rename {pyrogram => pyrofork}/methods/decorators/on_story.py (81%) rename {pyrogram => pyrofork}/methods/decorators/on_user_status.py (65%) rename {pyrogram => pyrofork}/methods/invite_links/__init__.py (85%) rename {pyrogram => pyrofork}/methods/invite_links/approve_all_chat_join_requests.py (78%) rename {pyrogram => pyrofork}/methods/invite_links/approve_chat_join_request.py (79%) rename {pyrogram => pyrofork}/methods/invite_links/create_chat_invite_link.py (82%) rename {pyrogram => pyrofork}/methods/invite_links/decline_all_chat_join_requests.py (78%) rename {pyrogram => pyrofork}/methods/invite_links/decline_chat_join_request.py (79%) rename {pyrogram => pyrofork}/methods/invite_links/delete_chat_admin_invite_links.py (80%) rename {pyrogram => pyrofork}/methods/invite_links/delete_chat_invite_link.py (77%) rename {pyrogram => pyrofork}/methods/invite_links/edit_chat_invite_link.py (85%) rename {pyrogram => pyrofork}/methods/invite_links/export_chat_invite_link.py (80%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_admin_invite_links.py (84%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_admin_invite_links_count.py (83%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_admins_with_invite_links.py (76%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_invite_link.py (74%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_invite_link_joiners.py (81%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_invite_link_joiners_count.py (79%) rename {pyrogram => pyrofork}/methods/invite_links/get_chat_join_requests.py (81%) rename {pyrogram => pyrofork}/methods/invite_links/revoke_chat_invite_link.py (78%) rename {pyrogram => pyrofork}/methods/messages/__init__.py (91%) rename {pyrogram => pyrofork}/methods/messages/copy_media_group.py (96%) rename {pyrogram => pyrofork}/methods/messages/copy_message.py (92%) rename {pyrogram => pyrofork}/methods/messages/delete_messages.py (86%) rename {pyrogram => pyrofork}/methods/messages/download_media.py (91%) rename {pyrogram => pyrofork}/methods/messages/edit_inline_caption.py (75%) rename {pyrogram => pyrofork}/methods/messages/edit_inline_media.py (92%) rename {pyrogram => pyrofork}/methods/messages/edit_inline_reply_markup.py (75%) rename {pyrogram => pyrofork}/methods/messages/edit_inline_text.py (80%) rename {pyrogram => pyrofork}/methods/messages/edit_message_caption.py (77%) rename {pyrogram => pyrofork}/methods/messages/edit_message_media.py (94%) rename {pyrogram => pyrofork}/methods/messages/edit_message_reply_markup.py (79%) rename {pyrogram => pyrofork}/methods/messages/edit_message_text.py (81%) rename {pyrogram => pyrofork}/methods/messages/forward_messages.py (95%) rename {pyrogram => pyrofork}/methods/messages/get_chat_history.py (96%) rename {pyrogram => pyrofork}/methods/messages/get_chat_history_count.py (80%) rename {pyrogram => pyrofork}/methods/messages/get_custom_emoji_stickers.py (72%) rename {pyrogram => pyrofork}/methods/messages/get_discussion_message.py (80%) rename {pyrogram => pyrofork}/methods/messages/get_discussion_replies.py (85%) rename {pyrogram => pyrofork}/methods/messages/get_discussion_replies_count.py (79%) rename {pyrogram => pyrofork}/methods/messages/get_media_group.py (83%) rename {pyrogram => pyrofork}/methods/messages/get_messages.py (87%) rename {pyrogram => pyrofork}/methods/messages/inline_session.py (74%) rename {pyrogram => pyrofork}/methods/messages/read_chat_history.py (83%) rename {pyrogram => pyrofork}/methods/messages/retract_vote.py (76%) rename {pyrogram => pyrofork}/methods/messages/search_global.py (80%) rename {pyrogram => pyrofork}/methods/messages/search_global_count.py (76%) rename {pyrogram => pyrofork}/methods/messages/search_messages.py (87%) rename {pyrogram => pyrofork}/methods/messages/search_messages_count.py (84%) rename {pyrogram => pyrofork}/methods/messages/send_animation.py (94%) rename {pyrogram => pyrofork}/methods/messages/send_audio.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_cached_media.py (92%) rename {pyrogram => pyrofork}/methods/messages/send_chat_action.py (94%) rename {pyrogram => pyrofork}/methods/messages/send_contact.py (92%) rename {pyrogram => pyrofork}/methods/messages/send_dice.py (92%) rename {pyrogram => pyrofork}/methods/messages/send_document.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_location.py (92%) rename {pyrogram => pyrofork}/methods/messages/send_media_group.py (96%) rename {pyrogram => pyrofork}/methods/messages/send_message.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_photo.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_poll.py (91%) rename {pyrogram => pyrofork}/methods/messages/send_reaction.py (91%) rename {pyrogram => pyrofork}/methods/messages/send_sticker.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_venue.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_video.py (94%) rename {pyrogram => pyrofork}/methods/messages/send_video_note.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_voice.py (93%) rename {pyrogram => pyrofork}/methods/messages/send_web_page.py (93%) rename {pyrogram => pyrofork}/methods/messages/stop_poll.py (80%) rename {pyrogram => pyrofork}/methods/messages/stream_media.py (86%) rename {pyrogram => pyrofork}/methods/messages/vote_poll.py (80%) rename {pyrogram => pyrofork}/methods/password/__init__.py (68%) rename {pyrogram => pyrofork}/methods/password/change_cloud_password.py (82%) rename {pyrogram => pyrofork}/methods/password/enable_cloud_password.py (83%) rename {pyrogram => pyrofork}/methods/password/remove_cloud_password.py (78%) rename {pyrogram => pyrofork}/methods/pyromod/__init__.py (100%) rename {pyrogram => pyrofork}/methods/pyromod/ask.py (91%) rename {pyrogram => pyrofork}/methods/pyromod/get_listener_matching_with_data.py (84%) rename {pyrogram => pyrofork}/methods/pyromod/get_listener_matching_with_identifier_pattern.py (84%) rename {pyrogram => pyrofork}/methods/pyromod/get_many_listeners_matching_with_data.py (82%) rename {pyrogram => pyrofork}/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py (82%) rename {pyrogram => pyrofork}/methods/pyromod/listen.py (89%) rename {pyrogram => pyrofork}/methods/pyromod/register_next_step_handler.py (90%) rename {pyrogram => pyrofork}/methods/pyromod/remove_listerner.py (85%) rename {pyrogram => pyrofork}/methods/pyromod/stop_listener.py (89%) rename {pyrogram => pyrofork}/methods/pyromod/stop_listening.py (89%) rename {pyrogram => pyrofork}/methods/pyromod/wait_for_callback_query.py (94%) rename {pyrogram => pyrofork}/methods/pyromod/wait_for_message.py (93%) rename {pyrogram => pyrofork}/methods/stickers/__init__.py (100%) rename {pyrogram => pyrofork}/methods/stickers/add_sticker_to_set.py (92%) rename {pyrogram => pyrofork}/methods/stickers/create_sticker_set.py (95%) rename {pyrogram => pyrofork}/methods/stickers/get_sticker_set.py (90%) rename {pyrogram => pyrofork}/methods/users/__init__.py (84%) rename {pyrogram => pyrofork}/methods/users/block_user.py (77%) rename {pyrogram => pyrofork}/methods/users/delete_profile_photos.py (75%) rename {pyrogram => pyrofork}/methods/users/delete_stories.py (96%) rename {pyrogram => pyrofork}/methods/users/edit_story.py (95%) rename {pyrogram => pyrofork}/methods/users/export_story_link.py (93%) rename {pyrogram => pyrofork}/methods/users/forward_story.py (91%) rename {pyrogram => pyrofork}/methods/users/get_all_stories.py (92%) rename {pyrogram => pyrofork}/methods/users/get_chat_photos.py (88%) rename {pyrogram => pyrofork}/methods/users/get_chat_photos_count.py (83%) rename {pyrogram => pyrofork}/methods/users/get_common_chats.py (79%) rename {pyrogram => pyrofork}/methods/users/get_default_emoji_statuses.py (69%) rename {pyrogram => pyrofork}/methods/users/get_me.py (67%) rename {pyrogram => pyrofork}/methods/users/get_peer_stories.py (93%) rename {pyrogram => pyrofork}/methods/users/get_stories.py (93%) rename {pyrogram => pyrofork}/methods/users/get_stories_history.py (94%) rename {pyrogram => pyrofork}/methods/users/get_users.py (78%) rename {pyrogram => pyrofork}/methods/users/send_story.py (95%) rename {pyrogram => pyrofork}/methods/users/set_emoji_status.py (71%) rename {pyrogram => pyrofork}/methods/users/set_profile_photo.py (84%) rename {pyrogram => pyrofork}/methods/users/set_username.py (75%) rename {pyrogram => pyrofork}/methods/users/unblock_user.py (77%) rename {pyrogram => pyrofork}/methods/users/update_profile.py (82%) rename {pyrogram => pyrofork}/methods/utilities/__init__.py (73%) rename {pyrogram => pyrofork}/methods/utilities/add_handler.py (74%) rename {pyrogram => pyrofork}/methods/utilities/compose.py (73%) rename {pyrogram => pyrofork}/methods/utilities/export_session_string.py (74%) rename {pyrogram => pyrofork}/methods/utilities/idle.py (83%) rename {pyrogram => pyrofork}/methods/utilities/remove_handler.py (70%) rename {pyrogram => pyrofork}/methods/utilities/restart.py (73%) rename {pyrogram => pyrofork}/methods/utilities/run.py (75%) rename {pyrogram => pyrofork}/methods/utilities/run_sync.py (93%) rename {pyrogram => pyrofork}/methods/utilities/start.py (77%) rename {pyrogram => pyrofork}/methods/utilities/stop.py (76%) rename {pyrogram => pyrofork}/methods/utilities/stop_transmission.py (96%) rename {pyrogram => pyrofork}/mime_types.py (99%) rename {pyrogram => pyrofork}/nav/__init__.py (100%) rename {pyrogram => pyrofork}/nav/pagination.py (98%) rename {pyrogram => pyrofork}/parser/__init__.py (60%) rename {pyrogram => pyrofork}/parser/html.py (93%) rename {pyrogram => pyrofork}/parser/markdown.py (93%) rename {pyrogram => pyrofork}/parser/parser.py (78%) rename {pyrogram => pyrofork}/parser/utils.py (77%) rename {pyrogram => pyrofork}/py.typed (100%) rename {pyrogram => pyrofork}/raw/__init__.py (67%) rename {pyrogram => pyrofork}/raw/core/__init__.py (73%) rename {pyrogram => pyrofork}/raw/core/future_salt.py (79%) rename {pyrogram => pyrofork}/raw/core/future_salts.py (81%) rename {pyrogram => pyrofork}/raw/core/gzip_packed.py (80%) rename {pyrogram => pyrofork}/raw/core/list.py (62%) rename {pyrogram => pyrofork}/raw/core/message.py (81%) rename {pyrogram => pyrofork}/raw/core/msg_container.py (78%) rename {pyrogram => pyrofork}/raw/core/primitives/__init__.py (66%) rename {pyrogram => pyrofork}/raw/core/primitives/bool.py (77%) rename {pyrogram => pyrofork}/raw/core/primitives/bytes.py (80%) rename {pyrogram => pyrofork}/raw/core/primitives/double.py (71%) rename {pyrogram => pyrofork}/raw/core/primitives/int.py (74%) rename {pyrogram => pyrofork}/raw/core/primitives/string.py (71%) rename {pyrogram => pyrofork}/raw/core/primitives/vector.py (85%) rename {pyrogram => pyrofork}/raw/core/tl_object.py (84%) rename {pyrogram => pyrofork}/session/__init__.py (61%) rename {pyrogram => pyrofork}/session/auth.py (97%) rename {pyrogram => pyrofork}/session/internals/__init__.py (63%) rename {pyrogram => pyrofork}/session/internals/data_center.py (100%) rename {pyrogram => pyrofork}/session/internals/msg_factory.py (64%) rename {pyrogram => pyrofork}/session/internals/msg_id.py (70%) rename {pyrogram => pyrofork}/session/internals/seq_no.py (70%) rename {pyrogram => pyrofork}/session/session.py (97%) rename {pyrogram => pyrofork}/storage/__init__.py (67%) rename {pyrogram => pyrofork}/storage/dummy_client.py (100%) rename {pyrogram => pyrofork}/storage/file_storage.py (82%) rename {pyrogram => pyrofork}/storage/memory_storage.py (87%) rename {pyrogram => pyrofork}/storage/mongo_storage.py (98%) rename {pyrogram => pyrofork}/storage/sqlite_storage.py (99%) rename {pyrogram => pyrofork}/storage/storage.py (87%) rename {pyrogram => pyrofork}/sync.py (87%) rename {pyrogram => pyrofork}/types/__init__.py (70%) rename {pyrogram => pyrofork}/types/authorization/__init__.py (64%) rename {pyrogram => pyrofork}/types/authorization/sent_code.py (69%) rename {pyrogram => pyrofork}/types/authorization/terms_of_service.py (73%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/__init__.py (88%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command.py (78%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope.py (69%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py (65%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_all_group_chats.py (65%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_all_private_chats.py (64%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_chat.py (71%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_chat_administrators.py (72%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_chat_member.py (75%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_command_scope_default.py (66%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/bot_info.py (98%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/callback_game.py (67%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/callback_query.py (86%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/force_reply.py (81%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/game_high_score.py (77%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/inline_keyboard_button.py (90%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/inline_keyboard_markup.py (78%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/keyboard_button.py (91%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/login_url.py (89%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/menu_button.py (60%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/menu_button_commands.py (63%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/menu_button_default.py (63%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/menu_button_web_app.py (68%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/reply_keyboard_markup.py (88%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/reply_keyboard_remove.py (81%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/request_peer_type_channel.py (100%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/request_peer_type_chat.py (100%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/request_peer_type_user.py (100%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/sent_web_app_message.py (76%) rename {pyrogram => pyrofork}/types/bots_and_keyboards/web_app_info.py (73%) rename {pyrogram => pyrofork}/types/inline_mode/__init__.py (87%) rename {pyrogram => pyrofork}/types/inline_mode/chosen_inline_result.py (84%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query.py (88%) create mode 100644 pyrofork/types/inline_mode/inline_query_result.py rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_animation.py (93%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_article.py (81%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_audio.py (85%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_animation.py (83%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_audio.py (82%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_document.py (83%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_photo.py (83%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_sticker.py (80%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_video.py (83%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_cached_voice.py (82%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_contact.py (85%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_document.py (86%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_location.py (87%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_photo.py (86%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_venue.py (87%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_video.py (86%) rename {pyrogram => pyrofork}/types/inline_mode/inline_query_result_voice.py (83%) rename {pyrogram => pyrofork}/types/input_media/__init__.py (76%) rename {pyrogram => pyrofork}/types/input_media/input_media.py (65%) rename {pyrogram => pyrofork}/types/input_media/input_media_animation.py (86%) rename {pyrogram => pyrofork}/types/input_media/input_media_area.py (93%) rename {pyrogram => pyrofork}/types/input_media/input_media_area_channel_post.py (91%) rename {pyrogram => pyrofork}/types/input_media/input_media_audio.py (83%) rename {pyrogram => pyrofork}/types/input_media/input_media_document.py (82%) rename {pyrogram => pyrofork}/types/input_media/input_media_photo.py (79%) rename {pyrogram => pyrofork}/types/input_media/input_media_video.py (85%) rename {pyrogram => pyrofork}/types/input_media/input_phone_contact.py (72%) rename {pyrogram => pyrofork}/types/input_message_content/__init__.py (100%) create mode 100644 pyrofork/types/input_message_content/input_message_content.py rename {pyrogram => pyrofork}/types/input_message_content/input_reply_to_message.py (95%) rename {pyrogram => pyrofork}/types/input_message_content/input_reply_to_story.py (94%) rename {pyrogram => pyrofork}/types/input_message_content/input_text_message_content.py (77%) rename {pyrogram => pyrofork}/types/list.py (63%) rename {pyrogram => pyrofork}/types/messages_and_media/__init__.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/animation.py (85%) rename {pyrogram => pyrofork}/types/messages_and_media/audio.py (85%) rename {pyrogram => pyrofork}/types/messages_and_media/contact.py (77%) rename {pyrogram => pyrofork}/types/messages_and_media/dice.py (71%) rename {pyrogram => pyrofork}/types/messages_and_media/document.py (82%) rename {pyrogram => pyrofork}/types/messages_and_media/exported_story_link.py (98%) rename {pyrogram => pyrofork}/types/messages_and_media/game.py (81%) rename {pyrogram => pyrofork}/types/messages_and_media/giveaway.py (94%) rename {pyrogram => pyrofork}/types/messages_and_media/giveaway_launched.py (100%) rename {pyrogram => pyrofork}/types/messages_and_media/giveaway_result.py (93%) rename {pyrogram => pyrofork}/types/messages_and_media/location.py (74%) rename {pyrogram => pyrofork}/types/messages_and_media/media_area.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/media_area_channel_post.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/media_area_coordinates.py (98%) rename {pyrogram => pyrofork}/types/messages_and_media/message.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/message_entity.py (80%) rename {pyrogram => pyrofork}/types/messages_and_media/message_reaction_count_updated.py (82%) rename {pyrogram => pyrofork}/types/messages_and_media/message_reaction_updated.py (83%) rename {pyrogram => pyrofork}/types/messages_and_media/message_reactions.py (71%) rename {pyrogram => pyrofork}/types/messages_and_media/message_story.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/photo.py (86%) rename {pyrogram => pyrofork}/types/messages_and_media/poll.py (93%) rename {pyrogram => pyrofork}/types/messages_and_media/poll_option.py (73%) rename {pyrogram => pyrofork}/types/messages_and_media/reaction.py (83%) rename {pyrogram => pyrofork}/types/messages_and_media/reaction_count.py (81%) rename {pyrogram => pyrofork}/types/messages_and_media/reaction_type.py (87%) rename {pyrogram => pyrofork}/types/messages_and_media/sticker.py (90%) rename {pyrogram => pyrofork}/types/messages_and_media/stickerset.py (96%) rename {pyrogram => pyrofork}/types/messages_and_media/stories_privacy_rules.py (95%) rename {pyrogram => pyrofork}/types/messages_and_media/story.py (90%) rename {pyrogram => pyrofork}/types/messages_and_media/story_deleted.py (89%) rename {pyrogram => pyrofork}/types/messages_and_media/story_forward_header.py (92%) rename {pyrogram => pyrofork}/types/messages_and_media/story_skipped.py (91%) rename {pyrogram => pyrofork}/types/messages_and_media/story_views.py (98%) rename {pyrogram => pyrofork}/types/messages_and_media/stripped_thumbnail.py (70%) rename {pyrogram => pyrofork}/types/messages_and_media/thumbnail.py (86%) rename {pyrogram => pyrofork}/types/messages_and_media/venue.py (77%) rename {pyrogram => pyrofork}/types/messages_and_media/video.py (86%) rename {pyrogram => pyrofork}/types/messages_and_media/video_note.py (83%) rename {pyrogram => pyrofork}/types/messages_and_media/voice.py (84%) rename {pyrogram => pyrofork}/types/messages_and_media/web_app_data.py (76%) rename {pyrogram => pyrofork}/types/messages_and_media/web_page.py (87%) rename {pyrogram => pyrofork}/types/messages_and_media/web_page_empty.py (72%) rename {pyrogram => pyrofork}/types/messages_and_media/web_page_preview.py (81%) rename {pyrogram => pyrofork}/types/object.py (82%) rename {pyrogram => pyrofork}/types/pyromod/__init__.py (100%) rename {pyrogram => pyrofork}/types/pyromod/identifier.py (100%) rename {pyrogram => pyrofork}/types/pyromod/listener.py (88%) rename {pyrogram => pyrofork}/types/update.py (91%) rename {pyrogram => pyrofork}/types/user_and_chats/__init__.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/chat.py (89%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_admin_with_invite_links.py (77%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_color.py (93%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_event.py (86%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_event_filter.py (93%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_invite_link.py (88%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_join_request.py (81%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_joined_by_request.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_joiner.py (77%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_member.py (89%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_member_updated.py (78%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_permissions.py (99%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_photo.py (87%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_preview.py (77%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_privileges.py (99%) rename {pyrogram => pyrofork}/types/user_and_chats/chat_reactions.py (79%) rename {pyrogram => pyrofork}/types/user_and_chats/dialog.py (79%) rename {pyrogram => pyrofork}/types/user_and_chats/emoji_status.py (81%) rename {pyrogram => pyrofork}/types/user_and_chats/forum_topic.py (95%) rename {pyrogram => pyrofork}/types/user_and_chats/forum_topic_closed.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/forum_topic_created.py (98%) rename {pyrogram => pyrofork}/types/user_and_chats/forum_topic_edited.py (98%) rename {pyrogram => pyrofork}/types/user_and_chats/forum_topic_reopened.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/general_forum_topic_hidden.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/general_forum_topic_unhidden.py (100%) rename {pyrogram => pyrofork}/types/user_and_chats/invite_link_importer.py (77%) rename {pyrogram => pyrofork}/types/user_and_chats/peer_channel.py (98%) rename {pyrogram => pyrofork}/types/user_and_chats/peer_user.py (98%) rename {pyrogram => pyrofork}/types/user_and_chats/restriction.py (77%) rename {pyrogram => pyrofork}/types/user_and_chats/user.py (90%) rename {pyrogram => pyrofork}/types/user_and_chats/username.py (98%) rename {pyrogram => pyrofork}/types/user_and_chats/video_chat_ended.py (72%) rename {pyrogram => pyrofork}/types/user_and_chats/video_chat_members_invited.py (73%) rename {pyrogram => pyrofork}/types/user_and_chats/video_chat_scheduled.py (75%) rename {pyrogram => pyrofork}/types/user_and_chats/video_chat_started.py (67%) rename {pyrogram => pyrofork}/utils.py (98%) delete mode 100644 pyrogram/types/inline_mode/inline_query_result.py delete mode 100644 pyrogram/types/input_message_content/input_message_content.py diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index ef4c8db6..78855097 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -6,7 +6,7 @@ body: label: Checklist description: Invalid, incomplete or inadequate issue reports may not be taken into consideration options: - - label: I am sure the error is coming from Pyrogram's code and not elsewhere + - label: I am sure the error is coming from Pyrofork's code and not elsewhere required: true - label: I have searched in the issue tracker for similar bug reports, including closed ones required: true @@ -37,7 +37,7 @@ body: label: Code example description: Provide a [minimal, complete, consistently reproducible](https://stackoverflow.com/help/minimal-reproducible-example) and properly formatted example involving normal usages (if applicable) placeholder: | - from pyrogram import Client + from pyrofork import Client ... render: python diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 453151d8..1d73bda7 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - - name: Ask Pyrogram related questions - url: https://stackoverflow.com/questions/tagged/pyrogram - about: This place is only for reporting issues about Pyrogram. You can ask questions at StackOverflow. - - name: Join the Telegram channel - url: https://t.me/pyrogram - about: Join the official channel and stay tuned for news, updates and announcements. \ No newline at end of file + - name: Ask Pyrofork related questions + url: https://stackoverflow.com/questions/tagged/pyrofork + about: This place is only for reporting issues about Pyrofork. You can ask questions at StackOverflow. + - name: Join the Telegram chat + url: https://t.me/MayuriChan_Chat + about: Join the official chat and stay tuned for news, updates and announcements. \ No newline at end of file diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 1c822799..885f8ccd 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -6,6 +6,7 @@ on: - "*" branches: - staging + - dev/* jobs: build: diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index f65018ca..556c2f16 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -1,4 +1,4 @@ -name: Pyrogram +name: Pyrofork on: [push, pull_request] diff --git a/.gitignore b/.gitignore index 7a99a5db..81acb73f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,12 +6,12 @@ main.py unknown_errors.txt .DS_Store -# Pyrogram generated code -pyrogram/errors/exceptions/ -pyrogram/raw/functions/ -pyrogram/raw/types/ -pyrogram/raw/base/ -pyrogram/raw/all.py +# Pyrofork generated code +pyrofork/errors/exceptions/ +pyrofork/raw/functions/ +pyrofork/raw/types/ +pyrofork/raw/base/ +pyrofork/raw/all.py docs/source/telegram docs/source/api/methods/ docs/source/api/bound-methods/ diff --git a/MANIFEST.in b/MANIFEST.in index e028d633..5daf36ee 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,8 +4,8 @@ recursive-include compiler *.py *.tl *.tsv *.txt recursive-include tests *.py ## Exclude -prune pyrogram/errors/exceptions -prune pyrogram/raw/functions -prune pyrogram/raw/types -prune pyrogram/raw/base -exclude pyrogram/raw/all.py +prune pyrofork/errors/exceptions +prune pyrofork/raw/functions +prune pyrofork/raw/types +prune pyrofork/raw/base +exclude pyrofork/raw/all.py diff --git a/Makefile b/Makefile index a391f84b..15316f0b 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VENV := venv PYTHON := $(VENV)/bin/python HOST = $(shell ifconfig | grep "inet " | tail -1 | cut -d\ -f2) -TAG = v$(shell grep -E '__version__ = ".*"' pyrogram/__init__.py | cut -d\" -f2) +TAG = v$(shell grep -E '__version__ = ".*"' pyrofork/__init__.py | cut -d\" -f2) RM := rm -rf @@ -22,7 +22,7 @@ clean-build: $(RM) *.egg-info build dist clean-api: - $(RM) pyrogram/errors/exceptions pyrogram/raw/all.py pyrogram/raw/base pyrogram/raw/functions pyrogram/raw/types + $(RM) pyrofork/errors/exceptions pyrofork/raw/all.py pyrofork/raw/base pyrofork/raw/functions pyrofork/raw/types clean: make clean-build diff --git a/README.md b/README.md index 5c431a54..5c410421 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@

- - Pyrofork -
Telegram MTProto API Framework for Python
@@ -23,7 +20,7 @@ > Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots ``` python -from pyrogram import Client, filters +from pyrofork import Client, filters app = Client("my_account") @@ -51,7 +48,7 @@ If you'd like to support Pyrofork, you can consider: - **Ready**: Install Pyrofork with pip and start building your applications right away. - **Easy**: Makes the Telegram API simple and intuitive, while still allowing advanced usages. - **Elegant**: Low-level details are abstracted and re-presented in a more convenient way. -- **Fast**: Boosted up by [TgCrypto](https://github.com/pyrogram/tgcrypto), a high-performance cryptography library written in C. +- **Fast**: Boosted up by [TgCrypto](https://github.com/pyrogram/tgcrypto), a high-performance cryptography library written in C. - **Type-hinted**: Types and methods are all type-hinted, enabling excellent editor support. - **Async**: Fully asynchronous (also usable synchronously if wanted, for convenience). - **Powerful**: Full access to Telegram's API to execute any official client action and more. diff --git a/build-docs.sh b/build-docs.sh index 26c6196e..100e04ac 100644 --- a/build-docs.sh +++ b/build-docs.sh @@ -1,31 +1,42 @@ #!/bin/bash export DOCS_KEY -export VENV=$(pwd)/venv +VENV="$(pwd)"/venv +export VENV make clean make clean-docs make venv make api "$VENV"/bin/pip install -e '.[docs]' -cd compiler/docs && "$VENV"/bin/python compiler.py -cd ../.. +cd compiler/docs || exit 1 && "$VENV"/bin/python compiler.py +cd ../.. || exit 1 "$VENV"/bin/sphinx-build -b html "docs/source" "docs/build/html" -j auto git clone https://wulan17:"$DOCS_KEY"@github.com/Mayuri-Chan/pyrofork-docs.git -cd pyrofork-docs refs=$(echo "$GITHUB_REF" | cut -d '/' -f "1 2") if [[ "$refs" == "refs/tags" ]]; then - mkdir -p main - cd main - rm -rf _includes api genindex.html intro py-modindex.html sitemap.xml support.html topics _static faq index.html objects.inv searchindex.js start telegram - cp -r ../../docs/build/html/* . + branch="main" +elif [[ "$GITHUB_REF" == "refs/heads/staging" ]]; then + branch="staging" else - mkdir -p staging - cd staging - rm -rf _includes api genindex.html intro py-modindex.html sitemap.xml support.html topics _static faq index.html objects.inv searchindex.js start telegram - cp -r ../../docs/build/html/* . + b="$(echo "$GITHUB_REF" | cut -d '/' -f '3 4')" + if [[ $(echo "$b" | cut -d '/' -f 1 ) == "dev" ]]; then + b="$(echo "$b" | cut -d '/' -f 2)" + if [[ "$b" =~ ^[0-9]\.[0-9]\.x ]]; then + branch="$b" + else + exit 0 + fi + else + exit 0 + fi fi +cd pyrofork-docs || exit 1 +mkdir -p "$branch" +cd "$branch" || exit 1 +rm -rf _includes api genindex.html intro py-modindex.html sitemap.xml support.html topics _static faq index.html objects.inv searchindex.js start telegram +cp -r ../../docs/build/html/* . git config --local user.name "Mayuri-Chan" git config --local user.email "mayuri@mayuri.my.id" git add --all -git commit -a -m "docs: $(echo $GITHUB_REF | cut -d '/' -f 3): Update docs $(date '+%Y-%m-%d | %H:%m:%S %p %Z')" --signoff +git commit -a -m "docs: $branch: Update docs $(date '+%Y-%m-%d | %H:%m:%S %p %Z')" --signoff git push -u origin --all diff --git a/compiler/api/compiler.py b/compiler/api/compiler.py index 07435778..aebf9944 100644 --- a/compiler/api/compiler.py +++ b/compiler/api/compiler.py @@ -29,7 +29,7 @@ from typing import NamedTuple, List, Tuple # from black import format_str, FileMode HOME_PATH = Path("compiler/api") -DESTINATION_PATH = Path("pyrogram/raw") +DESTINATION_PATH = Path("pyrofork/raw") NOTICE_PATH = "NOTICE" SECTION_RE = re.compile(r"---(\w+)---") @@ -177,13 +177,13 @@ def get_docstring_arg_type(t: str): else: return f"``{t.lower()}``" elif t == "TLObject" or t == "X": - return "Any object from :obj:`~pyrogram.raw.types`" + return "Any object from :obj:`~pyrofork.raw.types`" elif t == "!X": - return "Any function from :obj:`~pyrogram.raw.functions`" + return "Any function from :obj:`~pyrofork.raw.functions`" elif t.lower().startswith("vector"): return "List of " + get_docstring_arg_type(t.split("<", 1)[1][:-1]) else: - return f":obj:`{t} `" + return f":obj:`{t} `" def get_references(t: str, kind: str): @@ -340,7 +340,7 @@ def start(format: bool = False): docstring += f"\n\n Constructors:\n" \ f" This base type has {constr_count} constructor{'s' if constr_count > 1 else ''} available.\n\n" \ - f" .. currentmodule:: pyrogram.raw.types\n\n" \ + f" .. currentmodule:: pyrofork.raw.types\n\n" \ f" .. autosummary::\n" \ f" :nosignatures:\n\n" \ f" {items}" @@ -350,7 +350,7 @@ def start(format: bool = False): if references: docstring += f"\n\n Functions:\n This object can be returned by " \ f"{ref_count} function{'s' if ref_count > 1 else ''}.\n\n" \ - f" .. currentmodule:: pyrogram.raw.functions\n\n" \ + f" .. currentmodule:: pyrofork.raw.functions\n\n" \ f" .. autosummary::\n" \ f" :nosignatures:\n\n" \ f" " + references @@ -423,7 +423,7 @@ def start(format: bool = False): constructor_docs = "Telegram API type." docstring += constructor_docs + "\n" - docstring += f"\n Constructor of :obj:`~pyrogram.raw.base.{c.qualtype}`." + docstring += f"\n Constructor of :obj:`~pyrofork.raw.base.{c.qualtype}`." else: function_docs = docs["method"].get(c.qualname, None) @@ -444,7 +444,7 @@ def start(format: bool = False): if references: docstring += f"\n Functions:\n This object can be returned by " \ f"{count} function{'s' if count > 1 else ''}.\n\n" \ - f" .. currentmodule:: pyrogram.raw.functions\n\n" \ + f" .. currentmodule:: pyrofork.raw.functions\n\n" \ f" .. autosummary::\n" \ f" :nosignatures:\n\n" \ f" " + references @@ -634,23 +634,23 @@ def start(format: bool = False): f.write("objects = {") for c in combinators: - f.write(f'\n {c.id}: "pyrogram.raw.{c.section}.{c.qualname}",') + f.write(f'\n {c.id}: "pyrofork.raw.{c.section}.{c.qualname}",') - f.write('\n 0xbc799737: "pyrogram.raw.core.BoolFalse",') - f.write('\n 0x997275b5: "pyrogram.raw.core.BoolTrue",') - f.write('\n 0x1cb5c415: "pyrogram.raw.core.Vector",') - f.write('\n 0x73f1f8dc: "pyrogram.raw.core.MsgContainer",') - f.write('\n 0xae500895: "pyrogram.raw.core.FutureSalts",') - f.write('\n 0x0949d9dc: "pyrogram.raw.core.FutureSalt",') - f.write('\n 0x3072cfa1: "pyrogram.raw.core.GzipPacked",') - f.write('\n 0x5bb8e511: "pyrogram.raw.core.Message",') + f.write('\n 0xbc799737: "pyrofork.raw.core.BoolFalse",') + f.write('\n 0x997275b5: "pyrofork.raw.core.BoolTrue",') + f.write('\n 0x1cb5c415: "pyrofork.raw.core.Vector",') + f.write('\n 0x73f1f8dc: "pyrofork.raw.core.MsgContainer",') + f.write('\n 0xae500895: "pyrofork.raw.core.FutureSalts",') + f.write('\n 0x0949d9dc: "pyrofork.raw.core.FutureSalt",') + f.write('\n 0x3072cfa1: "pyrofork.raw.core.GzipPacked",') + f.write('\n 0x5bb8e511: "pyrofork.raw.core.Message",') f.write("\n}\n") if "__main__" == __name__: HOME_PATH = Path(".") - DESTINATION_PATH = Path("../../pyrogram/raw") + DESTINATION_PATH = Path("../../pyrofork/raw") NOTICE_PATH = Path("../../NOTICE") start(format=False) diff --git a/compiler/api/template/combinator.txt b/compiler/api/template/combinator.txt index fa7a7697..4a22de01 100644 --- a/compiler/api/template/combinator.txt +++ b/compiler/api/template/combinator.txt @@ -2,9 +2,9 @@ from io import BytesIO -from pyrogram.raw.core.primitives import Int, Long, Int128, Int256, Bool, Bytes, String, Double, Vector -from pyrogram.raw.core import TLObject -from pyrogram import raw +from pyrofork.raw.core.primitives import Int, Long, Int128, Int256, Bool, Bytes, String, Double, Vector +from pyrofork.raw.core import TLObject +from pyrofork import raw from typing import List, Optional, Any {warning} diff --git a/compiler/api/template/type.txt b/compiler/api/template/type.txt index 3774fb0a..f4b65bd4 100644 --- a/compiler/api/template/type.txt +++ b/compiler/api/template/type.txt @@ -3,8 +3,8 @@ {warning} from typing import Union -from pyrogram import raw -from pyrogram.raw.core import TLObject +from pyrofork import raw +from pyrofork.raw.core import TLObject {name} = Union[{types}] @@ -14,7 +14,7 @@ class {name}: # type: ignore """{docstring} """ - QUALNAME = "pyrogram.raw.base.{qualname}" + QUALNAME = "pyrofork.raw.base.{qualname}" def __init__(self): raise TypeError("Base types can only be used for type checking purposes: " diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index e87eab49..5b6fea24 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -26,9 +26,9 @@ HOME = "compiler/docs" DESTINATION = "docs/source/telegram" PYROGRAM_API_DEST = "docs/source/api" -FUNCTIONS_PATH = "pyrogram/raw/functions" -TYPES_PATH = "pyrogram/raw/types" -BASE_PATH = "pyrogram/raw/base" +FUNCTIONS_PATH = "pyrofork/raw/functions" +TYPES_PATH = "pyrofork/raw/types" +BASE_PATH = "pyrofork/raw/base" FUNCTIONS_BASE = "functions" TYPES_BASE = "types" @@ -79,7 +79,7 @@ def generate(source_path, base): page_template.format( title=full_name, title_markup="=" * len(full_name), - full_class_path="pyrogram.raw.{}".format( + full_class_path="pyrofork.raw.{}".format( ".".join(full_path.split("/")[:-1]) + "." + name ) ) @@ -101,14 +101,14 @@ def generate(source_path, base): if k != base: inner_path = base + "/" + k + "/index" + ".rst" - module = "pyrogram.raw.{}.{}".format(base, k) + module = "pyrofork.raw.{}.{}".format(base, k) else: for i in sorted(list(all_entities), reverse=True): if i != base: entities.insert(0, "{0}/index".format(i)) inner_path = base + "/index" + ".rst" - module = "pyrogram.raw.{}".format(base) + module = "pyrofork.raw.{}".format(base) with open(DESTINATION + "/" + inner_path, "w", encoding="utf-8") as f: if k == base: @@ -127,7 +127,7 @@ def generate(source_path, base): f.write("\n") -def pyrogram_api(): +def pyrofork_api(): def get_title_list(s: str) -> list: return [i.strip() for i in [j.strip() for j in s.split("\n") if j] if i] @@ -403,7 +403,7 @@ def pyrogram_api(): title = "{}()".format(method) f2.write(title + "\n" + "=" * len(title) + "\n\n") - f2.write(".. automethod:: pyrogram.Client.{}()".format(method)) + f2.write(".. automethod:: pyrofork.Client.{}()".format(method)) functions = ["idle", "compose"] @@ -412,7 +412,7 @@ def pyrogram_api(): title = "{}()".format(func) f2.write(title + "\n" + "=" * len(title) + "\n\n") - f2.write(".. autofunction:: pyrogram.{}()".format(func)) + f2.write(".. autofunction:: pyrofork.{}()".format(func)) f.write(template.format(**fmt_keys)) @@ -615,7 +615,7 @@ def pyrogram_api(): title = "{}".format(type) f2.write(title + "\n" + "=" * len(title) + "\n\n") - f2.write(".. autoclass:: pyrogram.types.{}()\n".format(type)) + f2.write(".. autoclass:: pyrofork.types.{}()\n".format(type)) f.write(template.format(**fmt_keys)) @@ -761,7 +761,7 @@ def pyrogram_api(): title = "{}()".format(bm) f2.write(title + "\n" + "=" * len(title) + "\n\n") - f2.write(".. automethod:: pyrogram.types.{}()".format(bm)) + f2.write(".. automethod:: pyrofork.types.{}()".format(bm)) f.write(template.format(**fmt_keys)) @@ -781,13 +781,13 @@ def start(): generate(TYPES_PATH, TYPES_BASE) generate(FUNCTIONS_PATH, FUNCTIONS_BASE) generate(BASE_PATH, BASE_BASE) - pyrogram_api() + pyrofork_api() if "__main__" == __name__: - FUNCTIONS_PATH = "../../pyrogram/raw/functions" - TYPES_PATH = "../../pyrogram/raw/types" - BASE_PATH = "../../pyrogram/raw/base" + FUNCTIONS_PATH = "../../pyrofork/raw/functions" + TYPES_PATH = "../../pyrofork/raw/types" + BASE_PATH = "../../pyrofork/raw/base" HOME = "." DESTINATION = "../../docs/source/telegram" PYROGRAM_API_DEST = "../../docs/source/api" diff --git a/compiler/docs/template/bound-methods.rst b/compiler/docs/template/bound-methods.rst index ff712cdf..e58408f9 100644 --- a/compiler/docs/template/bound-methods.rst +++ b/compiler/docs/template/bound-methods.rst @@ -7,7 +7,7 @@ some of the required arguments. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -21,7 +21,7 @@ some of the required arguments. ----- -.. currentmodule:: pyrogram.types +.. currentmodule:: pyrofork.types Message ------- diff --git a/compiler/docs/template/methods.rst b/compiler/docs/template/methods.rst index e69a89c2..ebe8bb04 100644 --- a/compiler/docs/template/methods.rst +++ b/compiler/docs/template/methods.rst @@ -1,13 +1,13 @@ Available Methods ================= -This page is about Pyrofork methods. All the methods listed here are bound to a :class:`~pyrogram.Client` instance, -except for :meth:`~pyrogram.idle()` and :meth:`~pyrogram.compose()`, which are special functions that can be found in +This page is about Pyrofork methods. All the methods listed here are bound to a :class:`~pyrofork.Client` instance, +except for :meth:`~pyrofork.idle()` and :meth:`~pyrofork.compose()`, which are special functions that can be found in the main package directly. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -16,7 +16,7 @@ the main package directly. ----- -.. currentmodule:: pyrogram.Client +.. currentmodule:: pyrofork.Client Utilities --------- @@ -31,7 +31,7 @@ Utilities {utilities} -.. currentmodule:: pyrogram +.. currentmodule:: pyrofork .. autosummary:: :nosignatures: @@ -45,7 +45,7 @@ Utilities idle compose -.. currentmodule:: pyrogram.Client +.. currentmodule:: pyrofork.Client Conversation ------------ diff --git a/compiler/docs/template/types.rst b/compiler/docs/template/types.rst index 0ae41f4b..dbf8a5c8 100644 --- a/compiler/docs/template/types.rst +++ b/compiler/docs/template/types.rst @@ -1,13 +1,13 @@ Available Types =============== -This page is about Pyrofork Types. All types listed here are available through the ``pyrogram.types`` package. +This page is about Pyrofork Types. All types listed here are available through the ``pyrofork.types`` package. Unless required as argument to a client method, most of the types don't need to be manually instantiated because they are only returned by other methods. You also don't need to import them, unless you want to type-hint your variables. .. code-block:: python - from pyrogram.types import User, Message, ... + from pyrofork.types import User, Message, ... .. note:: @@ -19,7 +19,7 @@ are only returned by other methods. You also don't need to import them, unless y ----- -.. currentmodule:: pyrogram.types +.. currentmodule:: pyrofork.types Users & Chats ------------- diff --git a/compiler/errors/compiler.py b/compiler/errors/compiler.py index 383ae06f..af3feef9 100644 --- a/compiler/errors/compiler.py +++ b/compiler/errors/compiler.py @@ -23,7 +23,7 @@ import re import shutil HOME = "compiler/errors" -DEST = "pyrogram/errors/exceptions" +DEST = "pyrofork/errors/exceptions" NOTICE_PATH = "NOTICE" @@ -137,7 +137,7 @@ def start(): if "__main__" == __name__: HOME = "." - DEST = "../../pyrogram/errors/exceptions" + DEST = "../../pyrofork/errors/exceptions" NOTICE_PATH = "../../NOTICE" start() diff --git a/docs/source/api/client.rst b/docs/source/api/client.rst index 54d1772f..45ca8eb8 100644 --- a/docs/source/api/client.rst +++ b/docs/source/api/client.rst @@ -9,7 +9,7 @@ This page is about the Client class, which exposes high-level methods for an eas .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -21,4 +21,4 @@ This page is about the Client class, which exposes high-level methods for an eas Details ------- -.. autoclass:: pyrogram.Client() +.. autoclass:: pyrofork.Client() diff --git a/docs/source/api/decorators.rst b/docs/source/api/decorators.rst index 90a01cbe..8b398779 100644 --- a/docs/source/api/decorators.rst +++ b/docs/source/api/decorators.rst @@ -3,12 +3,12 @@ Decorators Decorators are able to register callback functions for handling updates in a much easier and cleaner way compared to :doc:`Handlers `; they do so by instantiating the correct handler and calling -:meth:`~pyrogram.Client.add_handler` automatically. All you need to do is adding the decorators on top of your +:meth:`~pyrofork.Client.add_handler` automatically. All you need to do is adding the decorators on top of your functions. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -27,7 +27,7 @@ functions. ----- -.. currentmodule:: pyrogram +.. currentmodule:: pyrofork Index ----- @@ -57,18 +57,18 @@ Details ------- .. Decorators -.. autodecorator:: pyrogram.Client.on_message() -.. autodecorator:: pyrogram.Client.on_edited_message() -.. autodecorator:: pyrogram.Client.on_callback_query() -.. autodecorator:: pyrogram.Client.on_message_reaction_updated() -.. autodecorator:: pyrogram.Client.on_message_reaction_count_updated() -.. autodecorator:: pyrogram.Client.on_inline_query() -.. autodecorator:: pyrogram.Client.on_chosen_inline_result() -.. autodecorator:: pyrogram.Client.on_chat_member_updated() -.. autodecorator:: pyrogram.Client.on_chat_join_request() -.. autodecorator:: pyrogram.Client.on_deleted_messages() -.. autodecorator:: pyrogram.Client.on_user_status() -.. autodecorator:: pyrogram.Client.on_story() -.. autodecorator:: pyrogram.Client.on_poll() -.. autodecorator:: pyrogram.Client.on_disconnect() -.. autodecorator:: pyrogram.Client.on_raw_update() +.. autodecorator:: pyrofork.Client.on_message() +.. autodecorator:: pyrofork.Client.on_edited_message() +.. autodecorator:: pyrofork.Client.on_callback_query() +.. autodecorator:: pyrofork.Client.on_message_reaction_updated() +.. autodecorator:: pyrofork.Client.on_message_reaction_count_updated() +.. autodecorator:: pyrofork.Client.on_inline_query() +.. autodecorator:: pyrofork.Client.on_chosen_inline_result() +.. autodecorator:: pyrofork.Client.on_chat_member_updated() +.. autodecorator:: pyrofork.Client.on_chat_join_request() +.. autodecorator:: pyrofork.Client.on_deleted_messages() +.. autodecorator:: pyrofork.Client.on_user_status() +.. autodecorator:: pyrofork.Client.on_story() +.. autodecorator:: pyrofork.Client.on_poll() +.. autodecorator:: pyrofork.Client.on_disconnect() +.. autodecorator:: pyrofork.Client.on_raw_update() diff --git a/docs/source/api/enums/ChatAction.rst b/docs/source/api/enums/ChatAction.rst index b66df5fd..09dd3181 100644 --- a/docs/source/api/enums/ChatAction.rst +++ b/docs/source/api/enums/ChatAction.rst @@ -1,7 +1,7 @@ ChatAction ========== -.. autoclass:: pyrogram.enums.ChatAction() +.. autoclass:: pyrofork.enums.ChatAction() :members: .. raw:: html diff --git a/docs/source/api/enums/ChatEventAction.rst b/docs/source/api/enums/ChatEventAction.rst index 0403e781..9686a258 100644 --- a/docs/source/api/enums/ChatEventAction.rst +++ b/docs/source/api/enums/ChatEventAction.rst @@ -1,7 +1,7 @@ ChatEventAction =============== -.. autoclass:: pyrogram.enums.ChatEventAction() +.. autoclass:: pyrofork.enums.ChatEventAction() :members: .. raw:: html diff --git a/docs/source/api/enums/ChatMemberStatus.rst b/docs/source/api/enums/ChatMemberStatus.rst index bff23eda..5a1c6e4d 100644 --- a/docs/source/api/enums/ChatMemberStatus.rst +++ b/docs/source/api/enums/ChatMemberStatus.rst @@ -1,7 +1,7 @@ ChatMemberStatus ================ -.. autoclass:: pyrogram.enums.ChatMemberStatus() +.. autoclass:: pyrofork.enums.ChatMemberStatus() :members: .. raw:: html diff --git a/docs/source/api/enums/ChatMembersFilter.rst b/docs/source/api/enums/ChatMembersFilter.rst index 5a970ffc..07c53e02 100644 --- a/docs/source/api/enums/ChatMembersFilter.rst +++ b/docs/source/api/enums/ChatMembersFilter.rst @@ -1,7 +1,7 @@ ChatMembersFilter ================= -.. autoclass:: pyrogram.enums.ChatMembersFilter() +.. autoclass:: pyrofork.enums.ChatMembersFilter() :members: .. raw:: html diff --git a/docs/source/api/enums/ChatType.rst b/docs/source/api/enums/ChatType.rst index dd653055..8ab6af04 100644 --- a/docs/source/api/enums/ChatType.rst +++ b/docs/source/api/enums/ChatType.rst @@ -1,7 +1,7 @@ ChatType ======== -.. autoclass:: pyrogram.enums.ChatType() +.. autoclass:: pyrofork.enums.ChatType() :members: .. raw:: html diff --git a/docs/source/api/enums/ListenerTypes.rst b/docs/source/api/enums/ListenerTypes.rst index 39d8b960..091144f3 100644 --- a/docs/source/api/enums/ListenerTypes.rst +++ b/docs/source/api/enums/ListenerTypes.rst @@ -1,7 +1,7 @@ ListenerTypes ============= -.. autoclass:: pyrogram.enums.ListenerTypes() +.. autoclass:: pyrofork.enums.ListenerTypes() :members: .. raw:: html diff --git a/docs/source/api/enums/MessageEntityType.rst b/docs/source/api/enums/MessageEntityType.rst index c7a8965f..a79dba9d 100644 --- a/docs/source/api/enums/MessageEntityType.rst +++ b/docs/source/api/enums/MessageEntityType.rst @@ -1,7 +1,7 @@ MessageEntityType ================= -.. autoclass:: pyrogram.enums.MessageEntityType() +.. autoclass:: pyrofork.enums.MessageEntityType() :members: .. raw:: html diff --git a/docs/source/api/enums/MessageMediaType.rst b/docs/source/api/enums/MessageMediaType.rst index 04e439d2..54b82b2d 100644 --- a/docs/source/api/enums/MessageMediaType.rst +++ b/docs/source/api/enums/MessageMediaType.rst @@ -1,7 +1,7 @@ MessageMediaType ================ -.. autoclass:: pyrogram.enums.MessageMediaType() +.. autoclass:: pyrofork.enums.MessageMediaType() :members: .. raw:: html diff --git a/docs/source/api/enums/MessageServiceType.rst b/docs/source/api/enums/MessageServiceType.rst index 2de56818..5e9e6d1d 100644 --- a/docs/source/api/enums/MessageServiceType.rst +++ b/docs/source/api/enums/MessageServiceType.rst @@ -1,7 +1,7 @@ MessageServiceType ================== -.. autoclass:: pyrogram.enums.MessageServiceType() +.. autoclass:: pyrofork.enums.MessageServiceType() :members: .. raw:: html diff --git a/docs/source/api/enums/MessagesFilter.rst b/docs/source/api/enums/MessagesFilter.rst index 09090707..c44fc8f3 100644 --- a/docs/source/api/enums/MessagesFilter.rst +++ b/docs/source/api/enums/MessagesFilter.rst @@ -1,7 +1,7 @@ MessagesFilter ============== -.. autoclass:: pyrogram.enums.MessagesFilter() +.. autoclass:: pyrofork.enums.MessagesFilter() :members: .. raw:: html diff --git a/docs/source/api/enums/NextCodeType.rst b/docs/source/api/enums/NextCodeType.rst index 46164e47..9a593e88 100644 --- a/docs/source/api/enums/NextCodeType.rst +++ b/docs/source/api/enums/NextCodeType.rst @@ -1,7 +1,7 @@ NextCodeType ============ -.. autoclass:: pyrogram.enums.NextCodeType() +.. autoclass:: pyrofork.enums.NextCodeType() :members: .. raw:: html diff --git a/docs/source/api/enums/ParseMode.rst b/docs/source/api/enums/ParseMode.rst index 1bcc74da..d61e1c1e 100644 --- a/docs/source/api/enums/ParseMode.rst +++ b/docs/source/api/enums/ParseMode.rst @@ -1,7 +1,7 @@ ParseMode ========= -.. autoclass:: pyrogram.enums.ParseMode() +.. autoclass:: pyrofork.enums.ParseMode() :members: .. raw:: html diff --git a/docs/source/api/enums/PollType.rst b/docs/source/api/enums/PollType.rst index d00f9ce8..6e63abc0 100644 --- a/docs/source/api/enums/PollType.rst +++ b/docs/source/api/enums/PollType.rst @@ -1,7 +1,7 @@ PollType ======== -.. autoclass:: pyrogram.enums.PollType() +.. autoclass:: pyrofork.enums.PollType() :members: .. raw:: html diff --git a/docs/source/api/enums/ReactionType.rst b/docs/source/api/enums/ReactionType.rst index 59692fba..b7c05b5d 100644 --- a/docs/source/api/enums/ReactionType.rst +++ b/docs/source/api/enums/ReactionType.rst @@ -1,7 +1,7 @@ ReactionType ============ -.. autoclass:: pyrogram.enums.ReactionType() +.. autoclass:: pyrofork.enums.ReactionType() :members: .. raw:: html diff --git a/docs/source/api/enums/SentCodeType.rst b/docs/source/api/enums/SentCodeType.rst index d738b195..5010a6a6 100644 --- a/docs/source/api/enums/SentCodeType.rst +++ b/docs/source/api/enums/SentCodeType.rst @@ -1,7 +1,7 @@ SentCodeType ============ -.. autoclass:: pyrogram.enums.SentCodeType() +.. autoclass:: pyrofork.enums.SentCodeType() :members: .. raw:: html diff --git a/docs/source/api/enums/StoriesPrivacyRules.rst b/docs/source/api/enums/StoriesPrivacyRules.rst index 995cd073..1a5783af 100644 --- a/docs/source/api/enums/StoriesPrivacyRules.rst +++ b/docs/source/api/enums/StoriesPrivacyRules.rst @@ -1,7 +1,7 @@ StoriesPrivacyRules =================== -.. autoclass:: pyrogram.enums.StoriesPrivacyRules() +.. autoclass:: pyrofork.enums.StoriesPrivacyRules() :members: .. raw:: html diff --git a/docs/source/api/enums/StoryPrivacy.rst b/docs/source/api/enums/StoryPrivacy.rst index 8438febf..5ca8c11b 100644 --- a/docs/source/api/enums/StoryPrivacy.rst +++ b/docs/source/api/enums/StoryPrivacy.rst @@ -1,7 +1,7 @@ StoryPrivacy ============ -.. autoclass:: pyrogram.enums.StoryPrivacy() +.. autoclass:: pyrofork.enums.StoryPrivacy() :members: .. raw:: html diff --git a/docs/source/api/enums/UserStatus.rst b/docs/source/api/enums/UserStatus.rst index c9a77e1b..d0a12c74 100644 --- a/docs/source/api/enums/UserStatus.rst +++ b/docs/source/api/enums/UserStatus.rst @@ -1,7 +1,7 @@ UserStatus ========== -.. autoclass:: pyrogram.enums.UserStatus() +.. autoclass:: pyrofork.enums.UserStatus() :members: .. raw:: html diff --git a/docs/source/api/enums/index.rst b/docs/source/api/enums/index.rst index aca1a605..bf3c705c 100644 --- a/docs/source/api/enums/index.rst +++ b/docs/source/api/enums/index.rst @@ -8,7 +8,7 @@ to apply only a valid value among the expected ones. ----- -.. currentmodule:: pyrogram.enums +.. currentmodule:: pyrofork.enums .. autosummary:: :nosignatures: diff --git a/docs/source/api/errors/index.rst b/docs/source/api/errors/index.rst index 476c1821..08906776 100644 --- a/docs/source/api/errors/index.rst +++ b/docs/source/api/errors/index.rst @@ -1,13 +1,13 @@ RPC Errors ========== -All Pyrofork API errors live inside the ``errors`` sub-package: ``pyrogram.errors``. +All Pyrofork API errors live inside the ``errors`` sub-package: ``pyrofork.errors``. The errors ids listed here are shown as *UPPER_SNAKE_CASE*, but the actual exception names to import from Pyrofork follow the usual *PascalCase* convention. .. code-block:: python - from pyrogram.errors import FloodWait + from pyrofork.errors import FloodWait try: ... diff --git a/docs/source/api/filters.rst b/docs/source/api/filters.rst index eb3c9522..a94d94e5 100644 --- a/docs/source/api/filters.rst +++ b/docs/source/api/filters.rst @@ -7,5 +7,5 @@ Filters are objects that can be used to filter the content of incoming updates. Details ------- -.. automodule:: pyrogram.filters +.. automodule:: pyrofork.filters :members: diff --git a/docs/source/api/handlers.rst b/docs/source/api/handlers.rst index cfe99bbe..e46e88bc 100644 --- a/docs/source/api/handlers.rst +++ b/docs/source/api/handlers.rst @@ -6,8 +6,8 @@ For a much more convenient way of registering callback functions have a look at .. code-block:: python - from pyrogram import Client - from pyrogram.handlers import MessageHandler + from pyrofork import Client + from pyrofork.handlers import MessageHandler app = Client("my_account") @@ -27,7 +27,7 @@ For a much more convenient way of registering callback functions have a look at ----- -.. currentmodule:: pyrogram.handlers +.. currentmodule:: pyrofork.handlers Index ----- diff --git a/docs/source/conf.py b/docs/source/conf.py index a6163641..c9e49e08 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -22,7 +22,7 @@ import sys sys.path.insert(0, os.path.abspath("../..")) -from pyrogram import __version__ +from pyrofork import __version__ from pygments.styles.friendly import FriendlyStyle @@ -102,11 +102,11 @@ html_theme_options = { ], } -html_logo = "../resources/static/img/pyrogram.png" +html_logo = "../resources/static/img/pyrofork.png" html_favicon = "../resources/static/img/favicon.ico" latex_engine = "xelatex" -latex_logo = "../resources/static/img/pyrogram.png" +latex_logo = "../resources/static/img/pyrofork.png" latex_elements = { "pointsize": "12pt", diff --git a/docs/source/faq/how-to-avoid-flood-waits.rst b/docs/source/faq/how-to-avoid-flood-waits.rst index 06d1cdc2..13005f58 100644 --- a/docs/source/faq/how-to-avoid-flood-waits.rst +++ b/docs/source/faq/how-to-avoid-flood-waits.rst @@ -10,7 +10,7 @@ The following shows how to catch the exception in your code and wait the require .. code-block:: python import asyncio - from pyrogram.errors import FloodWait + from pyrofork.errors import FloodWait ... try: diff --git a/docs/source/index.rst b/docs/source/index.rst index 83d8c523..4fbb4ebf 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -5,7 +5,7 @@ Welcome to Pyrofork

-

PyroFork

+

Pyrofork

@@ -28,7 +28,7 @@ Welcome to Pyrofork .. code-block:: python - from pyrogram import Client, filters + from pyrofork import Client, filters app = Client("my_account") diff --git a/docs/source/intro/install.rst b/docs/source/intro/install.rst index ceeecbda..31f7faba 100644 --- a/docs/source/intro/install.rst +++ b/docs/source/intro/install.rst @@ -43,8 +43,8 @@ If no error shows up you are good to go. .. parsed-literal:: - >>> import pyrogram - >>> pyrogram.__version__ + >>> import pyrofork + >>> pyrofork.__version__ 'x.y.z' .. _`Github repo`: http://github.com/Mayuri-Chan/pyrofork diff --git a/docs/source/intro/quickstart.rst b/docs/source/intro/quickstart.rst index 9aad7aa9..ecdeb2f4 100644 --- a/docs/source/intro/quickstart.rst +++ b/docs/source/intro/quickstart.rst @@ -21,7 +21,7 @@ Get Pyrofork Real Fast .. code-block:: python import asyncio - from pyrogram import Client + from pyrofork import Client api_id = 12345 api_hash = "0123456789abcdef0123456789abcdef" diff --git a/docs/source/start/auth.rst b/docs/source/start/auth.rst index e8172d99..78e3bf9c 100644 --- a/docs/source/start/auth.rst +++ b/docs/source/start/auth.rst @@ -16,12 +16,12 @@ User Authorization In order to use the API, Telegram requires that users be authorized via their phone numbers. Pyrofork automatically manages this process, all you need to do is create an instance of the -:class:`~pyrogram.Client` class by passing to it a ``name`` of your choice (e.g.: "my_account") and call -the :meth:`~pyrogram.Client.run` method: +:class:`~pyrofork.Client` class by passing to it a ``name`` of your choice (e.g.: "my_account") and call +the :meth:`~pyrofork.Client.run` method: .. code-block:: python - from pyrogram import Client + from pyrofork import Client api_id = 12345 api_hash = "0123456789abcdef0123456789abcdef" @@ -63,7 +63,7 @@ after the session name, which will be ``my_bot.session`` for the example below. .. code-block:: python - from pyrogram import Client + from pyrofork import Client api_id = 12345 api_hash = "0123456789abcdef0123456789abcdef" @@ -87,7 +87,7 @@ after the session name, which will be ``my_bot.session`` for the example below. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") app.run() \ No newline at end of file diff --git a/docs/source/start/errors.rst b/docs/source/start/errors.rst index e53edbb5..0adc0d73 100644 --- a/docs/source/start/errors.rst +++ b/docs/source/start/errors.rst @@ -6,7 +6,7 @@ Pyrofork errors all live inside the ``errors`` package: .. code-block:: python - from pyrogram import errors + from pyrofork import errors .. contents:: Contents :backlinks: none @@ -23,7 +23,7 @@ This error is raised every time a method call against Telegram's API was unsucce .. code-block:: python - from pyrogram.errors import RPCError + from pyrofork.errors import RPCError .. warning:: @@ -38,7 +38,7 @@ provides categories of errors, which are named after the common HTTP errors and .. code-block:: python - from pyrogram.errors import BadRequest, Forbidden, ... + from pyrofork.errors import BadRequest, Forbidden, ... - :doc:`303 - SeeOther <../api/errors/see-other>` - :doc:`400 - BadRequest <../api/errors/bad-request>` @@ -56,7 +56,7 @@ issue. For example: .. code-block:: python - from pyrogram.errors import FloodWait + from pyrofork.errors import FloodWait These errors subclass directly from the category of errors they belong to, which in turn subclass from the father ``RPCError``, thus building a class of error hierarchy such as this: @@ -91,7 +91,7 @@ The value is stored in the ``value`` attribute of the exception object: .. code-block:: python import asyncio - from pyrogram.errors import FloodWait + from pyrofork.errors import FloodWait ... try: diff --git a/docs/source/start/examples/bot_keyboards.rst b/docs/source/start/examples/bot_keyboards.rst index a98389a3..49469c51 100644 --- a/docs/source/start/examples/bot_keyboards.rst +++ b/docs/source/start/examples/bot_keyboards.rst @@ -11,8 +11,8 @@ like send_audio(), send_document(), send_location(), etc... .. code-block:: python - from pyrogram import Client - from pyrogram.types import (ReplyKeyboardMarkup, InlineKeyboardMarkup, + from pyrofork import Client + from pyrofork.types import (ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton) # Create a client using your bot token @@ -53,11 +53,11 @@ like send_audio(), send_document(), send_location(), etc... [ # Second row InlineKeyboardButton( # Opens the inline interface "Choose chat", - switch_inline_query="pyrogram" + switch_inline_query="pyrofork" ), InlineKeyboardButton( # Opens the inline interface in the current chat "Inline here", - switch_inline_query_current_chat="pyrogram" + switch_inline_query_current_chat="pyrofork" ) ] ] diff --git a/docs/source/start/examples/callback_queries.rst b/docs/source/start/examples/callback_queries.rst index 64da57b3..9cf931e2 100644 --- a/docs/source/start/examples/callback_queries.rst +++ b/docs/source/start/examples/callback_queries.rst @@ -6,7 +6,7 @@ It uses the @on_callback_query decorator to register a CallbackQueryHandler. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_bot", bot_token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11") diff --git a/docs/source/start/examples/echo_bot.rst b/docs/source/start/examples/echo_bot.rst index de8288b5..34841699 100644 --- a/docs/source/start/examples/echo_bot.rst +++ b/docs/source/start/examples/echo_bot.rst @@ -8,7 +8,7 @@ It uses the ``@on_message`` decorator to register a ``MessageHandler`` and appli .. code-block:: python - from pyrogram import Client, filters + from pyrofork import Client, filters app = Client("my_account") diff --git a/docs/source/start/examples/get_chat_history.rst b/docs/source/start/examples/get_chat_history.rst index 59939948..e69a6aaf 100644 --- a/docs/source/start/examples/get_chat_history.rst +++ b/docs/source/start/examples/get_chat_history.rst @@ -5,7 +5,7 @@ This example shows how to get the full message history of a chat, starting from .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") diff --git a/docs/source/start/examples/get_chat_members.rst b/docs/source/start/examples/get_chat_members.rst index 26636ca3..4c427898 100644 --- a/docs/source/start/examples/get_chat_members.rst +++ b/docs/source/start/examples/get_chat_members.rst @@ -5,7 +5,7 @@ This example shows how to get all the members of a chat. .. code-block:: python - from pyrogram import Client + from pyrofork import Client # Target channel/supergroup TARGET = -100123456789 diff --git a/docs/source/start/examples/get_dialogs.rst b/docs/source/start/examples/get_dialogs.rst index e5b10609..01065307 100644 --- a/docs/source/start/examples/get_dialogs.rst +++ b/docs/source/start/examples/get_dialogs.rst @@ -5,7 +5,7 @@ This example shows how to get the full dialogs list (as user). .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") diff --git a/docs/source/start/examples/hello_world.rst b/docs/source/start/examples/hello_world.rst index 16480d9f..1b44c3d1 100644 --- a/docs/source/start/examples/hello_world.rst +++ b/docs/source/start/examples/hello_world.rst @@ -5,7 +5,7 @@ This example demonstrates a basic API usage .. code-block:: python - from pyrogram import Client + from pyrofork import Client # Create a new Client instance app = Client("my_account") diff --git a/docs/source/start/examples/index.rst b/docs/source/start/examples/index.rst index d3d2a100..0cc9eb98 100644 --- a/docs/source/start/examples/index.rst +++ b/docs/source/start/examples/index.rst @@ -28,7 +28,7 @@ to give you a basic idea. :doc:`bot_keyboards`, "Send normal and inline keyboards using regular bots" :doc:`raw_updates`, "Handle raw updates (old, should be avoided)" -For more advanced examples, see https://snippets.pyrogram.org. +For more advanced examples, see https://snippets.pyrofork.org. .. toctree:: :hidden: diff --git a/docs/source/start/examples/inline_queries.rst b/docs/source/start/examples/inline_queries.rst index 537762e4..8e300245 100644 --- a/docs/source/start/examples/inline_queries.rst +++ b/docs/source/start/examples/inline_queries.rst @@ -3,13 +3,13 @@ inline_queries This example shows how to handle inline queries. -Two results are generated when users invoke the bot inline mode, e.g.: @pyrogrambot hi. +Two results are generated when users invoke the bot inline mode, e.g.: @pyroforkbot hi. It uses the @on_inline_query decorator to register an InlineQueryHandler. .. code-block:: python - from pyrogram import Client - from pyrogram.types import (InlineQueryResultArticle, InputTextMessageContent, + from pyrofork import Client + from pyrofork.types import (InlineQueryResultArticle, InputTextMessageContent, InlineKeyboardMarkup, InlineKeyboardButton) app = Client("my_bot", bot_token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11") diff --git a/docs/source/start/examples/raw_updates.rst b/docs/source/start/examples/raw_updates.rst index 463a45a8..4a198c80 100644 --- a/docs/source/start/examples/raw_updates.rst +++ b/docs/source/start/examples/raw_updates.rst @@ -5,7 +5,7 @@ This example shows how to handle raw updates. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") diff --git a/docs/source/start/examples/use_inline_bots.rst b/docs/source/start/examples/use_inline_bots.rst index 8a2a72ac..8e4895d5 100644 --- a/docs/source/start/examples/use_inline_bots.rst +++ b/docs/source/start/examples/use_inline_bots.rst @@ -5,7 +5,7 @@ This example shows how to query an inline bot (as user). .. code-block:: python - from pyrogram import Client + from pyrofork import Client # Create a new Client app = Client("my_account") diff --git a/docs/source/start/examples/welcome_bot.rst b/docs/source/start/examples/welcome_bot.rst index 8610aca6..4baeb40f 100644 --- a/docs/source/start/examples/welcome_bot.rst +++ b/docs/source/start/examples/welcome_bot.rst @@ -6,7 +6,7 @@ to make it only work for specific messages in a specific chat. .. code-block:: python - from pyrogram import Client, emoji, filters + from pyrofork import Client, emoji, filters # Target chat. Can also be a list of multiple chat ids/usernames TARGET = -100123456789 diff --git a/docs/source/start/invoking.rst b/docs/source/start/invoking.rst index dc1beea5..9f9a3e99 100644 --- a/docs/source/start/invoking.rst +++ b/docs/source/start/invoking.rst @@ -18,7 +18,7 @@ Making API calls with Pyrofork is very simple. Here's a basic example we are goi .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -37,7 +37,7 @@ Step-by-step .. code-block:: python - from pyrogram import Client + from pyrofork import Client #. Now instantiate a new Client object, "my_account" is a session name of your choice. @@ -55,7 +55,7 @@ Step-by-step async with app: await app.send_message("me", "Hi!") -#. Finally, we tell Python to schedule our ``main()`` async function by using Pyrofork's :meth:`~pyrogram.Client.run` +#. Finally, we tell Python to schedule our ``main()`` async function by using Pyrofork's :meth:`~pyrofork.Client.run` method. .. code-block:: python @@ -66,15 +66,15 @@ Context Manager --------------- The ``async with`` statement starts a context manager, which is used as a shortcut for starting, executing and stopping -the Client, asynchronously. It does so by automatically calling :meth:`~pyrogram.Client.start` and -:meth:`~pyrogram.Client.stop` in a more convenient way which also gracefully stops the client, even in case of +the Client, asynchronously. It does so by automatically calling :meth:`~pyrofork.Client.start` and +:meth:`~pyrofork.Client.stop` in a more convenient way which also gracefully stops the client, even in case of unhandled exceptions in your code. Below there's the same example as above, but without the use of the context manager: .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -90,14 +90,14 @@ Below there's the same example as above, but without the use of the context mana Using asyncio.run() ------------------- -Alternatively to the :meth:`~pyrogram.Client.run` method, you can use Python's ``asyncio.run()`` to execute the main +Alternatively to the :meth:`~pyrofork.Client.run` method, you can use Python's ``asyncio.run()`` to execute the main function, with one little caveat: the Client instance (and possibly other asyncio resources you are going to use) must be instantiated inside the main function. .. code-block:: python import asyncio - from pyrogram import Client + from pyrofork import Client async def main(): diff --git a/docs/source/start/setup.rst b/docs/source/start/setup.rst index 0e667578..3c4d7767 100644 --- a/docs/source/start/setup.rst +++ b/docs/source/start/setup.rst @@ -32,7 +32,7 @@ Having the API key from the previous step in handy, we can now begin to configur .. code-block:: python - from pyrogram import Client + from pyrofork import Client api_id = 12345 api_hash = "0123456789abcdef0123456789abcdef" diff --git a/docs/source/start/updates.rst b/docs/source/start/updates.rst index 69781f94..129a74bc 100644 --- a/docs/source/start/updates.rst +++ b/docs/source/start/updates.rst @@ -24,18 +24,18 @@ function will be called back by the framework and its body executed. Registering a Handler --------------------- -To explain how handlers work let's examine the one which will be in charge for handling :class:`~pyrogram.types.Message` +To explain how handlers work let's examine the one which will be in charge for handling :class:`~pyrofork.types.Message` updates coming from all around your chats. Every other kind of handler shares the same setup logic and you should not have troubles settings them up once you learn from this section. Using Decorators ^^^^^^^^^^^^^^^^ -The most elegant way to register a message handler is by using the :meth:`~pyrogram.Client.on_message` decorator: +The most elegant way to register a message handler is by using the :meth:`~pyrofork.Client.on_message` decorator: .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -50,20 +50,20 @@ The most elegant way to register a message handler is by using the :meth:`~pyrog The defined function ``my_handler``, which accepts the two arguments *(client, message)*, will be the function that gets executed every time a new message arrives. -In the last line we see again the :meth:`~pyrogram.Client.run` method, this time used without any argument. -Its purpose here is simply to automatically :meth:`~pyrogram.Client.start`, keep the Client online so that it can listen -for updates and :meth:`~pyrogram.Client.stop` it once you hit ``CTRL+C``. +In the last line we see again the :meth:`~pyrofork.Client.run` method, this time used without any argument. +Its purpose here is simply to automatically :meth:`~pyrofork.Client.start`, keep the Client online so that it can listen +for updates and :meth:`~pyrofork.Client.stop` it once you hit ``CTRL+C``. Using add_handler() ^^^^^^^^^^^^^^^^^^^ -The :meth:`~pyrogram.Client.add_handler` method takes any handler instance that wraps around your defined callback +The :meth:`~pyrofork.Client.add_handler` method takes any handler instance that wraps around your defined callback function and registers it in your Client. It is useful in case you want to programmatically add handlers. .. code-block:: python - from pyrogram import Client - from pyrogram.handlers import MessageHandler + from pyrofork import Client + from pyrofork.handlers import MessageHandler async def my_function(client, message): diff --git a/docs/source/topics/advanced-usage.rst b/docs/source/topics/advanced-usage.rst index d190ef96..547a41df 100644 --- a/docs/source/topics/advanced-usage.rst +++ b/docs/source/topics/advanced-usage.rst @@ -18,7 +18,7 @@ Telegram Raw API ---------------- If you can't find a high-level method for your needs or if you want complete, low-level access to the whole -Telegram API, you have to use the raw :mod:`~pyrogram.raw.functions` and :mod:`~pyrogram.raw.types`. +Telegram API, you have to use the raw :mod:`~pyrofork.raw.functions` and :mod:`~pyrofork.raw.types`. As already hinted, raw functions and types can be less convenient. This section will therefore explain some pitfalls to take into consideration when working with the raw API. @@ -34,11 +34,11 @@ Unlike the :doc:`methods <../api/methods/index>` found in Pyrofork's API, which functions to be invoked from the raw Telegram API have a different way of usage. First of all, both :doc:`raw functions <../telegram/functions/index>` and :doc:`raw types <../telegram/types/index>` -live in their respective packages (and sub-packages): ``pyrogram.raw.functions``, ``pyrogram.raw.types``. They all exist +live in their respective packages (and sub-packages): ``pyrofork.raw.functions``, ``pyrofork.raw.types``. They all exist as Python classes, meaning you need to create an instance of each every time you need them and fill them in with the correct values using named arguments. -Next, to actually invoke the raw function you have to use the :meth:`~pyrogram.Client.invoke` method provided by the +Next, to actually invoke the raw function you have to use the :meth:`~pyrofork.Client.invoke` method provided by the Client class and pass the function object you created. Here's some examples: @@ -47,8 +47,8 @@ Here's some examples: .. code-block:: python - from pyrogram import Client - from pyrogram.raw import functions + from pyrofork import Client + from pyrofork.raw import functions async with Client("my_account") as app: await app.invoke( @@ -62,8 +62,8 @@ Here's some examples: .. code-block:: python - from pyrogram import Client - from pyrogram.raw import functions, types + from pyrofork import Client + from pyrofork.raw import functions, types async with Client("my_account") as app: # Set online status @@ -76,8 +76,8 @@ Here's some examples: .. code-block:: python - from pyrogram import Client - from pyrogram.raw import functions, types + from pyrofork import Client + from pyrofork.raw import functions, types async with Client("my_account") as app: r = await app.invoke( @@ -98,12 +98,12 @@ sending messages with IDs only thanks to cached access hashes. There are three different InputPeer types, one for each kind of Telegram entity. Whenever an InputPeer is needed you must pass one of these: -- :class:`~pyrogram.raw.types.InputPeerUser` - Users -- :class:`~pyrogram.raw.types.InputPeerChat` - Basic Chats -- :class:`~pyrogram.raw.types.InputPeerChannel` - Channels & Supergroups +- :class:`~pyrofork.raw.types.InputPeerUser` - Users +- :class:`~pyrofork.raw.types.InputPeerChat` - Basic Chats +- :class:`~pyrofork.raw.types.InputPeerChannel` - Channels & Supergroups But you don't necessarily have to manually instantiate each object because Pyrofork already provides -:meth:`~pyrogram.Client.resolve_peer` as a convenience utility method that returns the correct InputPeer +:meth:`~pyrofork.Client.resolve_peer` as a convenience utility method that returns the correct InputPeer by accepting a peer ID only. Another thing to take into consideration about chat IDs is the way they are represented: they are all integers and diff --git a/docs/source/topics/create-filters.rst b/docs/source/topics/create-filters.rst index 0b90245d..bd113682 100644 --- a/docs/source/topics/create-filters.rst +++ b/docs/source/topics/create-filters.rst @@ -1,9 +1,9 @@ Creating Filters ================ -Pyrofork already provides lots of built-in :class:`~pyrogram.filters` to work with, but in case you can't find a +Pyrofork already provides lots of built-in :class:`~pyrofork.filters` to work with, but in case you can't find a specific one for your needs or want to build a custom filter by yourself you can use -:meth:`filters.create() `. +:meth:`filters.create() `. .. contents:: Contents :backlinks: none @@ -16,40 +16,40 @@ Custom Filters -------------- An example to demonstrate how custom filters work is to show how to create and use one for the -:class:`~pyrogram.handlers.CallbackQueryHandler`. Note that callback queries updates are only received by bots as result +:class:`~pyrofork.handlers.CallbackQueryHandler`. Note that callback queries updates are only received by bots as result of a user pressing an inline button attached to the bot's message; create and :doc:`authorize your bot <../start/auth>`, then send a message with an inline keyboard to yourself. This allows you to test your filter by pressing the inline button: .. code-block:: python - from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton + from pyrofork.types import InlineKeyboardMarkup, InlineKeyboardButton await app.send_message( "username", # Change this to your username or id "Pyrofork custom filter test", reply_markup=InlineKeyboardMarkup( - [[InlineKeyboardButton("Press me", "pyrogram")]] + [[InlineKeyboardButton("Press me", "pyrofork")]] ) ) Basic Filters ------------- -For this basic filter we will be using only the first parameter of :meth:`~pyrogram.filters.create`. +For this basic filter we will be using only the first parameter of :meth:`~pyrofork.filters.create`. The heart of a filter is its callback function, which accepts three arguments *(self, client, update)* and returns either ``True``, in case you want the update to pass the filter or ``False`` otherwise. -In this example we are matching the query data to "pyrogram", which means that the filter will only allow callback -queries containing "pyrogram" as data: +In this example we are matching the query data to "pyrofork", which means that the filter will only allow callback +queries containing "pyrofork" as data: .. code-block:: python - from pyrogram import filters + from pyrofork import filters async def func(_, __, query): - return query.data == "pyrogram" + return query.data == "pyrofork" static_data_filter = filters.create(func) @@ -61,14 +61,14 @@ Finally, the filter usage remains the same: .. code-block:: python @app.on_callback_query(static_data_filter) - async def pyrogram_data(_, query): + async def pyrofork_data(_, query): query.answer("it works!") Filters with Arguments ---------------------- -A more flexible filter would be one that accepts "pyrogram" or any other string as argument at usage time. -A dynamic filter like this will make use of named arguments for the :meth:`~pyrogram.filters.create` method and the +A more flexible filter would be one that accepts "pyrofork" or any other string as argument at usage time. +A dynamic filter like this will make use of named arguments for the :meth:`~pyrofork.filters.create` method and the first argument of the callback function, which is a reference to the filter object itself holding the extra data passed via named arguments. @@ -76,7 +76,7 @@ This is how a dynamic custom filter looks like: .. code-block:: python - from pyrogram import filters + from pyrofork import filters def dynamic_data_filter(data): async def func(flt, _, query): @@ -89,8 +89,8 @@ And finally its usage: .. code-block:: python - @app.on_callback_query(dynamic_data_filter("pyrogram")) - async def pyrogram_data(_, query): + @app.on_callback_query(dynamic_data_filter("pyrofork")) + async def pyrofork_data(_, query): query.answer("it works!") @@ -98,7 +98,7 @@ Method Calls Inside Filters --------------------------- The missing piece we haven't covered yet is the second argument of a filter callback function, namely, the ``client`` -argument. This is a reference to the :obj:`~pyrogram.Client` instance that is running the filter and it is useful in +argument. This is a reference to the :obj:`~pyrofork.Client` instance that is running the filter and it is useful in case you would like to make some API calls before deciding whether the filter should allow the update or not: .. code-block:: python diff --git a/docs/source/topics/debugging.rst b/docs/source/topics/debugging.rst index a99126a4..52661782 100644 --- a/docs/source/topics/debugging.rst +++ b/docs/source/topics/debugging.rst @@ -30,8 +30,8 @@ Consider the following code: me = await app.get_users("me") print(me) # User -This will show a JSON representation of the object returned by :meth:`~pyrogram.Client.get_users`, which is a -:class:`~pyrogram.types.User` instance, in this case. The output on your terminal will be something similar to this: +This will show a JSON representation of the object returned by :meth:`~pyrofork.Client.get_users`, which is a +:class:`~pyrofork.types.User` instance, in this case. The output on your terminal will be something similar to this: .. code-block:: json @@ -96,14 +96,14 @@ error. The correct way to get the object type is by using the built-in function .. code-block:: text - + And to check if an object is an instance of a given class, you use the built-in function ``isinstance()``: .. code-block:: python :name: this-py - from pyrogram.types import UserStatus + from pyrofork.types import UserStatus status = me.status print(isinstance(status, UserStatus)) diff --git a/docs/source/topics/more-on-updates.rst b/docs/source/topics/more-on-updates.rst index 2cb49ab1..46ebea2e 100644 --- a/docs/source/topics/more-on-updates.rst +++ b/docs/source/topics/more-on-updates.rst @@ -51,7 +51,7 @@ Or, if you want ``just_text`` to be executed *before* ``text_or_sticker`` (note async def just_text(client, message): print("Just Text") -With :meth:`~pyrogram.Client.add_handler` (without decorators) the same can be achieved with: +With :meth:`~pyrofork.Client.add_handler` (without decorators) the same can be achieved with: .. code-block:: python @@ -128,7 +128,7 @@ Example with ``raise StopPropagation``: .. code-block:: python - from pyrogram import StopPropagation + from pyrofork import StopPropagation @app.on_message(filters.private) async def _(client, message): @@ -197,7 +197,7 @@ Example with ``raise ContinuePropagation``: .. code-block:: python - from pyrogram import ContinuePropagation + from pyrofork import ContinuePropagation @app.on_message(filters.private) async def _(client, message): diff --git a/docs/source/topics/proxy.rst b/docs/source/topics/proxy.rst index 4a43e997..2906727a 100644 --- a/docs/source/topics/proxy.rst +++ b/docs/source/topics/proxy.rst @@ -19,7 +19,7 @@ you can omit ``username`` and ``password``. .. code-block:: python - from pyrogram import Client + from pyrofork import Client proxy = { "scheme": "socks5", # "socks4", "socks5" and "http" are supported diff --git a/docs/source/topics/scheduling.rst b/docs/source/topics/scheduling.rst index ffbb59f0..2294856d 100644 --- a/docs/source/topics/scheduling.rst +++ b/docs/source/topics/scheduling.rst @@ -27,7 +27,7 @@ Asynchronously from apscheduler.schedulers.asyncio import AsyncIOScheduler - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -49,7 +49,7 @@ Non-Asynchronously from apscheduler.schedulers.background import BackgroundScheduler - from pyrogram import Client + from pyrofork import Client app = Client("my_account") diff --git a/docs/source/topics/serializing.rst b/docs/source/topics/serializing.rst index f2e077e6..1caf28fc 100644 --- a/docs/source/topics/serializing.rst +++ b/docs/source/topics/serializing.rst @@ -35,12 +35,12 @@ For Machines - repr(obj) If you want to share or store objects for future references in a more compact way, you can use ``repr(obj)``. While still pretty much readable, this format is not intended for humans. The advantage of this format is that once you -serialize your object, you can use ``eval()`` to get back the original structure; just make sure to ``import pyrogram``, +serialize your object, you can use ``eval()`` to get back the original structure; just make sure to ``import pyrofork``, as the process requires the package to be in scope. .. code-block:: python - import pyrogram + import pyrofork ... diff --git a/docs/source/topics/smart-plugins.rst b/docs/source/topics/smart-plugins.rst index bf30a824..052ba6a4 100644 --- a/docs/source/topics/smart-plugins.rst +++ b/docs/source/topics/smart-plugins.rst @@ -51,8 +51,8 @@ after importing your modules, like this: .. code-block:: python - from pyrogram import Client, filters - from pyrogram.handlers import MessageHandler + from pyrofork import Client, filters + from pyrofork.handlers import MessageHandler from handlers import echo, echo_reversed @@ -72,8 +72,8 @@ after importing your modules, like this: app.run() This is already nice and doesn't add *too much* boilerplate code, but things can get boring still; you have to -manually ``import``, manually :meth:`~pyrogram.Client.add_handler` and manually instantiate each -:class:`~pyrogram.handlers.MessageHandler` object because you can't use decorators for your functions. +manually ``import``, manually :meth:`~pyrofork.Client.add_handler` and manually instantiate each +:class:`~pyrofork.handlers.MessageHandler` object because you can't use decorators for your functions. So, what if you could? Smart Plugins solve this issue by taking care of handlers registration automatically. Using Smart Plugins @@ -100,7 +100,7 @@ Setting up your Pyrofork project to accommodate Smart Plugins is pretty straight .. code-block:: python - from pyrogram import Client, filters + from pyrofork import Client, filters @Client.on_message(filters.text & filters.private) @@ -116,7 +116,7 @@ Setting up your Pyrofork project to accommodate Smart Plugins is pretty straight .. code-block:: python - from pyrogram import Client + from pyrofork import Client plugins = dict(root="plugins") @@ -263,7 +263,7 @@ Unloading ^^^^^^^^^ In order to unload a plugin, all you need to do is obtain a reference to it by importing the relevant module and call -:meth:`~pyrogram.Client.remove_handler` Client's method with your function's *handler* instance: +:meth:`~pyrofork.Client.remove_handler` Client's method with your function's *handler* instance: - ``main.py`` @@ -290,7 +290,7 @@ Loading ^^^^^^^ Similarly to the unloading process, in order to load again a previously unloaded plugin you do the same, but this time -using :meth:`~pyrogram.Client.add_handler` instead. Example: +using :meth:`~pyrofork.Client.add_handler` instead. Example: - ``main.py`` diff --git a/docs/source/topics/speedups.rst b/docs/source/topics/speedups.rst index 3767e055..6f21c13c 100644 --- a/docs/source/topics/speedups.rst +++ b/docs/source/topics/speedups.rst @@ -52,7 +52,7 @@ Call ``uvloop.install()`` before calling ``asyncio.run()`` or ``app.run()``. import asyncio import uvloop - from pyrogram import Client + from pyrofork import Client async def main(): @@ -70,7 +70,7 @@ The ``uvloop.install()`` call also needs to be placed before creating a Client i .. code-block:: python import uvloop - from pyrogram import Client + from pyrofork import Client uvloop.install() diff --git a/docs/source/topics/storage-engines.rst b/docs/source/topics/storage-engines.rst index 4b89e31e..2b70377e 100644 --- a/docs/source/topics/storage-engines.rst +++ b/docs/source/topics/storage-engines.rst @@ -21,7 +21,7 @@ authorization process from scratch each time, Pyrofork needs to store the genera Different Storage Engines ------------------------- -Pyrofork offers two different types of storage engines: a **File Storage** and a **Memory Storage**. +Pyrofork offers three different types of storage engines: a **File Storage**, a **Memory Storage** and a **Mongodb Storage**. These engines are well integrated in the framework and require a minimal effort to set up. Here's how they work: File Storage @@ -32,11 +32,11 @@ The database will be saved to disk as a single portable file and is designed to data whenever they are needed. To use this type of engine, simply pass any name of your choice to the ``name`` parameter of the -:obj:`~pyrogram.Client` constructor, as usual: +:obj:`~pyrofork.Client` constructor, as usual: .. code-block:: python - from pyrogram import Client + from pyrofork import Client async with Client("my_account") as app: print(await app.get_me()) @@ -49,11 +49,11 @@ Memory Storage ^^^^^^^^^^^^^^ In case you don't want to have any session file saved to disk, you can use an in-memory storage by passing True to the -``in_memory`` parameter of the :obj:`~pyrogram.Client` constructor: +``in_memory`` parameter of the :obj:`~pyrofork.Client` constructor: .. code-block:: python - from pyrogram import Client + from pyrofork import Client async with Client("my_account", in_memory=True) as app: print(await app.get_me()) @@ -65,14 +65,14 @@ Mongodb Storage ^^^^^^^^^^^^^^^ In case you want to have persistent session but you don't have persistent storage you can use mongodb storage by passing -mongodb config as ``dict`` to the ``mongodb`` parameter of the :obj:`~pyrogram.Client` constructor: +mongodb config as ``dict`` to the ``mongodb`` parameter of the :obj:`~pyrofork.Client` constructor: Using async_pymongo (Recommended for python3.9+): .. code-block:: python from async_pymongo import AsyncClient - from pyrogram import Client + from pyrofork import Client conn = AsyncClient("mongodb://...") @@ -85,7 +85,7 @@ Using motor: .. code-block:: python from motor.motor_asyncio import AsyncIOMotorClient - from pyrogram import Client + from pyrofork import Client conn = AsyncIOMotorClient("mongodb://...") @@ -93,17 +93,17 @@ Using motor: print(await app.get_me()) This storage engine is backed by MongoDB, a session will be created and saved to mongodb database. Any subsequent client -restart will make PyroFork search for a database named that way and the session database will be automatically loaded. +restart will make Pyrofork search for a database named that way and the session database will be automatically loaded. Session Strings --------------- In case you want to use an in-memory storage, but also want to keep access to the session you created, call -:meth:`~pyrogram.Client.export_session_string` anytime before stopping the client... +:meth:`~pyrofork.Client.export_session_string` anytime before stopping the client... .. code-block:: python - from pyrogram import Client + from pyrofork import Client async with Client("my_account", in_memory=True) as app: print(await app.export_session_string()) @@ -113,7 +113,7 @@ login using the same session; the storage used will still be in-memory: .. code-block:: python - from pyrogram import Client + from pyrofork import Client session_string = "...ZnUIFD8jsjXTb8g_vpxx48k1zkov9sapD-tzjz-S4WZv70M..." diff --git a/docs/source/topics/synchronous.rst b/docs/source/topics/synchronous.rst index a7a54f59..13acd518 100644 --- a/docs/source/topics/synchronous.rst +++ b/docs/source/topics/synchronous.rst @@ -31,7 +31,7 @@ Pyrofork is being used inside the main function with its asynchronous interface. .. code-block:: python import asyncio - from pyrogram import Client + from pyrofork import Client async def main(): @@ -48,7 +48,7 @@ As you can see, the non-async example becomes less cluttered. .. code-block:: python - from pyrogram import Client + from pyrofork import Client app = Client("my_account") @@ -83,6 +83,6 @@ Pyrofork. import uvloop uvloop.install() - from pyrogram import Client + from pyrofork import Client ... \ No newline at end of file diff --git a/docs/source/topics/test-servers.rst b/docs/source/topics/test-servers.rst index 10399e06..73c4c5d2 100644 --- a/docs/source/topics/test-servers.rst +++ b/docs/source/topics/test-servers.rst @@ -7,7 +7,7 @@ Telegram's test servers without hassle. All you need to do is start a new sessio .. code-block:: python - from pyrogram import Client + from pyrofork import Client async with Client("my_account_test", test_mode=True) as app: print(await app.get_me()) diff --git a/docs/source/topics/text-formatting.rst b/docs/source/topics/text-formatting.rst index 10772e8a..fa32d300 100644 --- a/docs/source/topics/text-formatting.rst +++ b/docs/source/topics/text-formatting.rst @@ -35,7 +35,7 @@ list of the basic styles currently supported by Pyrofork. - :strike:`strike` - :underline:`underline` - spoiler -- `text URL `_ +- `text URL `_ - `user text mention `_ - ``inline fixed-width code`` - .. code-block:: text @@ -47,8 +47,8 @@ list of the basic styles currently supported by Pyrofork. Markdown Style -------------- -To strictly use this mode, pass :obj:`~pyrogram.enums.ParseMode.MARKDOWN` to the *parse_mode* parameter when using -:meth:`~pyrogram.Client.send_message`. Use the following syntax in your message: +To strictly use this mode, pass :obj:`~pyrofork.enums.ParseMode.MARKDOWN` to the *parse_mode* parameter when using +:meth:`~pyrofork.Client.send_message`. Use the following syntax in your message: .. code-block:: text @@ -62,7 +62,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.ParseMode.MARKDOWN` to the ||spoiler|| - [text URL](https://pyrogram.org/) + [text URL](https://pyrofork.org/) [text user mention](tg://user?id=123456789) @@ -80,7 +80,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.ParseMode.MARKDOWN` to the .. code-block:: python - from pyrogram import enums + from pyrofork import enums await app.send_message( "me", @@ -90,7 +90,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.ParseMode.MARKDOWN` to the "--underline--, " "~~strike~~, " "||spoiler||, " - "[URL](https://pyrogram.org), " + "[URL](https://pyrofork.org), " "`code`, " "```" "for i in range(10):\n" @@ -103,8 +103,8 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.ParseMode.MARKDOWN` to the HTML Style ---------- -To strictly use this mode, pass :obj:`~pyrogram.enums.HTML` to the *parse_mode* parameter when using -:meth:`~pyrogram.Client.send_message`. The following tags are currently supported: +To strictly use this mode, pass :obj:`~pyrofork.enums.HTML` to the *parse_mode* parameter when using +:meth:`~pyrofork.Client.send_message`. The following tags are currently supported: .. code-block:: text @@ -118,7 +118,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.HTML` to the *parse_mode* spoiler - text URL + text URL inline mention @@ -138,7 +138,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.HTML` to the *parse_mode* .. code-block:: python - from pyrogram import enums + from pyrofork import enums await app.send_message( "me", @@ -148,7 +148,7 @@ To strictly use this mode, pass :obj:`~pyrogram.enums.HTML` to the *parse_mode* "underline, " "strike, " "spoiler, " - "URL, " + "URL, " "code\n\n" "
"
             "for i in range(10):\n"
@@ -193,11 +193,11 @@ Result:
     **bold**, *italic*
 
 If you don't like this behaviour you can always choose to only enable either Markdown or HTML in strict mode by passing
-:obj:`~pyrogram.enums.MARKDOWN` or :obj:`~pyrogram.enums.HTML` as argument to the *parse_mode* parameter.
+:obj:`~pyrofork.enums.MARKDOWN` or :obj:`~pyrofork.enums.HTML` as argument to the *parse_mode* parameter.
 
 .. code-block:: python
 
-    from pyrogram import enums
+    from pyrofork import enums
 
     await app.send_message("me", "**bold**, italic", parse_mode=enums.ParseMode.MARKDOWN)
     await app.send_message("me", "**bold**, italic", parse_mode=enums.ParseMode.HTML)
@@ -208,12 +208,12 @@ Result:
 
     \*\*bold**, *italic*
 
-In case you want to completely turn off the style parser, simply pass :obj:`~pyrogram.enums.DISABLED` to *parse_mode*.
+In case you want to completely turn off the style parser, simply pass :obj:`~pyrofork.enums.DISABLED` to *parse_mode*.
 The text will be sent as-is.
 
 .. code-block:: python
 
-    from pyrogram import enums
+    from pyrofork import enums
 
     await app.send_message("me", "**bold**, italic", parse_mode=enums.ParseMode.DISABLED)
 
diff --git a/docs/source/topics/use-filters.rst b/docs/source/topics/use-filters.rst
index a352fefa..e18501dc 100644
--- a/docs/source/topics/use-filters.rst
+++ b/docs/source/topics/use-filters.rst
@@ -4,7 +4,7 @@ Using Filters
 So far we've seen :doc:`how to register a callback function <../start/updates>` that executes every time an update comes
 from the server, but there's much more than that to come.
 
-Here we'll discuss about :obj:`~pyrogram.filters`. Filters enable a fine-grain control over what kind of
+Here we'll discuss about :obj:`~pyrofork.filters`. Filters enable a fine-grain control over what kind of
 updates are allowed or not to be passed in your callback functions, based on their inner details.
 
 .. contents:: Contents
@@ -19,12 +19,12 @@ Single Filters
 
 Let's start right away with a simple example:
 
--   This example will show you how to **only** handle messages containing a :class:`~pyrogram.types.Sticker` object and
+-   This example will show you how to **only** handle messages containing a :class:`~pyrofork.types.Sticker` object and
     ignore any other message. Filters are passed as the first argument of the decorator:
 
     .. code-block:: python
 
-        from pyrogram import filters
+        from pyrofork import filters
 
 
         @app.on_message(filters.sticker)
@@ -36,8 +36,8 @@ Let's start right away with a simple example:
 
     .. code-block:: python
 
-        from pyrogram import filters
-        from pyrogram.handlers import MessageHandler
+        from pyrofork import filters
+        from pyrofork.handlers import MessageHandler
 
 
         async def my_handler(client, message):
@@ -76,7 +76,7 @@ Here are some examples:
 Advanced Filters
 ----------------
 
-Some filters, like :meth:`~pyrogram.filters.command` or :meth:`~pyrogram.filters.regex`
+Some filters, like :meth:`~pyrofork.filters.command` or :meth:`~pyrofork.filters.regex`
 can also accept arguments:
 
 -   Message is either a */start* or */help* **command**.
@@ -91,7 +91,7 @@ can also accept arguments:
 
     .. code-block:: python
 
-        @app.on_message(filters.regex("pyrogram"))
+        @app.on_message(filters.regex("pyrofork"))
         async def my_handler(client, message):
             print(message)
 
@@ -110,5 +110,5 @@ More handlers using different filters can also live together.
 
 
     @app.on_message(filters.chat("PyroforkChat"))
-    async def from_pyrogramchat(client, message):
+    async def from_pyroforkchat(client, message):
         print("New message in @PyroforkChat")
diff --git a/pyproject.toml b/pyproject.toml
index aa230739..58767256 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,7 +33,7 @@ classifiers = [
 keywords = ["telegram chat messenger mtproto api client library python"]
 
 [tool.hatch.version]
-path = "pyrogram/__init__.py"
+path = "pyrofork/__init__.py"
 
 # Used to call hatch_build.py
 [tool.hatch.build.hooks.custom]
@@ -89,4 +89,4 @@ exclude = [
 
 [tool.hatch.build.targets.wheel]
 ignore-vcs = true
-packages = ["pyrogram"]
+packages = ["pyrofork"]
diff --git a/pyrogram/__init__.py b/pyrofork/__init__.py
similarity index 96%
rename from pyrogram/__init__.py
rename to pyrofork/__init__.py
index 7209d27b..1c88edb0 100644
--- a/pyrogram/__init__.py
+++ b/pyrofork/__init__.py
@@ -17,8 +17,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-__fork_name__ = "PyroFork"
-__version__ = "2.3.17.post2"
+__version__ = "2.4.0"
 __license__ = "GNU Lesser General Public License v3.0 (LGPL-3.0)"
 __copyright__ = "Copyright (C) 2022-present Mayuri-Chan "
 
diff --git a/pyrogram/client.py b/pyrofork/client.py
similarity index 96%
rename from pyrogram/client.py
rename to pyrofork/client.py
index 71c94264..ab4844d8 100644
--- a/pyrogram/client.py
+++ b/pyrofork/client.py
@@ -35,30 +35,30 @@ from mimetypes import MimeTypes
 from pathlib import Path
 from typing import Union, List, Optional, Callable, AsyncGenerator
 
-import pyrogram
-from pyrogram import __version__, __license__
-from pyrogram import enums
-from pyrogram import raw
-from pyrogram import utils
-from pyrogram.crypto import aes
-from pyrogram.errors import CDNFileHashMismatch
-from pyrogram.errors import (
+import pyrofork
+from pyrofork import __version__, __license__
+from pyrofork import enums
+from pyrofork import raw
+from pyrofork import utils
+from pyrofork.crypto import aes
+from pyrofork.errors import CDNFileHashMismatch
+from pyrofork.errors import (
     SessionPasswordNeeded,
     VolumeLocNotFound, ChannelPrivate,
     BadRequest
 )
-from pyrogram.handlers.handler import Handler
-from pyrogram.methods import Methods
-from pyrogram.session import Auth, Session
-from pyrogram.storage import FileStorage, MemoryStorage, Storage
+from pyrofork.handlers.handler import Handler
+from pyrofork.methods import Methods
+from pyrofork.session import Auth, Session
+from pyrofork.storage import FileStorage, MemoryStorage, Storage
 try:
     import pymongo
 except Exception:
     pass
 else:
-    from pyrogram.storage import MongoStorage
-from pyrogram.types import User, TermsOfService
-from pyrogram.utils import ainput
+    from pyrofork.storage import MongoStorage
+from pyrofork.types import User, TermsOfService
+from pyrofork.utils import ainput
 from .dispatcher import Dispatcher
 from .file_id import FileId, FileType, ThumbnailSource
 from .filters import Filter
@@ -70,7 +70,7 @@ log = logging.getLogger(__name__)
 
 
 class Client(Methods):
-    """Pyrogram Client, the main means for interacting with Telegram.
+    """Pyrofork Client, the main means for interacting with Telegram.
 
     Parameters:
         name (``str``):
@@ -86,7 +86,7 @@ class Client(Methods):
 
         app_version (``str``, *optional*):
             Application version.
-            Defaults to "Pyrogram x.y.z".
+            Defaults to "Pyrofork x.y.z".
 
         device_model (``str``, *optional*):
             Device model.
@@ -129,7 +129,7 @@ class Client(Methods):
         in_memory (``bool``, *optional*):
             Pass True to start an in-memory session that will be discarded as soon as the client stops.
             In order to reconnect again using an in-memory session without having to login again, you can use
-            :meth:`~pyrogram.Client.export_session_string` before stopping the client to get a session string you can
+            :meth:`~pyrofork.Client.export_session_string` before stopping the client to get a session string you can
             pass to the ``session_string`` parameter.
             Defaults to False.
 
@@ -137,7 +137,7 @@ class Client(Methods):
             Mongodb config as dict, e.g.: *dict(connection=async_pymongo.AsyncClient("mongodb://..."), remove_peers=False)*.
             Only applicable for new sessions.
 
-        storage (:obj:`~pyrogram.storage.Storage`, *optional*):
+        storage (:obj:`~pyrofork.storage.Storage`, *optional*):
             Custom session storage.
 
         phone_number (``str``, *optional*):
@@ -158,13 +158,13 @@ class Client(Methods):
 
         workdir (``str``, *optional*):
             Define a custom working directory.
-            The working directory is the location in the filesystem where Pyrogram will store the session files.
+            The working directory is the location in the filesystem where Pyrofork will store the session files.
             Defaults to the parent directory of the main script.
 
         plugins (``dict``, *optional*):
             Smart Plugins settings as dict, e.g.: *dict(root="plugins")*.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             Set the global parse mode of the client. By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
@@ -198,7 +198,7 @@ class Client(Methods):
             Defaults to 1.
     """
 
-    APP_VERSION = f"Pyrogram {__version__}"
+    APP_VERSION = f"Pyrofork {__version__}"
     DEVICE_MODEL = f"{platform.python_implementation()} {platform.python_version()}"
     SYSTEM_VERSION = f"{platform.system()} {platform.release()}"
 
@@ -332,7 +332,7 @@ class Client(Methods):
         self.updates_watchdog_task = None
         self.updates_watchdog_event = asyncio.Event()
         self.last_update_time = datetime.now()
-        self.listeners = {listener_type: [] for listener_type in pyrogram.enums.ListenerTypes}
+        self.listeners = {listener_type: [] for listener_type in pyrofork.enums.ListenerTypes}
         self.loop = asyncio.get_event_loop()
 
     def __enter__(self):
@@ -369,8 +369,8 @@ class Client(Methods):
         if self.bot_token:
             return await self.sign_in_bot(self.bot_token)
 
-        print(f"Welcome to Pyrogram (version {__version__})")
-        print(f"Pyrogram is free software and comes with ABSOLUTELY NO WARRANTY. Licensed\n"
+        print(f"Welcome to Pyrofork (version {__version__})")
+        print(f"Pyrofork is free software and comes with ABSOLUTELY NO WARRANTY. Licensed\n"
               f"under the terms of the {__license__}.\n")
 
         while True:
@@ -490,14 +490,14 @@ class Client(Methods):
         global value by default.
 
         Parameters:
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
                 # Default combined mode: Markdown + HTML
                 await app.send_message("me", "1. **markdown** and html")
@@ -840,7 +840,7 @@ class Client(Methods):
             if isinstance(e, asyncio.CancelledError):
                 raise e
 
-            if isinstance(e, pyrogram.errors.FloodWait):
+            if isinstance(e, pyrofork.errors.FloodWait):
                 raise e
 
             return None
@@ -1063,9 +1063,9 @@ class Client(Methods):
                         raise e
                     finally:
                         await cdn_session.stop()
-            except pyrogram.StopTransmission:
+            except pyrofork.StopTransmission:
                 raise
-            except pyrogram.errors.FloodWait:
+            except pyrofork.errors.FloodWait:
                 raise
             except Exception as e:
                 log.exception(e)
diff --git a/pyrogram/connection/__init__.py b/pyrofork/connection/__init__.py
similarity index 61%
rename from pyrogram/connection/__init__.py
rename to pyrofork/connection/__init__.py
index 4665ce91..9dc28845 100644
--- a/pyrogram/connection/__init__.py
+++ b/pyrofork/connection/__init__.py
@@ -1,19 +1,20 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .connection import Connection
diff --git a/pyrogram/connection/connection.py b/pyrofork/connection/connection.py
similarity index 100%
rename from pyrogram/connection/connection.py
rename to pyrofork/connection/connection.py
diff --git a/pyrogram/connection/transport/__init__.py b/pyrofork/connection/transport/__init__.py
similarity index 60%
rename from pyrogram/connection/transport/__init__.py
rename to pyrofork/connection/transport/__init__.py
index 2d08832a..4536e971 100644
--- a/pyrogram/connection/transport/__init__.py
+++ b/pyrofork/connection/transport/__init__.py
@@ -1,19 +1,20 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .tcp import *
diff --git a/pyrogram/connection/transport/tcp/__init__.py b/pyrofork/connection/transport/tcp/__init__.py
similarity index 67%
rename from pyrogram/connection/transport/tcp/__init__.py
rename to pyrofork/connection/transport/tcp/__init__.py
index 3e23a883..9107c9ef 100644
--- a/pyrogram/connection/transport/tcp/__init__.py
+++ b/pyrofork/connection/transport/tcp/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .tcp import TCP
 from .tcp_abridged import TCPAbridged
diff --git a/pyrogram/connection/transport/tcp/tcp.py b/pyrofork/connection/transport/tcp/tcp.py
similarity index 91%
rename from pyrogram/connection/transport/tcp/tcp.py
rename to pyrofork/connection/transport/tcp/tcp.py
index 82ef033b..80288ded 100644
--- a/pyrogram/connection/transport/tcp/tcp.py
+++ b/pyrofork/connection/transport/tcp/tcp.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import ipaddress
diff --git a/pyrogram/connection/transport/tcp/tcp_abridged.py b/pyrofork/connection/transport/tcp/tcp_abridged.py
similarity index 80%
rename from pyrogram/connection/transport/tcp/tcp_abridged.py
rename to pyrofork/connection/transport/tcp/tcp_abridged.py
index 77d44cf4..f20e1b3c 100644
--- a/pyrogram/connection/transport/tcp/tcp_abridged.py
+++ b/pyrofork/connection/transport/tcp/tcp_abridged.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Optional
diff --git a/pyrogram/connection/transport/tcp/tcp_abridged_o.py b/pyrofork/connection/transport/tcp/tcp_abridged_o.py
similarity index 81%
rename from pyrogram/connection/transport/tcp/tcp_abridged_o.py
rename to pyrofork/connection/transport/tcp/tcp_abridged_o.py
index 6f57ab11..79980871 100644
--- a/pyrogram/connection/transport/tcp/tcp_abridged_o.py
+++ b/pyrofork/connection/transport/tcp/tcp_abridged_o.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 import os
 from typing import Optional
 
-import pyrogram
-from pyrogram.crypto import aes
+import pyrofork
+from pyrofork.crypto import aes
 from .tcp import TCP
 
 log = logging.getLogger(__name__)
@@ -58,7 +59,7 @@ class TCPAbridgedO(TCP):
     async def send(self, data: bytes, *args):
         length = len(data) // 4
         data = (bytes([length]) if length <= 126 else b"\x7f" + length.to_bytes(3, "little")) + data
-        payload = await self.loop.run_in_executor(pyrogram.crypto_executor, aes.ctr256_encrypt, data, *self.encrypt)
+        payload = await self.loop.run_in_executor(pyrofork.crypto_executor, aes.ctr256_encrypt, data, *self.encrypt)
 
         await super().send(payload)
 
@@ -83,4 +84,4 @@ class TCPAbridgedO(TCP):
         if data is None:
             return None
 
-        return await self.loop.run_in_executor(pyrogram.crypto_executor, aes.ctr256_decrypt, data, *self.decrypt)
+        return await self.loop.run_in_executor(pyrofork.crypto_executor, aes.ctr256_decrypt, data, *self.decrypt)
diff --git a/pyrogram/connection/transport/tcp/tcp_full.py b/pyrofork/connection/transport/tcp/tcp_full.py
similarity index 81%
rename from pyrogram/connection/transport/tcp/tcp_full.py
rename to pyrofork/connection/transport/tcp/tcp_full.py
index 8bd89000..df19b12c 100644
--- a/pyrogram/connection/transport/tcp/tcp_full.py
+++ b/pyrofork/connection/transport/tcp/tcp_full.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from binascii import crc32
diff --git a/pyrogram/connection/transport/tcp/tcp_intermediate.py b/pyrofork/connection/transport/tcp/tcp_intermediate.py
similarity index 77%
rename from pyrogram/connection/transport/tcp/tcp_intermediate.py
rename to pyrofork/connection/transport/tcp/tcp_intermediate.py
index b6aef335..9c2c9002 100644
--- a/pyrogram/connection/transport/tcp/tcp_intermediate.py
+++ b/pyrofork/connection/transport/tcp/tcp_intermediate.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from struct import pack, unpack
diff --git a/pyrogram/connection/transport/tcp/tcp_intermediate_o.py b/pyrofork/connection/transport/tcp/tcp_intermediate_o.py
similarity index 84%
rename from pyrogram/connection/transport/tcp/tcp_intermediate_o.py
rename to pyrofork/connection/transport/tcp/tcp_intermediate_o.py
index 48b2d445..96ea9ea7 100644
--- a/pyrogram/connection/transport/tcp/tcp_intermediate_o.py
+++ b/pyrofork/connection/transport/tcp/tcp_intermediate_o.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 import os
 from struct import pack, unpack
 from typing import Optional
 
-from pyrogram.crypto import aes
+from pyrofork.crypto import aes
 from .tcp import TCP
 
 log = logging.getLogger(__name__)
diff --git a/pyrogram/crypto/__init__.py b/pyrofork/crypto/__init__.py
similarity index 59%
rename from pyrogram/crypto/__init__.py
rename to pyrofork/crypto/__init__.py
index 46887cb7..c0ec805b 100644
--- a/pyrogram/crypto/__init__.py
+++ b/pyrofork/crypto/__init__.py
@@ -1,17 +1,18 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
diff --git a/pyrogram/crypto/aes.py b/pyrofork/crypto/aes.py
similarity index 89%
rename from pyrogram/crypto/aes.py
rename to pyrofork/crypto/aes.py
index 2e96f971..d91d7b43 100644
--- a/pyrogram/crypto/aes.py
+++ b/pyrofork/crypto/aes.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
@@ -53,7 +54,7 @@ except ImportError:
 
     log.warning(
         "TgCrypto is missing! "
-        "Pyrogram will work the same, but at a much slower speed. "
+        "Pyrofork will work the same, but at a much slower speed. "
         "More info: https://pyrofork.mayuri.my.id/topics/speedups"
     )
 
diff --git a/pyrogram/crypto/mtproto.py b/pyrofork/crypto/mtproto.py
similarity index 88%
rename from pyrogram/crypto/mtproto.py
rename to pyrofork/crypto/mtproto.py
index 6d1521a4..d34ec652 100644
--- a/pyrogram/crypto/mtproto.py
+++ b/pyrofork/crypto/mtproto.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from hashlib import sha256
 from io import BytesIO
 from os import urandom
 
-from pyrogram.errors import SecurityCheckMismatch
-from pyrogram.raw.core import Message, Long
+from pyrofork.errors import SecurityCheckMismatch
+from pyrofork.raw.core import Message, Long
 from . import aes
 
 
diff --git a/pyrogram/crypto/prime.py b/pyrofork/crypto/prime.py
similarity index 85%
rename from pyrogram/crypto/prime.py
rename to pyrofork/crypto/prime.py
index e919e22c..ee806525 100644
--- a/pyrogram/crypto/prime.py
+++ b/pyrofork/crypto/prime.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from random import randint
 
diff --git a/pyrogram/crypto/rsa.py b/pyrofork/crypto/rsa.py
similarity index 97%
rename from pyrogram/crypto/rsa.py
rename to pyrofork/crypto/rsa.py
index 25c23229..9c28166e 100644
--- a/pyrogram/crypto/rsa.py
+++ b/pyrofork/crypto/rsa.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from collections import namedtuple
 
diff --git a/pyrogram/dispatcher.py b/pyrofork/dispatcher.py
similarity index 91%
rename from pyrogram/dispatcher.py
rename to pyrofork/dispatcher.py
index 701e5fcb..a73cb44a 100644
--- a/pyrogram/dispatcher.py
+++ b/pyrofork/dispatcher.py
@@ -22,12 +22,12 @@ import inspect
 import logging
 from collections import OrderedDict
 
-import pyrogram
-from pyrogram import utils
-from pyrogram.handlers import (
+import pyrofork
+from pyrofork import utils
+from pyrofork.handlers import (
   CallbackQueryHandler, MessageHandler, EditedMessageHandler, DeletedMessagesHandler, MessageReactionUpdatedHandler, MessageReactionCountUpdatedHandler, UserStatusHandler, RawUpdateHandler, InlineQueryHandler, PollHandler, ConversationHandler, ChosenInlineResultHandler, ChatMemberUpdatedHandler, ChatJoinRequestHandler, StoryHandler
 )
-from pyrogram.raw.types import (
+from pyrofork.raw.types import (
     UpdateNewMessage, UpdateNewChannelMessage, UpdateNewScheduledMessage,
     UpdateEditMessage, UpdateEditChannelMessage,
     UpdateDeleteMessages, UpdateDeleteChannelMessages,
@@ -57,7 +57,7 @@ class Dispatcher:
     MESSAGE_BOT_NA_REACTION_UPDATES = (UpdateBotMessageReaction,)
     MESSAGE_BOT_A_REACTION_UPDATES = (UpdateBotMessageReactions,)
 
-    def __init__(self, client: "pyrogram.Client"):
+    def __init__(self, client: "pyrofork.Client"):
         self.client = client
         self.loop = asyncio.get_event_loop()
 
@@ -72,7 +72,7 @@ class Dispatcher:
 
         async def message_parser(update, users, chats):
             return (
-                await pyrogram.types.Message._parse(self.client, update.message, users, chats,
+                await pyrofork.types.Message._parse(self.client, update.message, users, chats,
                                                     is_scheduled=isinstance(update, UpdateNewScheduledMessage)),
                 MessageHandler
             )
@@ -94,61 +94,61 @@ class Dispatcher:
 
         async def callback_query_parser(update, users, chats):
             return (
-                await pyrogram.types.CallbackQuery._parse(self.client, update, users),
+                await pyrofork.types.CallbackQuery._parse(self.client, update, users),
                 CallbackQueryHandler
             )
 
         async def user_status_parser(update, users, chats):
             return (
-                pyrogram.types.User._parse_user_status(self.client, update),
+                pyrofork.types.User._parse_user_status(self.client, update),
                 UserStatusHandler
             )
 
         async def inline_query_parser(update, users, chats):
             return (
-                pyrogram.types.InlineQuery._parse(self.client, update, users),
+                pyrofork.types.InlineQuery._parse(self.client, update, users),
                 InlineQueryHandler
             )
 
         async def poll_parser(update, users, chats):
             return (
-                pyrogram.types.Poll._parse_update(self.client, update),
+                pyrofork.types.Poll._parse_update(self.client, update),
                 PollHandler
             )
 
         async def chosen_inline_result_parser(update, users, chats):
             return (
-                pyrogram.types.ChosenInlineResult._parse(self.client, update, users),
+                pyrofork.types.ChosenInlineResult._parse(self.client, update, users),
                 ChosenInlineResultHandler
             )
 
         async def chat_member_updated_parser(update, users, chats):
             return (
-                pyrogram.types.ChatMemberUpdated._parse(self.client, update, users, chats),
+                pyrofork.types.ChatMemberUpdated._parse(self.client, update, users, chats),
                 ChatMemberUpdatedHandler
             )
 
         async def chat_join_request_parser(update, users, chats):
             return (
-                pyrogram.types.ChatJoinRequest._parse(self.client, update, users, chats),
+                pyrofork.types.ChatJoinRequest._parse(self.client, update, users, chats),
                 ChatJoinRequestHandler
             )
 
         async def story_parser(update, users, chats):
             return (
-                await pyrogram.types.Story._parse(self.client, update.story, update.peer),
+                await pyrofork.types.Story._parse(self.client, update.story, update.peer),
                 StoryHandler
             )
             
         async def message_bot_na_reaction_parser(update, users, chats):
             return (
-                pyrogram.types.MessageReactionUpdated._parse(self.client, update, users, chats),
+                pyrofork.types.MessageReactionUpdated._parse(self.client, update, users, chats),
                 MessageReactionUpdatedHandler
             )
 
         async def message_bot_a_reaction_parser(update, users, chats):
             return (
-                pyrogram.types.MessageReactionCountUpdated._parse(self.client, update, users, chats),
+                pyrofork.types.MessageReactionCountUpdated._parse(self.client, update, users, chats),
                 MessageReactionCountUpdatedHandler
             )
 
@@ -273,15 +273,15 @@ class Dispatcher:
                                         self.client,
                                         *args
                                     )
-                            except pyrogram.StopPropagation:
+                            except pyrofork.StopPropagation:
                                 raise
-                            except pyrogram.ContinuePropagation:
+                            except pyrofork.ContinuePropagation:
                                 continue
                             except Exception as e:
                                 log.exception(e)
 
                             break
-            except pyrogram.StopPropagation:
+            except pyrofork.StopPropagation:
                 pass
             except Exception as e:
                 log.exception(e)
diff --git a/pyrogram/emoji.py b/pyrofork/emoji.py
similarity index 99%
rename from pyrogram/emoji.py
rename to pyrofork/emoji.py
index d135faf7..53bba4d2 100644
--- a/pyrogram/emoji.py
+++ b/pyrofork/emoji.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 GRINNING_FACE = "\U0001f600"
 GRINNING_FACE_WITH_BIG_EYES = "\U0001f603"
diff --git a/pyrogram/enums/__init__.py b/pyrofork/enums/__init__.py
similarity index 83%
rename from pyrogram/enums/__init__.py
rename to pyrofork/enums/__init__.py
index 15eadf27..4cd76f1a 100644
--- a/pyrogram/enums/__init__.py
+++ b/pyrofork/enums/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .chat_action import ChatAction
 from .chat_event_action import ChatEventAction
diff --git a/pyrogram/enums/auto_name.py b/pyrofork/enums/auto_name.py
similarity index 62%
rename from pyrogram/enums/auto_name.py
rename to pyrofork/enums/auto_name.py
index b43fa741..07288f37 100644
--- a/pyrogram/enums/auto_name.py
+++ b/pyrofork/enums/auto_name.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import Enum
 
@@ -24,4 +25,4 @@ class AutoName(Enum):
         return self.lower()
 
     def __repr__(self):
-        return f"pyrogram.enums.{self}"
+        return f"pyrofork.enums.{self}"
diff --git a/pyrogram/enums/chat_action.py b/pyrofork/enums/chat_action.py
similarity index 81%
rename from pyrogram/enums/chat_action.py
rename to pyrofork/enums/chat_action.py
index 167937e0..395c4992 100644
--- a/pyrogram/enums/chat_action.py
+++ b/pyrofork/enums/chat_action.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class ChatAction(AutoName):
-    """Chat action enumeration used in :obj:`~pyrogram.types.ChatEvent`."""
+    """Chat action enumeration used in :obj:`~pyrofork.types.ChatEvent`."""
 
     TYPING = raw.types.SendMessageTypingAction
     "Typing text message"
diff --git a/pyrogram/enums/chat_event_action.py b/pyrofork/enums/chat_event_action.py
similarity index 98%
rename from pyrogram/enums/chat_event_action.py
rename to pyrofork/enums/chat_event_action.py
index 12355b66..260b50d6 100644
--- a/pyrogram/enums/chat_event_action.py
+++ b/pyrofork/enums/chat_event_action.py
@@ -23,7 +23,7 @@ from .auto_name import AutoName
 
 
 class ChatEventAction(AutoName):
-    """Chat event action enumeration used in :meth:`~pyrogram.Client.get_chat_event_log`."""
+    """Chat event action enumeration used in :meth:`~pyrofork.Client.get_chat_event_log`."""
 
     DESCRIPTION_CHANGED = auto()
     "The chat description has been changed (see ``old_description`` and ``new_description``)"
diff --git a/pyrogram/enums/chat_member_status.py b/pyrofork/enums/chat_member_status.py
similarity index 68%
rename from pyrogram/enums/chat_member_status.py
rename to pyrofork/enums/chat_member_status.py
index 7fa9e8ec..bd7fabfc 100644
--- a/pyrogram/enums/chat_member_status.py
+++ b/pyrofork/enums/chat_member_status.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
@@ -22,7 +23,7 @@ from .auto_name import AutoName
 
 
 class ChatMemberStatus(AutoName):
-    """Chat member status enumeration used in :obj:`~pyrogram.types.ChatMember`."""
+    """Chat member status enumeration used in :obj:`~pyrofork.types.ChatMember`."""
 
     OWNER = auto()
     "Chat owner"
diff --git a/pyrogram/enums/chat_members_filter.py b/pyrofork/enums/chat_members_filter.py
similarity index 70%
rename from pyrogram/enums/chat_members_filter.py
rename to pyrofork/enums/chat_members_filter.py
index bf0e7ef3..ddeec776 100644
--- a/pyrogram/enums/chat_members_filter.py
+++ b/pyrofork/enums/chat_members_filter.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class ChatMembersFilter(AutoName):
-    """Chat members filter enumeration used in :meth:`~pyrogram.Client.get_chat_members`"""
+    """Chat members filter enumeration used in :meth:`~pyrofork.Client.get_chat_members`"""
 
     SEARCH = raw.types.ChannelParticipantsSearch
     "Search for members"
diff --git a/pyrogram/enums/chat_type.py b/pyrofork/enums/chat_type.py
similarity index 67%
rename from pyrogram/enums/chat_type.py
rename to pyrofork/enums/chat_type.py
index 5750e16d..85c0e03e 100644
--- a/pyrogram/enums/chat_type.py
+++ b/pyrofork/enums/chat_type.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
@@ -22,7 +23,7 @@ from .auto_name import AutoName
 
 
 class ChatType(AutoName):
-    """Chat type enumeration used in :obj:`~pyrogram.types.Chat`."""
+    """Chat type enumeration used in :obj:`~pyrofork.types.Chat`."""
 
     PRIVATE = auto()
     "Chat is a private chat with a user"
diff --git a/pyrogram/enums/listerner_types.py b/pyrofork/enums/listerner_types.py
similarity index 94%
rename from pyrogram/enums/listerner_types.py
rename to pyrofork/enums/listerner_types.py
index 2e9c8b50..2266d618 100644
--- a/pyrogram/enums/listerner_types.py
+++ b/pyrofork/enums/listerner_types.py
@@ -23,7 +23,7 @@ from .auto_name import AutoName
 
 
 class ListenerTypes(AutoName):
-    """Listener type enumeration used in :obj:`~pyrogram.types.Client`."""
+    """Listener type enumeration used in :obj:`~pyrofork.types.Client`."""
 
     MESSAGE = auto()
     "A Message"
diff --git a/pyrogram/enums/message_entity_type.py b/pyrofork/enums/message_entity_type.py
similarity index 77%
rename from pyrogram/enums/message_entity_type.py
rename to pyrofork/enums/message_entity_type.py
index 4db75f93..0fc051ac 100644
--- a/pyrogram/enums/message_entity_type.py
+++ b/pyrofork/enums/message_entity_type.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class MessageEntityType(AutoName):
-    """Message entity type enumeration used in :obj:`~pyrogram.types.MessageEntity`."""
+    """Message entity type enumeration used in :obj:`~pyrofork.types.MessageEntity`."""
 
     MENTION = raw.types.MessageEntityMention
     "``@username``"
@@ -33,13 +34,13 @@ class MessageEntityType(AutoName):
     "``$USD``"
 
     BOT_COMMAND = raw.types.MessageEntityBotCommand
-    "``/start@pyrogrambot``"
+    "``/start@pyroforkbot``"
 
     URL = raw.types.MessageEntityUrl
-    "``https://pyrogram.org`` (see ``url``)"
+    "``https://pyrofork.org`` (see ``url``)"
 
     EMAIL = raw.types.MessageEntityEmail
-    "``do-not-reply@pyrogram.org``"
+    "``do-not-reply@pyrofork.org``"
 
     PHONE_NUMBER = raw.types.MessageEntityPhone
     "``+1-123-456-7890``"
diff --git a/pyrogram/enums/message_media_type.py b/pyrofork/enums/message_media_type.py
similarity index 76%
rename from pyrogram/enums/message_media_type.py
rename to pyrofork/enums/message_media_type.py
index 722d3464..61d6fbb6 100644
--- a/pyrogram/enums/message_media_type.py
+++ b/pyrofork/enums/message_media_type.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
@@ -22,7 +23,7 @@ from .auto_name import AutoName
 
 
 class MessageMediaType(AutoName):
-    """Message media type enumeration used in :obj:`~pyrogram.types.Message`."""
+    """Message media type enumeration used in :obj:`~pyrofork.types.Message`."""
 
     AUDIO = auto()
     "Audio media"
diff --git a/pyrogram/enums/message_service_type.py b/pyrofork/enums/message_service_type.py
similarity index 97%
rename from pyrogram/enums/message_service_type.py
rename to pyrofork/enums/message_service_type.py
index fe7cf324..42fffae4 100644
--- a/pyrogram/enums/message_service_type.py
+++ b/pyrofork/enums/message_service_type.py
@@ -23,7 +23,7 @@ from .auto_name import AutoName
 
 
 class MessageServiceType(AutoName):
-    """Message service type enumeration used in :obj:`~pyrogram.types.Message`."""
+    """Message service type enumeration used in :obj:`~pyrofork.types.Message`."""
 
     NEW_CHAT_MEMBERS = auto()
     "New members join"
diff --git a/pyrogram/enums/messages_filter.py b/pyrofork/enums/messages_filter.py
similarity index 79%
rename from pyrogram/enums/messages_filter.py
rename to pyrofork/enums/messages_filter.py
index 67bfac63..eddc7015 100644
--- a/pyrogram/enums/messages_filter.py
+++ b/pyrofork/enums/messages_filter.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class MessagesFilter(AutoName):
-    """Messages filter enumeration used in :meth:`~pyrogram.Client.search_messages` and :meth:`~pyrogram.Client.search_global`"""
+    """Messages filter enumeration used in :meth:`~pyrofork.Client.search_messages` and :meth:`~pyrofork.Client.search_global`"""
 
     EMPTY = raw.types.InputMessagesFilterEmpty
     "Empty filter (any kind of messages)"
diff --git a/pyrogram/enums/next_code_type.py b/pyrofork/enums/next_code_type.py
similarity index 71%
rename from pyrogram/enums/next_code_type.py
rename to pyrofork/enums/next_code_type.py
index 7b3137a7..e0fe1c0f 100644
--- a/pyrogram/enums/next_code_type.py
+++ b/pyrofork/enums/next_code_type.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class NextCodeType(AutoName):
-    """Next code type enumeration used in :obj:`~pyrogram.types.SentCode`."""
+    """Next code type enumeration used in :obj:`~pyrofork.types.SentCode`."""
 
     CALL = raw.types.auth.CodeTypeCall
     "The code will be sent via a phone call. A synthesized voice will tell the user which verification code to input."
diff --git a/pyrogram/enums/parse_mode.py b/pyrofork/enums/parse_mode.py
similarity index 71%
rename from pyrogram/enums/parse_mode.py
rename to pyrofork/enums/parse_mode.py
index 26dc165a..6e2a19f3 100644
--- a/pyrogram/enums/parse_mode.py
+++ b/pyrofork/enums/parse_mode.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
diff --git a/pyrogram/enums/poll_type.py b/pyrofork/enums/poll_type.py
similarity index 62%
rename from pyrogram/enums/poll_type.py
rename to pyrofork/enums/poll_type.py
index 384592de..dcdd14c2 100644
--- a/pyrogram/enums/poll_type.py
+++ b/pyrofork/enums/poll_type.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
@@ -22,7 +23,7 @@ from .auto_name import AutoName
 
 
 class PollType(AutoName):
-    """Poll type enumeration used in :obj:`~pyrogram.types.Poll`."""
+    """Poll type enumeration used in :obj:`~pyrofork.types.Poll`."""
 
     QUIZ = auto()
     "Quiz poll"
diff --git a/pyrogram/enums/profile_color.py b/pyrofork/enums/profile_color.py
similarity index 93%
rename from pyrogram/enums/profile_color.py
rename to pyrofork/enums/profile_color.py
index b86c42b1..783dbf53 100644
--- a/pyrogram/enums/profile_color.py
+++ b/pyrofork/enums/profile_color.py
@@ -21,7 +21,7 @@ from .auto_name import AutoName
 
 
 class ProfileColor(AutoName):
-    """Profile color enumeration used in :meth:`~pyrogram.Client.update_color` and :obj:`~pyrogram.types.ChatColor`."""
+    """Profile color enumeration used in :meth:`~pyrofork.Client.update_color` and :obj:`~pyrofork.types.ChatColor`."""
 
     RED = 0
     "Red color."
diff --git a/pyrogram/enums/reaction_type.py b/pyrofork/enums/reaction_type.py
similarity index 94%
rename from pyrogram/enums/reaction_type.py
rename to pyrofork/enums/reaction_type.py
index 829de1ec..251dfe2f 100644
--- a/pyrogram/enums/reaction_type.py
+++ b/pyrofork/enums/reaction_type.py
@@ -21,7 +21,7 @@ from .auto_name import AutoName
 
 
 class ReactionType(AutoName):
-    """Reaction type enumeration used in :obj:`~pyrogram.types.ReactionType`."""
+    """Reaction type enumeration used in :obj:`~pyrofork.types.ReactionType`."""
     EMOJI = auto()
     """Emoji reaction type."""
 
diff --git a/pyrogram/enums/reply_color.py b/pyrofork/enums/reply_color.py
similarity index 95%
rename from pyrogram/enums/reply_color.py
rename to pyrofork/enums/reply_color.py
index 428297f6..327260ac 100644
--- a/pyrogram/enums/reply_color.py
+++ b/pyrofork/enums/reply_color.py
@@ -21,7 +21,7 @@ from .auto_name import AutoName
 
 
 class ReplyColor(AutoName):
-    """Reply color enumeration used in :meth:`~pyrogram.Client.update_color` and :obj:`~pyrogram.types.ChatColor`."""
+    """Reply color enumeration used in :meth:`~pyrofork.Client.update_color` and :obj:`~pyrofork.types.ChatColor`."""
 
     RED = 0
     "Red color."
diff --git a/pyrogram/enums/sent_code_type.py b/pyrofork/enums/sent_code_type.py
similarity index 74%
rename from pyrogram/enums/sent_code_type.py
rename to pyrofork/enums/sent_code_type.py
index 474ed6b0..0cad9aaf 100644
--- a/pyrogram/enums/sent_code_type.py
+++ b/pyrofork/enums/sent_code_type.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from .auto_name import AutoName
 
 
 class SentCodeType(AutoName):
-    """Sent code type enumeration used in :obj:`~pyrogram.types.SentCode`."""
+    """Sent code type enumeration used in :obj:`~pyrofork.types.SentCode`."""
 
     APP = raw.types.auth.SentCodeTypeApp
     "The code was sent through the telegram app."
diff --git a/pyrogram/enums/stories_privacy_rules.py b/pyrofork/enums/stories_privacy_rules.py
similarity index 95%
rename from pyrogram/enums/stories_privacy_rules.py
rename to pyrofork/enums/stories_privacy_rules.py
index 72728691..509a2955 100644
--- a/pyrogram/enums/stories_privacy_rules.py
+++ b/pyrofork/enums/stories_privacy_rules.py
@@ -22,7 +22,7 @@ from .auto_name import AutoName
 
 
 class StoriesPrivacyRules(AutoName):
-    """Stories privacy rules type enumeration used in :meth:`~pyrogram.Client.send_story` and :meth:`~pyrogram.Client.edit_story`."""
+    """Stories privacy rules type enumeration used in :meth:`~pyrofork.Client.send_story` and :meth:`~pyrofork.Client.edit_story`."""
 
     PUBLIC = auto()
     "Public stories"
diff --git a/pyrogram/enums/story_privacy.py b/pyrofork/enums/story_privacy.py
similarity index 94%
rename from pyrogram/enums/story_privacy.py
rename to pyrofork/enums/story_privacy.py
index 34367c8d..f384cd78 100644
--- a/pyrogram/enums/story_privacy.py
+++ b/pyrofork/enums/story_privacy.py
@@ -22,7 +22,7 @@ from .auto_name import AutoName
 
 
 class StoryPrivacy(AutoName):
-    """Story privacy type enumeration used in :obj:`~pyrogram.types.Story`."""
+    """Story privacy type enumeration used in :obj:`~pyrofork.types.Story`."""
 
     PUBLIC = auto()
     "Public stories"
diff --git a/pyrogram/enums/user_status.py b/pyrofork/enums/user_status.py
similarity index 69%
rename from pyrogram/enums/user_status.py
rename to pyrofork/enums/user_status.py
index c7c25234..4959f8a9 100644
--- a/pyrogram/enums/user_status.py
+++ b/pyrofork/enums/user_status.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from enum import auto
 
@@ -22,7 +23,7 @@ from .auto_name import AutoName
 
 
 class UserStatus(AutoName):
-    """User status enumeration used in :obj:`~pyrogram.types.User`."""
+    """User status enumeration used in :obj:`~pyrofork.types.User`."""
 
     ONLINE = auto()
     """User is online"""
diff --git a/pyrogram/errors/__init__.py b/pyrofork/errors/__init__.py
similarity index 86%
rename from pyrogram/errors/__init__.py
rename to pyrofork/errors/__init__.py
index c084f877..f74d8e57 100644
--- a/pyrogram/errors/__init__.py
+++ b/pyrofork/errors/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .exceptions import *
 from .pyromod import *
diff --git a/pyrogram/errors/pyromod/__init__.py b/pyrofork/errors/pyromod/__init__.py
similarity index 100%
rename from pyrogram/errors/pyromod/__init__.py
rename to pyrofork/errors/pyromod/__init__.py
diff --git a/pyrogram/errors/pyromod/listener_stopped.py b/pyrofork/errors/pyromod/listener_stopped.py
similarity index 100%
rename from pyrogram/errors/pyromod/listener_stopped.py
rename to pyrofork/errors/pyromod/listener_stopped.py
diff --git a/pyrogram/errors/pyromod/listener_timeout.py b/pyrofork/errors/pyromod/listener_timeout.py
similarity index 100%
rename from pyrogram/errors/pyromod/listener_timeout.py
rename to pyrofork/errors/pyromod/listener_timeout.py
diff --git a/pyrogram/errors/rpc_error.py b/pyrofork/errors/rpc_error.py
similarity index 84%
rename from pyrogram/errors/rpc_error.py
rename to pyrofork/errors/rpc_error.py
index 63375f19..d8daa8a3 100644
--- a/pyrogram/errors/rpc_error.py
+++ b/pyrofork/errors/rpc_error.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import re
 from datetime import datetime
 from importlib import import_module
 from typing import Type, Union
 
-from pyrogram import raw
-from pyrogram.raw.core import TLObject
+from pyrofork import raw
+from pyrofork.raw.core import TLObject
 from .exceptions.all import exceptions
 
 
@@ -78,7 +79,7 @@ class RPCError(Exception):
 
         if error_id not in exceptions[error_code]:
             raise getattr(
-                import_module("pyrogram.errors"),
+                import_module("pyrofork.errors"),
                 exceptions[error_code]["_"]
             )(value=f"[{error_code} {error_message}]",
               rpc_name=rpc_name,
@@ -89,7 +90,7 @@ class RPCError(Exception):
         value = value.group(1) if value is not None else value
 
         raise getattr(
-            import_module("pyrogram.errors"),
+            import_module("pyrofork.errors"),
             exceptions[error_code][error_id]
         )(value=value,
           rpc_name=rpc_name,
diff --git a/pyrogram/file_id.py b/pyrofork/file_id.py
similarity index 97%
rename from pyrogram/file_id.py
rename to pyrofork/file_id.py
index 1a54a49d..03c2ba7f 100644
--- a/pyrogram/file_id.py
+++ b/pyrofork/file_id.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import base64
 import logging
@@ -23,7 +24,7 @@ from enum import IntEnum
 from io import BytesIO
 from typing import List
 
-from pyrogram.raw.core import Bytes, String
+from pyrofork.raw.core import Bytes, String
 
 log = logging.getLogger(__name__)
 
diff --git a/pyrogram/filters.py b/pyrofork/filters.py
similarity index 91%
rename from pyrogram/filters.py
rename to pyrofork/filters.py
index bcb20c0e..e596243d 100644
--- a/pyrogram/filters.py
+++ b/pyrofork/filters.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import inspect
 import re
 from typing import Callable, List, Pattern, Union
 
-import pyrogram
-from pyrogram import enums
-from pyrogram.types import (
+import pyrofork
+from pyrofork import enums
+from pyrofork.types import (
     CallbackQuery,
     InlineKeyboardMarkup,
     InlineQuery,
@@ -34,7 +35,7 @@ from pyrogram.types import (
 
 
 class Filter:
-    async def __call__(self, client: "pyrogram.Client", update: Update):
+    async def __call__(self, client: "pyrofork.Client", update: Update):
         raise NotImplementedError
 
     def __invert__(self):
@@ -51,7 +52,7 @@ class InvertFilter(Filter):
     def __init__(self, base):
         self.base = base
 
-    async def __call__(self, client: "pyrogram.Client", update: Update):
+    async def __call__(self, client: "pyrofork.Client", update: Update):
         if inspect.iscoroutinefunction(self.base.__call__):
             x = await self.base(client, update)
         else:
@@ -69,7 +70,7 @@ class AndFilter(Filter):
         self.base = base
         self.other = other
 
-    async def __call__(self, client: "pyrogram.Client", update: Update):
+    async def __call__(self, client: "pyrofork.Client", update: Update):
         if inspect.iscoroutinefunction(self.base.__call__):
             x = await self.base(client, update)
         else:
@@ -100,7 +101,7 @@ class OrFilter(Filter):
         self.base = base
         self.other = other
 
-    async def __call__(self, client: "pyrogram.Client", update: Update):
+    async def __call__(self, client: "pyrofork.Client", update: Update):
         if inspect.iscoroutinefunction(self.base.__call__):
             x = await self.base(client, update)
         else:
@@ -139,9 +140,9 @@ def create(func: Callable, name: str = None, **kwargs) -> Filter:
             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). 
-            The *client* argument refers to the :obj:`~pyrogram.Client` that received the update.
+            The *client* argument refers to the :obj:`~pyrofork.Client` that received the update.
             The *update* argument type will vary depending on which `Handler `_ is coming from. 
-            For example, in a :obj:`~pyrogram.handlers.MessageHandler` the *update* argument will be a :obj:`~pyrogram.types.Message`; in a :obj:`~pyrogram.handlers.CallbackQueryHandler` the *update* will be a :obj:`~pyrogram.types.CallbackQuery`.
+            For example, in a :obj:`~pyrofork.handlers.MessageHandler` the *update* argument will be a :obj:`~pyrofork.types.Message`; in a :obj:`~pyrofork.handlers.CallbackQueryHandler` the *update* will be a :obj:`~pyrofork.types.CallbackQuery`.
             Your function body can then access the incoming update attributes and decide whether to allow it or not.
 
         name (``str``, *optional*):
@@ -150,7 +151,7 @@ def create(func: Callable, name: str = None, **kwargs) -> Filter:
 
         **kwargs (``any``, *optional*):
             Any keyword argument you would like to pass. Useful when creating parameterized custom filters, such as
-            :meth:`~pyrogram.filters.command` or :meth:`~pyrogram.filters.regex`.
+            :meth:`~pyrofork.filters.command` or :meth:`~pyrofork.filters.regex`.
     """
     return type(
         name or func.__name__ or CUSTOM_FILTER_NAME,
@@ -275,7 +276,7 @@ async def audio_filter(_, __, m: Message):
 
 
 audio = create(audio_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Audio` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Audio` objects."""
 
 
 # endregion
@@ -286,7 +287,7 @@ async def document_filter(_, __, m: Message):
 
 
 document = create(document_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Document` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Document` objects."""
 
 
 # endregion
@@ -297,7 +298,7 @@ async def photo_filter(_, __, m: Message):
 
 
 photo = create(photo_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Photo` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Photo` objects."""
 
 
 # endregion
@@ -308,7 +309,7 @@ async def sticker_filter(_, __, m: Message):
 
 
 sticker = create(sticker_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Sticker` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Sticker` objects."""
 
 
 # endregion
@@ -319,7 +320,7 @@ async def animation_filter(_, __, m: Message):
 
 
 animation = create(animation_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Animation` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Animation` objects."""
 
 
 # endregion
@@ -330,7 +331,7 @@ async def game_filter(_, __, m: Message):
 
 
 game = create(game_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Game` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Game` objects."""
 
 
 # endregion
@@ -341,7 +342,7 @@ async def video_filter(_, __, m: Message):
 
 
 video = create(video_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Video` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Video` objects."""
 
 
 # endregion
@@ -363,7 +364,7 @@ async def voice_filter(_, __, m: Message):
 
 
 voice = create(voice_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Voice` note objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Voice` note objects."""
 
 
 # endregion
@@ -374,7 +375,7 @@ async def video_note_filter(_, __, m: Message):
 
 
 video_note = create(video_note_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.VideoNote` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.VideoNote` objects."""
 
 
 # endregion
@@ -385,7 +386,7 @@ async def contact_filter(_, __, m: Message):
 
 
 contact = create(contact_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Contact` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Contact` objects."""
 
 
 # endregion
@@ -396,7 +397,7 @@ async def location_filter(_, __, m: Message):
 
 
 location = create(location_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Location` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Location` objects."""
 
 
 # endregion
@@ -407,7 +408,7 @@ async def venue_filter(_, __, m: Message):
 
 
 venue = create(venue_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Venue` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Venue` objects."""
 
 
 # endregion
@@ -429,7 +430,7 @@ async def poll_filter(_, __, m: Message):
 
 
 poll = create(poll_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Poll` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Poll` objects."""
 
 
 # endregion
@@ -440,7 +441,7 @@ async def dice_filter(_, __, m: Message):
 
 
 dice = create(dice_filter)
-"""Filter messages that contain :obj:`~pyrogram.types.Dice` objects."""
+"""Filter messages that contain :obj:`~pyrofork.types.Dice` objects."""
 
 
 # endregion
@@ -834,7 +835,7 @@ def command(commands: Union[str, List[str]], prefixes: Union[str, List[str]] = "
             The command or list of commands as string the filter should look for.
             Examples: "start", ["start", "help", "settings"]. When a message text containing
             a command arrives, the command itself and its arguments will be stored in the *command*
-            field of the :obj:`~pyrogram.types.Message`.
+            field of the :obj:`~pyrofork.types.Message`.
 
         prefixes (``str`` | ``list``, *optional*):
             A prefix or a list of prefixes as string the filter should look for.
@@ -847,7 +848,7 @@ def command(commands: Union[str, List[str]], prefixes: Union[str, List[str]] = "
     """
     command_re = re.compile(r"([\"'])(.*?)(?`_ are
     stored in the ``matches`` field of the update object itself.
diff --git a/pyrogram/handlers/__init__.py b/pyrofork/handlers/__init__.py
similarity index 100%
rename from pyrogram/handlers/__init__.py
rename to pyrofork/handlers/__init__.py
diff --git a/pyrogram/handlers/callback_query_handler.py b/pyrofork/handlers/callback_query_handler.py
similarity index 86%
rename from pyrogram/handlers/callback_query_handler.py
rename to pyrofork/handlers/callback_query_handler.py
index 88ea285f..88bdeb05 100644
--- a/pyrogram/handlers/callback_query_handler.py
+++ b/pyrofork/handlers/callback_query_handler.py
@@ -1,38 +1,39 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from asyncio import iscoroutinefunction
 from typing import Callable, Tuple
 
-import pyrogram
+import pyrofork
 
-from pyrogram.utils import PyromodConfig
-from pyrogram.types import CallbackQuery, Identifier, Listener
+from pyrofork.utils import PyromodConfig
+from pyrofork.types import CallbackQuery, Identifier, Listener
 
 from .handler import Handler
 
 
 class CallbackQueryHandler(Handler):
     """The CallbackQuery handler class. Used to handle callback queries coming from inline buttons.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_callback_query` decorator.
+    :meth:`~pyrofork.Client.on_callback_query` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -44,10 +45,10 @@ class CallbackQueryHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the message handler.
 
-        callback_query (:obj:`~pyrogram.types.CallbackQuery`):
+        callback_query (:obj:`~pyrofork.types.CallbackQuery`):
             The received callback query.
     """
 
@@ -85,7 +86,7 @@ class CallbackQueryHandler(Handler):
         )
 
     async def check_if_has_matching_listener(
-        self, client: "pyrogram.Client", query: CallbackQuery
+        self, client: "pyrofork.Client", query: CallbackQuery
     ) -> Tuple[bool, Listener]:
         """
         Checks if the CallbackQuery object has a matching listener.
@@ -99,7 +100,7 @@ class CallbackQueryHandler(Handler):
         data = self.compose_data_identifier(query)
 
         listener = client.get_listener_matching_with_data(
-            data, pyrogram.enums.ListenerTypes.CALLBACK_QUERY
+            data, pyrofork.enums.ListenerTypes.CALLBACK_QUERY
         )
 
         listener_does_match = False
@@ -118,7 +119,7 @@ class CallbackQueryHandler(Handler):
 
         return listener_does_match, listener
 
-    async def check(self, client: "pyrogram.Client", query: CallbackQuery):
+    async def check(self, client: "pyrofork.Client", query: CallbackQuery):
         """
         Checks if the CallbackQuery object has a matching listener or handler.
 
@@ -172,7 +173,7 @@ class CallbackQueryHandler(Handler):
         return listener_does_match or handler_does_match
 
     async def resolve_future_or_callback(
-        self, client: "pyrogram.Client", query: CallbackQuery, *args
+        self, client: "pyrofork.Client", query: CallbackQuery, *args
     ):
         """
         Resolves the future or calls the callback of the listener. Will call the original handler if no listener.
@@ -192,14 +193,14 @@ class CallbackQueryHandler(Handler):
             if listener.future and not listener.future.done():
                 listener.future.set_result(query)
 
-                raise pyrogram.StopPropagation
+                raise pyrofork.StopPropagation
             elif listener.callback:
                 if iscoroutinefunction(listener.callback):
                     await listener.callback(client, query, *args)
                 else:
                     listener.callback(client, query, *args)
 
-                raise pyrogram.StopPropagation
+                raise pyrofork.StopPropagation
             else:
                 raise ValueError("Listener must have either a future or a callback")
         else:
diff --git a/pyrogram/handlers/chat_join_request_handler.py b/pyrofork/handlers/chat_join_request_handler.py
similarity index 71%
rename from pyrogram/handlers/chat_join_request_handler.py
rename to pyrofork/handlers/chat_join_request_handler.py
index 54b8b86a..e2423d52 100644
--- a/pyrogram/handlers/chat_join_request_handler.py
+++ b/pyrofork/handlers/chat_join_request_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class ChatJoinRequestHandler(Handler):
     """The ChatJoinRequest handler class. Used to handle join chat requests.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`.
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`.
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_chat_join_request` decorator.
+    :meth:`~pyrofork.Client.on_chat_join_request` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -38,10 +39,10 @@ class ChatJoinRequestHandler(Handler):
             Pass one or more filters to allow only a subset of updates to be passed in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the handler.
 
-        chat_join_request (:obj:`~pyrogram.types.ChatJoinRequest`):
+        chat_join_request (:obj:`~pyrofork.types.ChatJoinRequest`):
             The received chat join request.
     """
 
diff --git a/pyrogram/handlers/chat_member_updated_handler.py b/pyrofork/handlers/chat_member_updated_handler.py
similarity index 71%
rename from pyrogram/handlers/chat_member_updated_handler.py
rename to pyrofork/handlers/chat_member_updated_handler.py
index a89e7e2b..2a00b71b 100644
--- a/pyrogram/handlers/chat_member_updated_handler.py
+++ b/pyrofork/handlers/chat_member_updated_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class ChatMemberUpdatedHandler(Handler):
     """The ChatMemberUpdated handler class. Used to handle changes in the status of a chat member.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`.
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`.
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_chat_member_updated` decorator.
+    :meth:`~pyrofork.Client.on_chat_member_updated` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -38,10 +39,10 @@ class ChatMemberUpdatedHandler(Handler):
             Pass one or more filters to allow only a subset of updates to be passed in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the handler.
 
-        chat_member_updated (:obj:`~pyrogram.types.ChatMemberUpdated`):
+        chat_member_updated (:obj:`~pyrofork.types.ChatMemberUpdated`):
             The received chat member update.
     """
 
diff --git a/pyrogram/handlers/chosen_inline_result_handler.py b/pyrofork/handlers/chosen_inline_result_handler.py
similarity index 72%
rename from pyrogram/handlers/chosen_inline_result_handler.py
rename to pyrofork/handlers/chosen_inline_result_handler.py
index 1c04f8f4..c24385b2 100644
--- a/pyrogram/handlers/chosen_inline_result_handler.py
+++ b/pyrofork/handlers/chosen_inline_result_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class ChosenInlineResultHandler(Handler):
     """The ChosenInlineResultHandler handler class. Used to handle chosen inline results coming from inline queries.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_chosen_inline_result` decorator.
+    :meth:`~pyrofork.Client.on_chosen_inline_result` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -39,10 +40,10 @@ class ChosenInlineResultHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the message handler.
 
-        chosen_inline_result (:obj:`~pyrogram.types.ChosenInlineResult`):
+        chosen_inline_result (:obj:`~pyrofork.types.ChosenInlineResult`):
             The received chosen inline result.
     """
 
diff --git a/pyrogram/handlers/conversation_handler.py b/pyrofork/handlers/conversation_handler.py
similarity index 80%
rename from pyrogram/handlers/conversation_handler.py
rename to pyrofork/handlers/conversation_handler.py
index 03de1e84..3e28cf3e 100644
--- a/pyrogram/handlers/conversation_handler.py
+++ b/pyrofork/handlers/conversation_handler.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import inspect
 from typing import Union
 
-import pyrogram
-from pyrogram.types import Message, CallbackQuery
+import pyrofork
+from pyrofork.types import Message, CallbackQuery
 from .message_handler import MessageHandler
 from .callback_query_handler import CallbackQueryHandler
 
@@ -30,7 +31,7 @@ class ConversationHandler(MessageHandler, CallbackQueryHandler):
     def __init__(self):
         self.waiters = {}
 
-    async def check(self, client: "pyrogram.Client", update: Union[Message, CallbackQuery]):
+    async def check(self, client: "pyrofork.Client", update: Union[Message, CallbackQuery]):
         if isinstance(update, Message) and update.outgoing:
             return False
 
diff --git a/pyrogram/handlers/deleted_messages_handler.py b/pyrofork/handlers/deleted_messages_handler.py
similarity index 72%
rename from pyrogram/handlers/deleted_messages_handler.py
rename to pyrofork/handlers/deleted_messages_handler.py
index ab9f8347..fb8e14a5 100644
--- a/pyrogram/handlers/deleted_messages_handler.py
+++ b/pyrofork/handlers/deleted_messages_handler.py
@@ -1,35 +1,36 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Callable
 
-import pyrogram
-from pyrogram.filters import Filter
-from pyrogram.types import Message
+import pyrofork
+from pyrofork.filters import Filter
+from pyrofork.types import Message
 from .handler import Handler
 
 
 class DeletedMessagesHandler(Handler):
     """The deleted messages handler class. Used to handle deleted messages coming from any chat
-    (private, group, channel). It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    (private, group, channel). It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_deleted_messages` decorator.
+    :meth:`~pyrofork.Client.on_deleted_messages` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -41,17 +42,17 @@ class DeletedMessagesHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the message handler.
 
-        messages (List of :obj:`~pyrogram.types.Message`):
+        messages (List of :obj:`~pyrofork.types.Message`):
             The deleted messages, as list.
     """
 
     def __init__(self, callback: Callable, filters: Filter = None):
         super().__init__(callback, filters)
 
-    async def check(self, client: "pyrogram.Client", messages: List[Message]):
+    async def check(self, client: "pyrofork.Client", messages: List[Message]):
         # Every message should be checked, if at least one matches the filter True is returned
         # otherwise, or if the list is empty, False is returned
         for message in messages:
diff --git a/pyrogram/handlers/disconnect_handler.py b/pyrofork/handlers/disconnect_handler.py
similarity index 71%
rename from pyrogram/handlers/disconnect_handler.py
rename to pyrofork/handlers/disconnect_handler.py
index 7420afd6..cf516e3b 100644
--- a/pyrogram/handlers/disconnect_handler.py
+++ b/pyrofork/handlers/disconnect_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class DisconnectHandler(Handler):
     """The Disconnect handler class. Used to handle disconnections. It is intended to be used with
-    :meth:`~pyrogram.Client.add_handler`
+    :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_disconnect` decorator.
+    :meth:`~pyrofork.Client.on_disconnect` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -34,7 +35,7 @@ class DisconnectHandler(Handler):
             as positional argument (look at the section below for a detailed description).
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself. Useful, for example, when you want to change the proxy before a new connection
             is established.
     """
diff --git a/pyrogram/handlers/edited_message_handler.py b/pyrofork/handlers/edited_message_handler.py
similarity index 71%
rename from pyrogram/handlers/edited_message_handler.py
rename to pyrofork/handlers/edited_message_handler.py
index 78deaf0f..4eefde73 100644
--- a/pyrogram/handlers/edited_message_handler.py
+++ b/pyrofork/handlers/edited_message_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class EditedMessageHandler(Handler):
     """The EditedMessage handler class. Used to handle edited messages.
-     It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+     It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_edited_message` decorator.
+    :meth:`~pyrofork.Client.on_edited_message` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -38,10 +39,10 @@ class EditedMessageHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the message handler.
 
-        edited_message (:obj:`~pyrogram.types.Message`):
+        edited_message (:obj:`~pyrofork.types.Message`):
             The received edited message.
     """
 
diff --git a/pyrogram/handlers/handler.py b/pyrofork/handlers/handler.py
similarity index 68%
rename from pyrogram/handlers/handler.py
rename to pyrofork/handlers/handler.py
index c666d042..1f82206d 100644
--- a/pyrogram/handlers/handler.py
+++ b/pyrofork/handlers/handler.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import inspect
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
-from pyrogram.types import Update
+import pyrofork
+from pyrofork.filters import Filter
+from pyrofork.types import Update
 
 
 class Handler:
@@ -29,7 +30,7 @@ class Handler:
         self.callback = callback
         self.filters = filters
 
-    async def check(self, client: "pyrogram.Client", update: Update):
+    async def check(self, client: "pyrofork.Client", update: Update):
         if callable(self.filters):
             if inspect.iscoroutinefunction(self.filters.__call__):
                 return await self.filters(client, update)
diff --git a/pyrogram/handlers/inline_query_handler.py b/pyrofork/handlers/inline_query_handler.py
similarity index 71%
rename from pyrogram/handlers/inline_query_handler.py
rename to pyrofork/handlers/inline_query_handler.py
index f5ea23bc..f3290dea 100644
--- a/pyrogram/handlers/inline_query_handler.py
+++ b/pyrofork/handlers/inline_query_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class InlineQueryHandler(Handler):
     """The InlineQuery handler class. Used to handle inline queries.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_inline_query` decorator.
+    :meth:`~pyrofork.Client.on_inline_query` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -38,10 +39,10 @@ class InlineQueryHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the inline query handler.
 
-        inline_query (:obj:`~pyrogram.types.InlineQuery`):
+        inline_query (:obj:`~pyrofork.types.InlineQuery`):
             The received inline query.
     """
 
diff --git a/pyrogram/handlers/message_handler.py b/pyrofork/handlers/message_handler.py
similarity index 84%
rename from pyrogram/handlers/message_handler.py
rename to pyrofork/handlers/message_handler.py
index 55739c63..1206418f 100644
--- a/pyrogram/handlers/message_handler.py
+++ b/pyrofork/handlers/message_handler.py
@@ -1,35 +1,36 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 from inspect import iscoroutinefunction
 from typing import Callable
-import pyrogram
+import pyrofork
 
-from pyrogram.types import Message, Identifier
+from pyrofork.types import Message, Identifier
 
 from .handler import Handler
 
 
 class MessageHandler(Handler):
     """The Message handler class. Used to handle new messages.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_message` decorator.
+    :meth:`~pyrofork.Client.on_message` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -41,10 +42,10 @@ class MessageHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the message handler.
 
-        message (:obj:`~pyrogram.types.Message`):
+        message (:obj:`~pyrofork.types.Message`):
             The received message.
     """
 
@@ -52,7 +53,7 @@ class MessageHandler(Handler):
         self.original_callback = callback
         super().__init__(self.resolve_future_or_callback, filters)
 
-    async def check_if_has_matching_listener(self, client: "pyrogram.Client", message: Message):
+    async def check_if_has_matching_listener(self, client: "pyrofork.Client", message: Message):
         """
         Checks if the message has a matching listener.
 
@@ -73,7 +74,7 @@ class MessageHandler(Handler):
             from_user_id=[from_user_id, from_user_username],
         )
 
-        listener = client.get_listener_matching_with_data(data, pyrogram.enums.ListenerTypes.MESSAGE)
+        listener = client.get_listener_matching_with_data(data, pyrofork.enums.ListenerTypes.MESSAGE)
 
         listener_does_match = False
 
@@ -91,7 +92,7 @@ class MessageHandler(Handler):
 
         return listener_does_match, listener
 
-    async def check(self, client: "pyrogram.Client", message: Message):
+    async def check(self, client: "pyrofork.Client", message: Message):
         """
         Checks if the message has a matching listener or handler and its filters does match with the Message.
 
@@ -117,7 +118,7 @@ class MessageHandler(Handler):
         # exists but its filters doesn't match
         return listener_does_match or handler_does_match
 
-    async def resolve_future_or_callback(self, client: "pyrogram.Client", message: Message, *args):
+    async def resolve_future_or_callback(self, client: "pyrofork.Client", message: Message, *args):
         """
         Resolves the future or calls the callback of the listener if the message has a matching listener.
 
@@ -136,14 +137,14 @@ class MessageHandler(Handler):
             if listener.future and not listener.future.done():
                 listener.future.set_result(message)
 
-                raise pyrogram.StopPropagation
+                raise pyrofork.StopPropagation
             elif listener.callback:
                 if iscoroutinefunction(listener.callback):
                     await listener.callback(client, message, *args)
                 else:
                     listener.callback(client, message, *args)
 
-                raise pyrogram.StopPropagation
+                raise pyrofork.StopPropagation
             else:
                 raise ValueError("Listener must have either a future or a callback")
         else:
diff --git a/pyrogram/handlers/message_reaction_count_updated_handler.py b/pyrofork/handlers/message_reaction_count_updated_handler.py
similarity index 73%
rename from pyrogram/handlers/message_reaction_count_updated_handler.py
rename to pyrofork/handlers/message_reaction_count_updated_handler.py
index 74ab37a8..843656b2 100644
--- a/pyrogram/handlers/message_reaction_count_updated_handler.py
+++ b/pyrofork/handlers/message_reaction_count_updated_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -25,10 +26,10 @@ class MessageReactionCountUpdatedHandler(Handler):
     """The MessageReactionCountUpdated handler class.
     Used to handle changes in the anonymous reaction of a message.
 
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`.
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`.
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_message_reaction_count_updated` decorator.
+    :meth:`~pyrofork.Client.on_message_reaction_count_updated` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -40,10 +41,10 @@ class MessageReactionCountUpdatedHandler(Handler):
             Pass one or more filters to allow only a subset of updates to be passed in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the handler.
 
-        message_reaction_count_updated (:obj:`~pyrogram.types.MessageReactionCountUpdated`):
+        message_reaction_count_updated (:obj:`~pyrofork.types.MessageReactionCountUpdated`):
             The received message reaction count update.
     """
 
diff --git a/pyrogram/handlers/message_reaction_updated_handler.py b/pyrofork/handlers/message_reaction_updated_handler.py
similarity index 72%
rename from pyrogram/handlers/message_reaction_updated_handler.py
rename to pyrofork/handlers/message_reaction_updated_handler.py
index ea86a6d7..4efd1bef 100644
--- a/pyrogram/handlers/message_reaction_updated_handler.py
+++ b/pyrofork/handlers/message_reaction_updated_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -25,10 +26,10 @@ class MessageReactionUpdatedHandler(Handler):
     """The MessageReactionUpdated handler class.
     Used to handle changes in the reaction of a message.
 
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`.
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`.
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_message_reaction_updated` decorator.
+    :meth:`~pyrofork.Client.on_message_reaction_updated` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -40,10 +41,10 @@ class MessageReactionUpdatedHandler(Handler):
             Pass one or more filters to allow only a subset of updates to be passed in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the handler.
 
-        message_reaction_updated (:obj:`~pyrogram.types.MessageReactionUpdated`):
+        message_reaction_updated (:obj:`~pyrofork.types.MessageReactionUpdated`):
             The received message reaction update.
     """
 
diff --git a/pyrogram/handlers/poll_handler.py b/pyrofork/handlers/poll_handler.py
similarity index 71%
rename from pyrogram/handlers/poll_handler.py
rename to pyrofork/handlers/poll_handler.py
index 332ca7ea..eea7ab97 100644
--- a/pyrogram/handlers/poll_handler.py
+++ b/pyrofork/handlers/poll_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -24,10 +25,10 @@ from .handler import Handler
 class PollHandler(Handler):
     """The Poll handler class. Used to handle polls updates.
 
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_poll` decorator.
+    :meth:`~pyrofork.Client.on_poll` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -39,10 +40,10 @@ class PollHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the poll handler.
 
-        poll (:obj:`~pyrogram.types.Poll`):
+        poll (:obj:`~pyrofork.types.Poll`):
             The received poll.
     """
 
diff --git a/pyrogram/handlers/raw_update_handler.py b/pyrofork/handlers/raw_update_handler.py
similarity index 68%
rename from pyrogram/handlers/raw_update_handler.py
rename to pyrofork/handlers/raw_update_handler.py
index d957083b..cf3b2e9b 100644
--- a/pyrogram/handlers/raw_update_handler.py
+++ b/pyrofork/handlers/raw_update_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,10 +24,10 @@ from .handler import Handler
 
 class RawUpdateHandler(Handler):
     """The Raw Update handler class. Used to handle raw updates. It is intended to be used with
-    :meth:`~pyrogram.Client.add_handler`
+    :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_raw_update` decorator.
+    :meth:`~pyrofork.Client.on_raw_update` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -35,21 +36,21 @@ class RawUpdateHandler(Handler):
             a detailed description).
 
     Other Parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the update handler.
 
         update (``Update``):
             The received update, which can be one of the many single Updates listed in the
-            :obj:`~pyrogram.raw.base.Update` base type.
+            :obj:`~pyrofork.raw.base.Update` base type.
 
         users (``dict``):
-            Dictionary of all :obj:`~pyrogram.types.User` mentioned in the update.
+            Dictionary of all :obj:`~pyrofork.types.User` mentioned in the update.
             You can access extra info about the user (such as *first_name*, *last_name*, etc...) by using
             the IDs you find in the *update* argument (e.g.: *users[1768841572]*).
 
         chats (``dict``):
-            Dictionary of all :obj:`~pyrogram.types.Chat` and
-            :obj:`~pyrogram.raw.types.Channel` mentioned in the update.
+            Dictionary of all :obj:`~pyrofork.types.Chat` and
+            :obj:`~pyrofork.raw.types.Channel` mentioned in the update.
             You can access extra info about the chat (such as *title*, *participants_count*, etc...)
             by using the IDs you find in the *update* argument (e.g.: *chats[1701277281]*).
 
@@ -57,10 +58,10 @@ class RawUpdateHandler(Handler):
         The following Empty or Forbidden types may exist inside the *users* and *chats* dictionaries.
         They mean you have been blocked by the user or banned from the group/channel.
 
-        - :obj:`~pyrogram.raw.types.UserEmpty`
-        - :obj:`~pyrogram.raw.types.ChatEmpty`
-        - :obj:`~pyrogram.raw.types.ChatForbidden`
-        - :obj:`~pyrogram.raw.types.ChannelForbidden`
+        - :obj:`~pyrofork.raw.types.UserEmpty`
+        - :obj:`~pyrofork.raw.types.ChatEmpty`
+        - :obj:`~pyrofork.raw.types.ChatForbidden`
+        - :obj:`~pyrofork.raw.types.ChannelForbidden`
     """
 
     def __init__(self, callback: Callable):
diff --git a/pyrogram/handlers/story_handler.py b/pyrofork/handlers/story_handler.py
similarity index 89%
rename from pyrogram/handlers/story_handler.py
rename to pyrofork/handlers/story_handler.py
index f881a89e..e7b25b96 100644
--- a/pyrogram/handlers/story_handler.py
+++ b/pyrofork/handlers/story_handler.py
@@ -23,10 +23,10 @@ from .handler import Handler
 
 class StoryHandler(Handler):
     """The Story handler class. Used to handle new stories.
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`
 
     For a nicer way to register this handler, have a look at the
-    :meth:`~pyrogram.Client.on_story` decorator.
+    :meth:`~pyrofork.Client.on_story` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -38,10 +38,10 @@ class StoryHandler(Handler):
             in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the story handler.
 
-        story (:obj:`~pyrogram.types.Story`):
+        story (:obj:`~pyrofork.types.Story`):
             The received story.
     """
 
diff --git a/pyrogram/handlers/user_status_handler.py b/pyrofork/handlers/user_status_handler.py
similarity index 72%
rename from pyrogram/handlers/user_status_handler.py
rename to pyrofork/handlers/user_status_handler.py
index f10871e8..7a28995d 100644
--- a/pyrogram/handlers/user_status_handler.py
+++ b/pyrofork/handlers/user_status_handler.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
@@ -23,9 +24,9 @@ from .handler import Handler
 
 class UserStatusHandler(Handler):
     """The UserStatus handler class. Used to handle user status updates (user going online or offline).
-    It is intended to be used with :meth:`~pyrogram.Client.add_handler`.
+    It is intended to be used with :meth:`~pyrofork.Client.add_handler`.
 
-    For a nicer way to register this handler, have a look at the :meth:`~pyrogram.Client.on_user_status` decorator.
+    For a nicer way to register this handler, have a look at the :meth:`~pyrofork.Client.on_user_status` decorator.
 
     Parameters:
         callback (``Callable``):
@@ -36,10 +37,10 @@ class UserStatusHandler(Handler):
             Pass one or more filters to allow only a subset of users to be passed in your callback function.
 
     Other parameters:
-        client (:obj:`~pyrogram.Client`):
+        client (:obj:`~pyrofork.Client`):
             The Client itself, useful when you want to call other API methods inside the user status handler.
 
-        user (:obj:`~pyrogram.types.User`):
+        user (:obj:`~pyrofork.types.User`):
             The user containing the updated status.
     """
 
diff --git a/pyrogram/helpers/__init__.py b/pyrofork/helpers/__init__.py
similarity index 94%
rename from pyrogram/helpers/__init__.py
rename to pyrofork/helpers/__init__.py
index 786d7e01..e8d1bc4f 100644
--- a/pyrogram/helpers/__init__.py
+++ b/pyrofork/helpers/__init__.py
@@ -1,5 +1,5 @@
 """
-pyromod - A monkeypatcher add-on for Pyrogram
+pyromod - A monkeypatcher add-on for Pyrofork
 Copyright (C) 2020 Cezar H. 
 This file is part of pyromod.
 pyromod is free software: you can redistribute it and/or modify
diff --git a/pyrogram/helpers/helpers.py b/pyrofork/helpers/helpers.py
similarity index 99%
rename from pyrogram/helpers/helpers.py
rename to pyrofork/helpers/helpers.py
index 8aecc170..fab8a577 100644
--- a/pyrogram/helpers/helpers.py
+++ b/pyrofork/helpers/helpers.py
@@ -1,4 +1,4 @@
-from pyrogram.types import (
+from pyrofork.types import (
     InlineKeyboardButton,
     InlineKeyboardMarkup,
     KeyboardButton,
diff --git a/pyrogram/methods/__init__.py b/pyrofork/methods/__init__.py
similarity index 95%
rename from pyrogram/methods/__init__.py
rename to pyrofork/methods/__init__.py
index e788ab46..4be54900 100644
--- a/pyrogram/methods/__init__.py
+++ b/pyrofork/methods/__init__.py
@@ -1,4 +1,4 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
diff --git a/pyrogram/methods/advanced/__init__.py b/pyrofork/methods/advanced/__init__.py
similarity index 66%
rename from pyrogram/methods/advanced/__init__.py
rename to pyrofork/methods/advanced/__init__.py
index bf19658a..77cce16b 100644
--- a/pyrogram/methods/advanced/__init__.py
+++ b/pyrofork/methods/advanced/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .invoke import Invoke
 from .resolve_peer import ResolvePeer
diff --git a/pyrogram/methods/advanced/invoke.py b/pyrofork/methods/advanced/invoke.py
similarity index 78%
rename from pyrogram/methods/advanced/invoke.py
rename to pyrofork/methods/advanced/invoke.py
index 0af771ad..5de857b9 100644
--- a/pyrogram/methods/advanced/invoke.py
+++ b/pyrofork/methods/advanced/invoke.py
@@ -1,34 +1,35 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.raw.core import TLObject
-from pyrogram.session import Session
+import pyrofork
+from pyrofork import raw
+from pyrofork.raw.core import TLObject
+from pyrofork.session import Session
 
 log = logging.getLogger(__name__)
 
 
 class Invoke:
     async def invoke(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         query: TLObject,
         retries: int = Session.MAX_RETRIES,
         timeout: float = Session.WAIT_TIMEOUT,
@@ -37,13 +38,13 @@ class Invoke:
         """Invoke raw Telegram functions.
 
         This method makes it possible to manually call every single Telegram API method in a low-level manner.
-        Available functions are listed in the :obj:`functions ` package and may accept compound
-        data types from :obj:`types ` as well as bare types such as ``int``, ``str``, etc...
+        Available functions are listed in the :obj:`functions ` package and may accept compound
+        data types from :obj:`types ` as well as bare types such as ``int``, ``str``, etc...
 
         .. note::
 
             This is a utility method intended to be used **only** when working with raw
-            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
+            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
             available yet in the Client class as an easy-to-use method).
 
         .. include:: /_includes/usable-by/users-bots.rst
diff --git a/pyrogram/methods/advanced/resolve_peer.py b/pyrofork/methods/advanced/resolve_peer.py
similarity index 87%
rename from pyrogram/methods/advanced/resolve_peer.py
rename to pyrofork/methods/advanced/resolve_peer.py
index c92ec90d..44e41089 100644
--- a/pyrogram/methods/advanced/resolve_peer.py
+++ b/pyrofork/methods/advanced/resolve_peer.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 import re
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import utils
-from pyrogram.errors import PeerIdInvalid
+import pyrofork
+from pyrofork import raw
+from pyrofork import utils
+from pyrofork.errors import PeerIdInvalid
 
 log = logging.getLogger(__name__)
 
 
 class ResolvePeer:
     async def resolve_peer(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         peer_id: Union[int, str]
     ) -> Union[raw.base.InputPeer, raw.base.InputUser, raw.base.InputChannel]:
         """Get the InputPeer of a known peer id.
@@ -39,7 +40,7 @@ class ResolvePeer:
         .. note::
 
             This is a utility method intended to be used **only** when working with raw
-            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
+            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
             available yet in the Client class as an easy-to-use method).
 
         .. include:: /_includes/usable-by/users-bots.rst
diff --git a/pyrogram/methods/advanced/save_file.py b/pyrofork/methods/advanced/save_file.py
similarity index 93%
rename from pyrogram/methods/advanced/save_file.py
rename to pyrofork/methods/advanced/save_file.py
index 453a62af..6ee97a50 100644
--- a/pyrogram/methods/advanced/save_file.py
+++ b/pyrofork/methods/advanced/save_file.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import functools
@@ -27,17 +28,17 @@ from hashlib import md5
 from pathlib import PurePath
 from typing import Union, BinaryIO, Callable
 
-import pyrogram
-from pyrogram import StopTransmission
-from pyrogram import raw
-from pyrogram.session import Session
+import pyrofork
+from pyrofork import StopTransmission
+from pyrofork import raw
+from pyrofork.session import Session
 
 log = logging.getLogger(__name__)
 
 
 class SaveFile:
     async def save_file(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         path: Union[str, BinaryIO],
         file_id: int = None,
         file_part: int = 0,
@@ -50,7 +51,7 @@ class SaveFile:
         .. note::
 
             This is a utility method intended to be used **only** when working with raw
-            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
+            :obj:`functions ` (i.e: a Telegram API method you wish to use which is not
             available yet in the Client class as an easy-to-use method).
 
         .. include:: /_includes/usable-by/users-bots.rst
diff --git a/pyrogram/methods/auth/__init__.py b/pyrofork/methods/auth/__init__.py
similarity index 79%
rename from pyrogram/methods/auth/__init__.py
rename to pyrofork/methods/auth/__init__.py
index ce585648..d2af43be 100644
--- a/pyrogram/methods/auth/__init__.py
+++ b/pyrofork/methods/auth/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .accept_terms_of_service import AcceptTermsOfService
 from .check_password import CheckPassword
diff --git a/pyrogram/methods/auth/accept_terms_of_service.py b/pyrofork/methods/auth/accept_terms_of_service.py
similarity index 71%
rename from pyrogram/methods/auth/accept_terms_of_service.py
rename to pyrofork/methods/auth/accept_terms_of_service.py
index cc1fcf54..29c161a2 100644
--- a/pyrogram/methods/auth/accept_terms_of_service.py
+++ b/pyrofork/methods/auth/accept_terms_of_service.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class AcceptTermsOfService:
     async def accept_terms_of_service(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         terms_of_service_id: str
     ) -> bool:
         """Accept the given terms of service.
diff --git a/pyrogram/methods/auth/check_password.py b/pyrofork/methods/auth/check_password.py
similarity index 71%
rename from pyrogram/methods/auth/check_password.py
rename to pyrofork/methods/auth/check_password.py
index 39aa82fc..3f95a356 100644
--- a/pyrogram/methods/auth/check_password.py
+++ b/pyrofork/methods/auth/check_password.py
@@ -1,34 +1,35 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.utils import compute_password_check
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.utils import compute_password_check
 
 log = logging.getLogger(__name__)
 
 
 class CheckPassword:
     async def check_password(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         password: str
     ) -> "types.User":
         """Check your Two-Step Verification password and log in.
@@ -40,7 +41,7 @@ class CheckPassword:
                 Your Two-Step Verification password.
 
         Returns:
-            :obj:`~pyrogram.types.User`: On success, the authorized user is returned.
+            :obj:`~pyrofork.types.User`: On success, the authorized user is returned.
 
         Raises:
             BadRequest: In case the password is invalid.
diff --git a/pyrogram/methods/auth/connect.py b/pyrofork/methods/auth/connect.py
similarity index 75%
rename from pyrogram/methods/auth/connect.py
rename to pyrofork/methods/auth/connect.py
index 612e064b..16b38708 100644
--- a/pyrogram/methods/auth/connect.py
+++ b/pyrofork/methods/auth/connect.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram.session import Session
+import pyrofork
+from pyrofork.session import Session
 
 
 class Connect:
     async def connect(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ) -> bool:
         """
         Connect the client to Telegram servers.
diff --git a/pyrogram/methods/auth/disconnect.py b/pyrofork/methods/auth/disconnect.py
similarity index 74%
rename from pyrogram/methods/auth/disconnect.py
rename to pyrofork/methods/auth/disconnect.py
index daa07b83..354834c4 100644
--- a/pyrogram/methods/auth/disconnect.py
+++ b/pyrofork/methods/auth/disconnect.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class Disconnect:
     async def disconnect(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ):
         """Disconnect the client from Telegram servers.
 
diff --git a/pyrogram/methods/auth/get_password_hint.py b/pyrofork/methods/auth/get_password_hint.py
similarity index 68%
rename from pyrogram/methods/auth/get_password_hint.py
rename to pyrofork/methods/auth/get_password_hint.py
index a57f7c80..72fb44c4 100644
--- a/pyrogram/methods/auth/get_password_hint.py
+++ b/pyrofork/methods/auth/get_password_hint.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class GetPasswordHint:
     async def get_password_hint(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ) -> str:
         """Get your Two-Step Verification password hint.
 
diff --git a/pyrogram/methods/auth/initialize.py b/pyrofork/methods/auth/initialize.py
similarity index 77%
rename from pyrogram/methods/auth/initialize.py
rename to pyrofork/methods/auth/initialize.py
index 7188b668..1f295839 100644
--- a/pyrogram/methods/auth/initialize.py
+++ b/pyrofork/methods/auth/initialize.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import logging
 
-import pyrogram
+import pyrofork
 
 log = logging.getLogger(__name__)
 
 
 class Initialize:
     async def initialize(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ):
         """Initialize the client by starting up workers.
 
diff --git a/pyrogram/methods/auth/log_out.py b/pyrofork/methods/auth/log_out.py
similarity index 74%
rename from pyrogram/methods/auth/log_out.py
rename to pyrofork/methods/auth/log_out.py
index 84b7db64..255e415e 100644
--- a/pyrogram/methods/auth/log_out.py
+++ b/pyrofork/methods/auth/log_out.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class LogOut:
     async def log_out(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ):
         """Log out from Telegram and delete the *\\*.session* file.
 
diff --git a/pyrogram/methods/auth/recover_password.py b/pyrofork/methods/auth/recover_password.py
similarity index 72%
rename from pyrogram/methods/auth/recover_password.py
rename to pyrofork/methods/auth/recover_password.py
index 0a347507..f0bdc606 100644
--- a/pyrogram/methods/auth/recover_password.py
+++ b/pyrofork/methods/auth/recover_password.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class RecoverPassword:
     async def recover_password(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         recovery_code: str
     ) -> "types.User":
         """Recover your password with a recovery code and log in.
@@ -39,7 +40,7 @@ class RecoverPassword:
                 The recovery code sent via email.
 
         Returns:
-            :obj:`~pyrogram.types.User`: On success, the authorized user is returned and the Two-Step Verification
+            :obj:`~pyrofork.types.User`: On success, the authorized user is returned and the Two-Step Verification
             password reset.
 
         Raises:
diff --git a/pyrogram/methods/auth/resend_code.py b/pyrofork/methods/auth/resend_code.py
similarity index 73%
rename from pyrogram/methods/auth/resend_code.py
rename to pyrofork/methods/auth/resend_code.py
index 9644ac4f..7818a99b 100644
--- a/pyrogram/methods/auth/resend_code.py
+++ b/pyrofork/methods/auth/resend_code.py
@@ -1,40 +1,41 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class ResendCode:
     async def resend_code(
-        self: "pyrogram.Client",
+        self: "pyrofork.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
-        :obj:`~pyrogram.types.SentCode` object returned by :meth:`send_code`.
+        :obj:`~pyrofork.types.SentCode` object returned by :meth:`send_code`.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -46,7 +47,7 @@ class ResendCode:
                 Confirmation code identifier.
 
         Returns:
-            :obj:`~pyrogram.types.SentCode`: On success, an object containing information on the re-sent confirmation
+            :obj:`~pyrofork.types.SentCode`: On success, an object containing information on the re-sent confirmation
             code is returned.
 
         Raises:
diff --git a/pyrogram/methods/auth/send_code.py b/pyrofork/methods/auth/send_code.py
similarity index 78%
rename from pyrogram/methods/auth/send_code.py
rename to pyrofork/methods/auth/send_code.py
index 92ffc999..daff2629 100644
--- a/pyrogram/methods/auth/send_code.py
+++ b/pyrofork/methods/auth/send_code.py
@@ -1,35 +1,36 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.errors import PhoneMigrate, NetworkMigrate
-from pyrogram.session import Session, Auth
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.errors import PhoneMigrate, NetworkMigrate
+from pyrofork.session import Session, Auth
 
 log = logging.getLogger(__name__)
 
 
 class SendCode:
     async def send_code(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         phone_number: str
     ) -> "types.SentCode":
         """Send the confirmation code to the given phone number.
@@ -41,7 +42,7 @@ class SendCode:
                 Phone number in international format (includes the country prefix).
 
         Returns:
-            :obj:`~pyrogram.types.SentCode`: On success, an object containing information on the sent confirmation code
+            :obj:`~pyrofork.types.SentCode`: On success, an object containing information on the sent confirmation code
             is returned.
 
         Raises:
diff --git a/pyrogram/methods/auth/send_recovery_code.py b/pyrofork/methods/auth/send_recovery_code.py
similarity index 71%
rename from pyrogram/methods/auth/send_recovery_code.py
rename to pyrofork/methods/auth/send_recovery_code.py
index 9a25f3c6..dac60f06 100644
--- a/pyrogram/methods/auth/send_recovery_code.py
+++ b/pyrofork/methods/auth/send_recovery_code.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class SendRecoveryCode:
     async def send_recovery_code(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ) -> str:
         """Send a code to your email to recover your password.
 
diff --git a/pyrogram/methods/auth/sign_in.py b/pyrofork/methods/auth/sign_in.py
similarity index 80%
rename from pyrogram/methods/auth/sign_in.py
rename to pyrofork/methods/auth/sign_in.py
index 9d77f1cd..b96f0ba6 100644
--- a/pyrogram/methods/auth/sign_in.py
+++ b/pyrofork/methods/auth/sign_in.py
@@ -1,34 +1,35 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class SignIn:
     async def sign_in(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         phone_number: str,
         phone_code_hash: str,
         phone_code: str
@@ -42,15 +43,15 @@ class SignIn:
                 Phone number in international format (includes the country prefix).
 
             phone_code_hash (``str``):
-                Code identifier taken from the result of :meth:`~pyrogram.Client.send_code`.
+                Code identifier taken from the result of :meth:`~pyrofork.Client.send_code`.
 
             phone_code (``str``):
                 The valid confirmation code you received (either as Telegram message or as SMS in your phone number).
 
         Returns:
-            :obj:`~pyrogram.types.User` | :obj:`~pyrogram.types.TermsOfService` | bool: On success, in case the
+            :obj:`~pyrofork.types.User` | :obj:`~pyrofork.types.TermsOfService` | bool: On success, in case the
             authorization completed, the user is returned. In case the phone number needs to be registered first AND the
-            terms of services accepted (with :meth:`~pyrogram.Client.accept_terms_of_service`), an object containing
+            terms of services accepted (with :meth:`~pyrofork.Client.accept_terms_of_service`), an object containing
             them is returned. In case the phone number needs to be registered, but the terms of services don't need to
             be accepted, False is returned instead.
 
diff --git a/pyrogram/methods/auth/sign_in_bot.py b/pyrofork/methods/auth/sign_in_bot.py
similarity index 78%
rename from pyrogram/methods/auth/sign_in_bot.py
rename to pyrofork/methods/auth/sign_in_bot.py
index 09a2f283..4132e450 100644
--- a/pyrogram/methods/auth/sign_in_bot.py
+++ b/pyrofork/methods/auth/sign_in_bot.py
@@ -1,35 +1,36 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.errors import UserMigrate
-from pyrogram.session import Session, Auth
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.errors import UserMigrate
+from pyrofork.session import Session, Auth
 
 log = logging.getLogger(__name__)
 
 
 class SignInBot:
     async def sign_in_bot(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         bot_token: str
     ) -> "types.User":
         """Authorize a bot using its bot token generated by BotFather.
@@ -41,7 +42,7 @@ class SignInBot:
                 The bot token generated by BotFather
 
         Returns:
-            :obj:`~pyrogram.types.User`: On success, the bot identity is return in form of a user object.
+            :obj:`~pyrofork.types.User`: On success, the bot identity is return in form of a user object.
 
         Raises:
             BadRequest: In case the bot token is invalid.
diff --git a/pyrogram/methods/auth/sign_up.py b/pyrofork/methods/auth/sign_up.py
similarity index 77%
rename from pyrogram/methods/auth/sign_up.py
rename to pyrofork/methods/auth/sign_up.py
index f09a779d..46bafd4a 100644
--- a/pyrogram/methods/auth/sign_up.py
+++ b/pyrofork/methods/auth/sign_up.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class SignUp:
     async def sign_up(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         phone_number: str,
         phone_code_hash: str,
         first_name: str,
@@ -42,7 +43,7 @@ class SignUp:
                 Phone number in international format (includes the country prefix).
 
             phone_code_hash (``str``):
-                Code identifier taken from the result of :meth:`~pyrogram.Client.send_code`.
+                Code identifier taken from the result of :meth:`~pyrofork.Client.send_code`.
 
             first_name (``str``):
                 New user first name.
@@ -51,7 +52,7 @@ class SignUp:
                 New user last name. Defaults to "" (empty string, no last name).
 
         Returns:
-            :obj:`~pyrogram.types.User`: On success, the new registered user is returned.
+            :obj:`~pyrofork.types.User`: On success, the new registered user is returned.
 
         Raises:
             BadRequest: In case the arguments are invalid.
diff --git a/pyrogram/methods/auth/terminate.py b/pyrofork/methods/auth/terminate.py
similarity index 76%
rename from pyrogram/methods/auth/terminate.py
rename to pyrofork/methods/auth/terminate.py
index d5fd949c..70f0005c 100644
--- a/pyrogram/methods/auth/terminate.py
+++ b/pyrofork/methods/auth/terminate.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class Terminate:
     async def terminate(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ):
         """Terminate the client by shutting down workers.
 
-        This method does the opposite of :meth:`~pyrogram.Client.initialize`.
+        This method does the opposite of :meth:`~pyrofork.Client.initialize`.
         It will stop the dispatcher and shut down updates and download workers.
 
         Raises:
diff --git a/pyrogram/methods/bots/__init__.py b/pyrofork/methods/bots/__init__.py
similarity index 83%
rename from pyrogram/methods/bots/__init__.py
rename to pyrofork/methods/bots/__init__.py
index 53612555..717d1d1e 100644
--- a/pyrogram/methods/bots/__init__.py
+++ b/pyrofork/methods/bots/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .answer_callback_query import AnswerCallbackQuery
 from .answer_inline_query import AnswerInlineQuery
diff --git a/pyrogram/methods/bots/answer_callback_query.py b/pyrofork/methods/bots/answer_callback_query.py
similarity index 87%
rename from pyrogram/methods/bots/answer_callback_query.py
rename to pyrofork/methods/bots/answer_callback_query.py
index a6d8747c..d139fb46 100644
--- a/pyrogram/methods/bots/answer_callback_query.py
+++ b/pyrofork/methods/bots/answer_callback_query.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class AnswerCallbackQuery:
     async def answer_callback_query(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         callback_query_id: str,
         text: str = None,
         show_alert: bool = None,
diff --git a/pyrogram/methods/bots/answer_inline_query.py b/pyrofork/methods/bots/answer_inline_query.py
similarity index 88%
rename from pyrogram/methods/bots/answer_inline_query.py
rename to pyrofork/methods/bots/answer_inline_query.py
index c3a450a0..86845b8c 100644
--- a/pyrogram/methods/bots/answer_inline_query.py
+++ b/pyrofork/methods/bots/answer_inline_query.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class AnswerInlineQuery:
     async def answer_inline_query(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         inline_query_id: str,
         results: Iterable["types.InlineQueryResult"],
         cache_time: int = 300,
@@ -45,7 +46,7 @@ class AnswerInlineQuery:
             inline_query_id (``str``):
                 Unique identifier for the answered query.
 
-            results (List of :obj:`~pyrogram.types.InlineQueryResult`):
+            results (List of :obj:`~pyrofork.types.InlineQueryResult`):
                 A list of results for the inline query.
 
             cache_time (``int``, *optional*):
@@ -86,7 +87,7 @@ class AnswerInlineQuery:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent
+                from pyrofork.types import InlineQueryResultArticle, InputTextMessageContent
 
                 await app.answer_inline_query(
                     inline_query_id,
diff --git a/pyrogram/methods/bots/answer_web_app_query.py b/pyrofork/methods/bots/answer_web_app_query.py
similarity index 71%
rename from pyrogram/methods/bots/answer_web_app_query.py
rename to pyrofork/methods/bots/answer_web_app_query.py
index 74f56079..8b34f0dc 100644
--- a/pyrogram/methods/bots/answer_web_app_query.py
+++ b/pyrofork/methods/bots/answer_web_app_query.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class AnswerWebAppQuery:
     async def answer_web_app_query(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         web_app_query_id: str,
         result: "types.InlineQueryResult"
     ) -> "types.SentWebAppMessage":
@@ -36,11 +37,11 @@ class AnswerWebAppQuery:
             web_app_query_id (``str``):
                 Unique identifier for the answered query.
 
-            result (:obj:`~pyrogram.types.InlineQueryResult`):
+            result (:obj:`~pyrofork.types.InlineQueryResult`):
                 A list of results for the inline query.
 
         Returns:
-            :obj:`~pyrogram.types.SentWebAppMessage`: On success the sent web app message is returned.
+            :obj:`~pyrofork.types.SentWebAppMessage`: On success the sent web app message is returned.
         """
 
         r = await self.invoke(
diff --git a/pyrogram/methods/bots/delete_bot_commands.py b/pyrofork/methods/bots/delete_bot_commands.py
similarity index 76%
rename from pyrogram/methods/bots/delete_bot_commands.py
rename to pyrofork/methods/bots/delete_bot_commands.py
index e8173d32..fbdde7dc 100644
--- a/pyrogram/methods/bots/delete_bot_commands.py
+++ b/pyrofork/methods/bots/delete_bot_commands.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class DeleteBotCommands:
     async def delete_bot_commands(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         scope: "types.BotCommandScope" = types.BotCommandScopeDefault(),
         language_code: str = "",
     ) -> bool:
@@ -35,9 +36,9 @@ class DeleteBotCommands:
         .. include:: /_includes/usable-by/bots.rst
 
         Parameters:
-            scope (:obj:`~pyrogram.types.BotCommandScope`, *optional*):
+            scope (:obj:`~pyrofork.types.BotCommandScope`, *optional*):
                 An object describing the scope of users for which the commands are relevant.
-                Defaults to :obj:`~pyrogram.types.BotCommandScopeDefault`.
+                Defaults to :obj:`~pyrofork.types.BotCommandScopeDefault`.
 
             language_code (``str``, *optional*):
                 A two-letter ISO 639-1 language code.
diff --git a/pyrogram/methods/bots/get_bot_commands.py b/pyrofork/methods/bots/get_bot_commands.py
similarity index 76%
rename from pyrogram/methods/bots/get_bot_commands.py
rename to pyrofork/methods/bots/get_bot_commands.py
index 78deff30..f9460d1d 100644
--- a/pyrogram/methods/bots/get_bot_commands.py
+++ b/pyrofork/methods/bots/get_bot_commands.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class GetBotCommands:
     async def get_bot_commands(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         scope: "types.BotCommandScope" = types.BotCommandScopeDefault(),
         language_code: str = "",
     ) -> List["types.BotCommand"]:
@@ -37,9 +38,9 @@ class GetBotCommands:
         .. include:: /_includes/usable-by/bots.rst
 
         Parameters:
-            scope (:obj:`~pyrogram.types.BotCommandScope`, *optional*):
+            scope (:obj:`~pyrofork.types.BotCommandScope`, *optional*):
                 An object describing the scope of users for which the commands are relevant.
-                Defaults to :obj:`~pyrogram.types.BotCommandScopeDefault`.
+                Defaults to :obj:`~pyrofork.types.BotCommandScopeDefault`.
 
             language_code (``str``, *optional*):
                 A two-letter ISO 639-1 language code.
@@ -47,7 +48,7 @@ class GetBotCommands:
                 dedicated commands.
 
         Returns:
-            List of :obj:`~pyrogram.types.BotCommand`: On success, the list of bot commands is returned.
+            List of :obj:`~pyrofork.types.BotCommand`: On success, the list of bot commands is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/bots/get_bot_default_privileges.py b/pyrofork/methods/bots/get_bot_default_privileges.py
similarity index 78%
rename from pyrogram/methods/bots/get_bot_default_privileges.py
rename to pyrofork/methods/bots/get_bot_default_privileges.py
index 217d9b43..d3ef098d 100644
--- a/pyrogram/methods/bots/get_bot_default_privileges.py
+++ b/pyrofork/methods/bots/get_bot_default_privileges.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetBotDefaultPrivileges:
     async def get_bot_default_privileges(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         for_channels: bool = None
     ) -> Optional["types.ChatPrivileges"]:
         """Get the current default privileges of the bot.
diff --git a/pyrogram/methods/bots/get_bot_info.py b/pyrofork/methods/bots/get_bot_info.py
similarity index 91%
rename from pyrogram/methods/bots/get_bot_info.py
rename to pyrofork/methods/bots/get_bot_info.py
index dcb60de6..744ddd26 100644
--- a/pyrogram/methods/bots/get_bot_info.py
+++ b/pyrofork/methods/bots/get_bot_info.py
@@ -18,16 +18,16 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetBotInfo:
     async def get_bot_info(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         lang_code: str,
         bot: Union[int, str] = None
-    ) -> pyrogram.types.BotInfo:
+    ) -> pyrofork.types.BotInfo:
         """Get the bot info in given language.
 
         .. include:: /_includes/usable-by/users-bots.rst
@@ -46,4 +46,4 @@ class GetBotInfo:
         if bot:
             peer = await self.resolve_peer(bot)
         r = await self.invoke(raw.functions.bots.GetBotInfo(lang_code=lang_code, bot=peer))
-        return pyrogram.types.BotInfo._parse(r)
+        return pyrofork.types.BotInfo._parse(r)
diff --git a/pyrogram/methods/bots/get_chat_menu_button.py b/pyrofork/methods/bots/get_chat_menu_button.py
similarity index 81%
rename from pyrogram/methods/bots/get_chat_menu_button.py
rename to pyrofork/methods/bots/get_chat_menu_button.py
index 4f55abe0..ea6673e2 100644
--- a/pyrogram/methods/bots/get_chat_menu_button.py
+++ b/pyrofork/methods/bots/get_chat_menu_button.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatMenuButton:
     async def get_chat_menu_button(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str] = None,
     ) -> "types.MenuButton":
         """Get the current value of the bot's menu button in a private chat, or the default menu button.
diff --git a/pyrogram/methods/bots/get_game_high_scores.py b/pyrofork/methods/bots/get_game_high_scores.py
similarity index 82%
rename from pyrogram/methods/bots/get_game_high_scores.py
rename to pyrofork/methods/bots/get_game_high_scores.py
index d8e21af4..5ffedba3 100644
--- a/pyrogram/methods/bots/get_game_high_scores.py
+++ b/pyrofork/methods/bots/get_game_high_scores.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetGameHighScores:
     async def get_game_high_scores(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str],
         chat_id: Union[int, str],
         message_id: int = None
@@ -52,7 +53,7 @@ class GetGameHighScores:
                 Required if inline_message_id is not specified.
 
         Returns:
-            List of :obj:`~pyrogram.types.GameHighScore`: On success.
+            List of :obj:`~pyrofork.types.GameHighScore`: On success.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/bots/get_inline_bot_results.py b/pyrofork/methods/bots/get_inline_bot_results.py
similarity index 82%
rename from pyrogram/methods/bots/get_inline_bot_results.py
rename to pyrofork/methods/bots/get_inline_bot_results.py
index b6605bf9..2cc6b728 100644
--- a/pyrogram/methods/bots/get_inline_bot_results.py
+++ b/pyrofork/methods/bots/get_inline_bot_results.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.errors import UnknownError
+import pyrofork
+from pyrofork import raw
+from pyrofork.errors import UnknownError
 
 
 class GetInlineBotResults:
     async def get_inline_bot_results(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         bot: Union[int, str],
         query: str = "",
         offset: str = "",
@@ -33,7 +34,7 @@ class GetInlineBotResults:
         longitude: float = None
     ):
         """Get bot results via inline queries.
-        You can then send a result using :meth:`~pyrogram.Client.send_inline_bot_result`
+        You can then send a result using :meth:`~pyrofork.Client.send_inline_bot_result`
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -59,7 +60,7 @@ class GetInlineBotResults:
                 Useful for location-based results only.
 
         Returns:
-            :obj:`BotResults `: On Success.
+            :obj:`BotResults `: On Success.
 
         Raises:
             TimeoutError: In case the bot fails to answer within 10 seconds.
@@ -67,7 +68,7 @@ class GetInlineBotResults:
         Example:
             .. code-block:: python
 
-                results = await app.get_inline_bot_results("pyrogrambot")
+                results = await app.get_inline_bot_results("pyroforkbot")
                 print(results)
         """
         # TODO: Don't return the raw type
diff --git a/pyrogram/methods/bots/request_callback_answer.py b/pyrofork/methods/bots/request_callback_answer.py
similarity index 85%
rename from pyrogram/methods/bots/request_callback_answer.py
rename to pyrofork/methods/bots/request_callback_answer.py
index f18f25af..ffdda2a5 100644
--- a/pyrogram/methods/bots/request_callback_answer.py
+++ b/pyrofork/methods/bots/request_callback_answer.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class RequestCallbackAnswer:
     async def request_callback_answer(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         callback_data: Union[str, bytes],
diff --git a/pyrogram/methods/bots/send_game.py b/pyrofork/methods/bots/send_game.py
similarity index 94%
rename from pyrogram/methods/bots/send_game.py
rename to pyrofork/methods/bots/send_game.py
index 98e28ed1..fd783db8 100644
--- a/pyrogram/methods/bots/send_game.py
+++ b/pyrofork/methods/bots/send_game.py
@@ -19,14 +19,14 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types, utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types, utils
 
 
 class SendGame:
     async def send_game(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         game_short_name: str,
         disable_notification: bool = None,
@@ -68,12 +68,12 @@ class SendGame:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An object for an inline keyboard. If empty, one ‘Play game_title’ button will be shown automatically.
                 If not empty, the first button must launch the game.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent game message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent game message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/bots/send_inline_bot_result.py b/pyrofork/methods/bots/send_inline_bot_result.py
similarity index 91%
rename from pyrogram/methods/bots/send_inline_bot_result.py
rename to pyrofork/methods/bots/send_inline_bot_result.py
index 3a11a789..2d17f5dc 100644
--- a/pyrogram/methods/bots/send_inline_bot_result.py
+++ b/pyrofork/methods/bots/send_inline_bot_result.py
@@ -19,13 +19,13 @@
 
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import enums, raw, types, utils
+import pyrofork
+from pyrofork import enums, raw, types, utils
 
 
 class SendInlineBotResult:
     async def send_inline_bot_result(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         query_id: int,
         result_id: str,
@@ -37,7 +37,7 @@ class SendInlineBotResult:
         parse_mode: Optional["enums.ParseMode"] = None
     ) -> "raw.base.Updates":
         """Send an inline bot result.
-        Bot results can be retrieved using :meth:`~pyrogram.Client.get_inline_bot_results`
+        Bot results can be retrieved using :meth:`~pyrofork.Client.get_inline_bot_results`
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -69,17 +69,17 @@ class SendInlineBotResult:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
 
         Returns:
-            :obj:`~pyrogram.raw.base.Updates`: Currently, on success, a raw result is returned.
+            :obj:`~pyrofork.raw.base.Updates`: Currently, on success, a raw result is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/bots/set_bot_commands.py b/pyrofork/methods/bots/set_bot_commands.py
similarity index 74%
rename from pyrogram/methods/bots/set_bot_commands.py
rename to pyrofork/methods/bots/set_bot_commands.py
index f6f7e6c9..151d4682 100644
--- a/pyrogram/methods/bots/set_bot_commands.py
+++ b/pyrofork/methods/bots/set_bot_commands.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class SetBotCommands:
     async def set_bot_commands(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         commands: List["types.BotCommand"],
         scope: "types.BotCommandScope" = types.BotCommandScopeDefault(),
         language_code: str = "",
@@ -37,13 +38,13 @@ class SetBotCommands:
         .. include:: /_includes/usable-by/bots.rst
 
         Parameters:
-            commands (List of :obj:`~pyrogram.types.BotCommand`):
+            commands (List of :obj:`~pyrofork.types.BotCommand`):
                 A list of bot commands.
                 At most 100 commands can be specified.
 
-            scope (:obj:`~pyrogram.types.BotCommandScope`, *optional*):
+            scope (:obj:`~pyrofork.types.BotCommandScope`, *optional*):
                 An object describing the scope of users for which the commands are relevant.
-                Defaults to :obj:`~pyrogram.types.BotCommandScopeDefault`.
+                Defaults to :obj:`~pyrofork.types.BotCommandScopeDefault`.
 
             language_code (``str``, *optional*):
                 A two-letter ISO 639-1 language code.
@@ -56,7 +57,7 @@ class SetBotCommands:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import BotCommand
+                from pyrofork.types import BotCommand
 
                 # Set new commands
                 await app.set_bot_commands([
diff --git a/pyrogram/methods/bots/set_bot_default_privileges.py b/pyrofork/methods/bots/set_bot_default_privileges.py
similarity index 82%
rename from pyrogram/methods/bots/set_bot_default_privileges.py
rename to pyrofork/methods/bots/set_bot_default_privileges.py
index 2890ee1a..58abd9c6 100644
--- a/pyrogram/methods/bots/set_bot_default_privileges.py
+++ b/pyrofork/methods/bots/set_bot_default_privileges.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class SetBotDefaultPrivileges:
     async def set_bot_default_privileges(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         privileges: "types.ChatPrivileges" = None,
         for_channels: bool = None
     ) -> bool:
@@ -34,7 +35,7 @@ class SetBotDefaultPrivileges:
         .. include:: /_includes/usable-by/bots.rst
 
         Parameters:
-            privileges (:obj:`~pyrogram.types.ChatPrivileges`):
+            privileges (:obj:`~pyrofork.types.ChatPrivileges`):
                 New default privileges. None to clear.
                 Defaults to None.
 
@@ -48,7 +49,7 @@ class SetBotDefaultPrivileges:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import ChatPrivileges
+                from pyrofork.types import ChatPrivileges
 
                 await app.set_bot_default_privileges(
                     ChatPrivileges(
diff --git a/pyrogram/methods/bots/set_bot_info.py b/pyrofork/methods/bots/set_bot_info.py
similarity index 96%
rename from pyrogram/methods/bots/set_bot_info.py
rename to pyrofork/methods/bots/set_bot_info.py
index 7559a6b4..6e60cb04 100644
--- a/pyrogram/methods/bots/set_bot_info.py
+++ b/pyrofork/methods/bots/set_bot_info.py
@@ -18,13 +18,13 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetBotInfo:
     async def set_bot_info(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         lang_code: str,
         bot: Union[int, str] = None,
         name: str = None,
diff --git a/pyrogram/methods/bots/set_chat_menu_button.py b/pyrofork/methods/bots/set_chat_menu_button.py
similarity index 72%
rename from pyrogram/methods/bots/set_chat_menu_button.py
rename to pyrofork/methods/bots/set_chat_menu_button.py
index fa5af85c..47ed61f5 100644
--- a/pyrogram/methods/bots/set_chat_menu_button.py
+++ b/pyrofork/methods/bots/set_chat_menu_button.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class SetChatMenuButton:
     async def set_chat_menu_button(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str] = None,
         menu_button: "types.MenuButton" = None
     ) -> bool:
@@ -38,9 +39,9 @@ class SetChatMenuButton:
                 Unique identifier (int) or username (str) of the target chat.
                 If not specified, default bot's menu button will be changed.
 
-            menu_button (:obj:`~pyrogram.types.MenuButton`, *optional*):
+            menu_button (:obj:`~pyrofork.types.MenuButton`, *optional*):
                 The new bot's menu button.
-                Defaults to :obj:`~pyrogram.types.MenuButtonDefault`.
+                Defaults to :obj:`~pyrofork.types.MenuButtonDefault`.
         """
 
         await self.invoke(
diff --git a/pyrogram/methods/bots/set_game_score.py b/pyrofork/methods/bots/set_game_score.py
similarity index 87%
rename from pyrogram/methods/bots/set_game_score.py
rename to pyrofork/methods/bots/set_game_score.py
index 9703b3d1..51d9560b 100644
--- a/pyrogram/methods/bots/set_game_score.py
+++ b/pyrofork/methods/bots/set_game_score.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class SetGameScore:
     async def set_game_score(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str],
         score: int,
         force: bool = None,
@@ -66,7 +67,7 @@ class SetGameScore:
                 Required if inline_message_id is not specified.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, if the message was sent by the bot, the edited
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, if the message was sent by the bot, the edited
             message is returned, True otherwise.
 
         Example:
diff --git a/pyrogram/methods/chats/__init__.py b/pyrofork/methods/chats/__init__.py
similarity index 100%
rename from pyrogram/methods/chats/__init__.py
rename to pyrofork/methods/chats/__init__.py
diff --git a/pyrogram/methods/chats/add_chat_members.py b/pyrofork/methods/chats/add_chat_members.py
similarity index 87%
rename from pyrogram/methods/chats/add_chat_members.py
rename to pyrofork/methods/chats/add_chat_members.py
index af9af1df..ba26a4b5 100644
--- a/pyrogram/methods/chats/add_chat_members.py
+++ b/pyrofork/methods/chats/add_chat_members.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class AddChatMembers:
     async def add_chat_members(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/chats/archive_chats.py
similarity index 81%
rename from pyrogram/methods/chats/archive_chats.py
rename to pyrofork/methods/chats/archive_chats.py
index 010a65ac..84dc1f4a 100644
--- a/pyrogram/methods/chats/archive_chats.py
+++ b/pyrofork/methods/chats/archive_chats.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class ArchiveChats:
     async def archive_chats(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/chats/ban_chat_member.py
similarity index 89%
rename from pyrogram/methods/chats/ban_chat_member.py
rename to pyrofork/methods/chats/ban_chat_member.py
index afb0d1a2..12a79ec1 100644
--- a/pyrogram/methods/chats/ban_chat_member.py
+++ b/pyrofork/methods/chats/ban_chat_member.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 
 
 class BanChatMember:
     async def ban_chat_member(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str],
         until_date: datetime = utils.zero_datetime()
@@ -59,7 +60,7 @@ class BanChatMember:
                 considered to be banned forever. Defaults to epoch (ban forever).
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, a service message will be returned (when applicable),
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, a service message will be returned (when applicable),
             otherwise, in case a message object couldn't be returned, True is returned.
 
         Example:
diff --git a/pyrogram/methods/chats/close_forum_topic.py b/pyrofork/methods/chats/close_forum_topic.py
similarity index 94%
rename from pyrogram/methods/chats/close_forum_topic.py
rename to pyrofork/methods/chats/close_forum_topic.py
index fb4c537f..78fcee27 100644
--- a/pyrogram/methods/chats/close_forum_topic.py
+++ b/pyrofork/methods/chats/close_forum_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class CloseForumTopic:
     async def close_forum_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         topic_id: int
     ) -> bool:
diff --git a/pyrogram/methods/chats/close_general_topic.py b/pyrofork/methods/chats/close_general_topic.py
similarity index 94%
rename from pyrogram/methods/chats/close_general_topic.py
rename to pyrofork/methods/chats/close_general_topic.py
index 2f915669..f1a3f879 100644
--- a/pyrogram/methods/chats/close_general_topic.py
+++ b/pyrofork/methods/chats/close_general_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class CloseGeneralTopic:
     async def close_general_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """Close a forum topic.
diff --git a/pyrogram/methods/chats/create_channel.py b/pyrofork/methods/chats/create_channel.py
similarity index 72%
rename from pyrogram/methods/chats/create_channel.py
rename to pyrofork/methods/chats/create_channel.py
index 292fa97d..bed425c2 100644
--- a/pyrogram/methods/chats/create_channel.py
+++ b/pyrofork/methods/chats/create_channel.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+#  along with Pyrofork.  If not, see .
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class CreateChannel:
     async def create_channel(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         title: str,
         description: str = ""
     ) -> "types.Chat":
@@ -38,7 +39,7 @@ class CreateChannel:
                 The channel description.
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/create_forum_topic.py b/pyrofork/methods/chats/create_forum_topic.py
similarity index 93%
rename from pyrogram/methods/chats/create_forum_topic.py
rename to pyrofork/methods/chats/create_forum_topic.py
index d6d23f30..247bae4d 100644
--- a/pyrogram/methods/chats/create_forum_topic.py
+++ b/pyrofork/methods/chats/create_forum_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class CreateForumTopic:
     async def create_forum_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         title: str,
         icon_color: int = None,
@@ -48,7 +48,7 @@ class CreateForumTopic:
                 Unique identifier of the custom emoji shown as the topic icon
 
         Returns:
-            :obj:`~pyrogram.types.ForumTopicCreated`: On success, a forum_topic_created object is returned.
+            :obj:`~pyrofork.types.ForumTopicCreated`: On success, a forum_topic_created object is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/create_group.py b/pyrofork/methods/chats/create_group.py
similarity index 75%
rename from pyrogram/methods/chats/create_group.py
rename to pyrofork/methods/chats/create_group.py
index 027315de..8f2679b0 100644
--- a/pyrogram/methods/chats/create_group.py
+++ b/pyrofork/methods/chats/create_group.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class CreateGroup:
     async def create_group(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         title: str,
         users: Union[Union[int, str], List[Union[int, str]]]
     ) -> "types.Chat":
@@ -33,7 +34,7 @@ class CreateGroup:
 
         .. note::
 
-            If you want to create a new supergroup, use :meth:`~pyrogram.Client.create_supergroup` instead.
+            If you want to create a new supergroup, use :meth:`~pyrofork.Client.create_supergroup` instead.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -47,7 +48,7 @@ class CreateGroup:
                 Multiple users can be invited by passing a list of IDs, usernames or phone numbers.
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/create_supergroup.py b/pyrofork/methods/chats/create_supergroup.py
similarity index 72%
rename from pyrogram/methods/chats/create_supergroup.py
rename to pyrofork/methods/chats/create_supergroup.py
index d1cbbbd8..f2230736 100644
--- a/pyrogram/methods/chats/create_supergroup.py
+++ b/pyrofork/methods/chats/create_supergroup.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+#  along with Pyrofork.  If not, see .
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class CreateSupergroup:
     async def create_supergroup(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         title: str,
         description: str = ""
     ) -> "types.Chat":
@@ -30,7 +31,7 @@ class CreateSupergroup:
 
         .. note::
 
-            If you want to create a new basic group, use :meth:`~pyrogram.Client.create_group` instead.
+            If you want to create a new basic group, use :meth:`~pyrofork.Client.create_group` instead.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -42,7 +43,7 @@ class CreateSupergroup:
                 The supergroup description.
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/delete_channel.py b/pyrofork/methods/chats/delete_channel.py
similarity index 75%
rename from pyrogram/methods/chats/delete_channel.py
rename to pyrofork/methods/chats/delete_channel.py
index c1e4b953..9668f2b2 100644
--- a/pyrogram/methods/chats/delete_channel.py
+++ b/pyrofork/methods/chats/delete_channel.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteChannel:
     async def delete_channel(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """Delete a channel.
diff --git a/pyrogram/methods/chats/delete_chat_photo.py b/pyrofork/methods/chats/delete_chat_photo.py
similarity index 82%
rename from pyrogram/methods/chats/delete_chat_photo.py
rename to pyrofork/methods/chats/delete_chat_photo.py
index a8ce7e63..fb476fe3 100644
--- a/pyrogram/methods/chats/delete_chat_photo.py
+++ b/pyrofork/methods/chats/delete_chat_photo.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteChatPhoto:
     async def delete_chat_photo(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """Delete a chat photo.
diff --git a/pyrogram/methods/chats/delete_forum_topic.py b/pyrofork/methods/chats/delete_forum_topic.py
similarity index 95%
rename from pyrogram/methods/chats/delete_forum_topic.py
rename to pyrofork/methods/chats/delete_forum_topic.py
index 0fcc8da5..8b5d897e 100644
--- a/pyrogram/methods/chats/delete_forum_topic.py
+++ b/pyrofork/methods/chats/delete_forum_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class DeleteForumTopic:
     async def delete_forum_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         topic_id: int
     ) -> bool:
diff --git a/pyrogram/methods/chats/delete_supergroup.py b/pyrofork/methods/chats/delete_supergroup.py
similarity index 75%
rename from pyrogram/methods/chats/delete_supergroup.py
rename to pyrofork/methods/chats/delete_supergroup.py
index 1c246613..085bbfd9 100644
--- a/pyrogram/methods/chats/delete_supergroup.py
+++ b/pyrofork/methods/chats/delete_supergroup.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteSupergroup:
     async def delete_supergroup(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """Delete a supergroup.
diff --git a/pyrogram/methods/chats/delete_user_history.py b/pyrofork/methods/chats/delete_user_history.py
similarity index 80%
rename from pyrogram/methods/chats/delete_user_history.py
rename to pyrofork/methods/chats/delete_user_history.py
index 0f5c0bc8..e3c0d61a 100644
--- a/pyrogram/methods/chats/delete_user_history.py
+++ b/pyrofork/methods/chats/delete_user_history.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteUserHistory:
     async def delete_user_history(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str],
     ) -> bool:
diff --git a/pyrogram/methods/chats/edit_forum_topic.py b/pyrofork/methods/chats/edit_forum_topic.py
similarity index 95%
rename from pyrogram/methods/chats/edit_forum_topic.py
rename to pyrofork/methods/chats/edit_forum_topic.py
index ceb0aa6d..8f0c5692 100644
--- a/pyrogram/methods/chats/edit_forum_topic.py
+++ b/pyrofork/methods/chats/edit_forum_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class EditForumTopic:
     async def edit_forum_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         topic_id: int,
         title: str = None,
diff --git a/pyrogram/methods/chats/edit_general_topic.py b/pyrofork/methods/chats/edit_general_topic.py
similarity index 94%
rename from pyrogram/methods/chats/edit_general_topic.py
rename to pyrofork/methods/chats/edit_general_topic.py
index 13459843..c66be360 100644
--- a/pyrogram/methods/chats/edit_general_topic.py
+++ b/pyrofork/methods/chats/edit_general_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class EditGeneralTopic:
     async def edit_general_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         title: str
     ) -> bool:
diff --git a/pyrogram/methods/chats/get_chat.py b/pyrofork/methods/chats/get_chat.py
similarity index 82%
rename from pyrogram/methods/chats/get_chat.py
rename to pyrofork/methods/chats/get_chat.py
index 0dd0e531..b5efb29a 100644
--- a/pyrogram/methods/chats/get_chat.py
+++ b/pyrofork/methods/chats/get_chat.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 
 
 class GetChat:
     async def get_chat(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> Union["types.Chat", "types.ChatPreview"]:
         """Get up to date information about a chat.
@@ -44,7 +45,7 @@ class GetChat:
                 You can also use chat public link in form of *t.me/* (str).
 
         Returns:
-            :obj:`~pyrogram.types.Chat` | :obj:`~pyrogram.types.ChatPreview`: On success, if you've already joined the chat, a chat object is returned,
+            :obj:`~pyrofork.types.Chat` | :obj:`~pyrofork.types.ChatPreview`: On success, if you've already joined the chat, a chat object is returned,
             otherwise, a chat preview object is returned.
 
         Raises:
@@ -53,7 +54,7 @@ class GetChat:
         Example:
             .. code-block:: python
 
-                chat = await app.get_chat("pyrogram")
+                chat = await app.get_chat("pyrofork")
                 print(chat)
         """
         match = self.INVITE_LINK_RE.match(str(chat_id))
diff --git a/pyrogram/methods/chats/get_chat_event_log.py b/pyrofork/methods/chats/get_chat_event_log.py
similarity index 86%
rename from pyrogram/methods/chats/get_chat_event_log.py
rename to pyrofork/methods/chats/get_chat_event_log.py
index 6ac0893a..0d872bb4 100644
--- a/pyrogram/methods/chats/get_chat_event_log.py
+++ b/pyrofork/methods/chats/get_chat_event_log.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List, AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatEventLog:
     async def get_chat_event_log(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         query: str = "",
         offset_id: int = 0,
@@ -57,7 +58,7 @@ class GetChatEventLog:
                 Maximum amount of events to be returned.
                 By default, all events will be returned.
 
-            filters (:obj:`~pyrogram.types.ChatEventFilter`, *optional*):
+            filters (:obj:`~pyrofork.types.ChatEventFilter`, *optional*):
                 The types of events to return.
                 By default, all types will be returned.
 
@@ -66,7 +67,7 @@ class GetChatEventLog:
                 By default, events relating to all users will be returned.
 
         Yields:
-            :obj:`~pyrogram.types.ChatEvent` objects.
+            :obj:`~pyrofork.types.ChatEvent` objects.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/get_chat_member.py b/pyrofork/methods/chats/get_chat_member.py
similarity index 84%
rename from pyrogram/methods/chats/get_chat_member.py
rename to pyrofork/methods/chats/get_chat_member.py
index 015c1785..ffbca306 100644
--- a/pyrogram/methods/chats/get_chat_member.py
+++ b/pyrofork/methods/chats/get_chat_member.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.errors import UserNotParticipant
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.errors import UserNotParticipant
 
 
 class GetChatMember:
     async def get_chat_member(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str]
     ) -> "types.ChatMember":
@@ -46,7 +47,7 @@ class GetChatMember:
                 You can also use user profile link in form of *t.me/* (str).
 
         Returns:
-            :obj:`~pyrogram.types.ChatMember`: On success, a chat member is returned.
+            :obj:`~pyrofork.types.ChatMember`: On success, a chat member is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/get_chat_members.py b/pyrofork/methods/chats/get_chat_members.py
similarity index 85%
rename from pyrogram/methods/chats/get_chat_members.py
rename to pyrofork/methods/chats/get_chat_members.py
index 3700a1a0..8a5ebf77 100644
--- a/pyrogram/methods/chats/get_chat_members.py
+++ b/pyrofork/methods/chats/get_chat_members.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import raw, types, enums
+import pyrofork
+from pyrofork import raw, types, enums
 
 log = logging.getLogger(__name__)
 
 
 async def get_chunk(
-    client: "pyrogram.Client",
+    client: "pyrofork.Client",
     chat_id: Union[int, str],
     offset: int,
     filter: "enums.ChatMembersFilter",
@@ -59,7 +60,7 @@ async def get_chunk(
 
 class GetChatMembers:
     async def get_chat_members(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         query: str = "",
         limit: int = 0,
@@ -80,24 +81,24 @@ class GetChatMembers:
             query (``str``, *optional*):
                 Query string to filter members based on their display names and usernames.
                 Only applicable to supergroups and channels. Defaults to "" (empty string).
-                A query string is applicable only for :obj:`~pyrogram.enums.ChatMembersFilter.SEARCH`,
-                :obj:`~pyrogram.enums.ChatMembersFilter.BANNED` and :obj:`~pyrogram.enums.ChatMembersFilter.RESTRICTED`
+                A query string is applicable only for :obj:`~pyrofork.enums.ChatMembersFilter.SEARCH`,
+                :obj:`~pyrofork.enums.ChatMembersFilter.BANNED` and :obj:`~pyrofork.enums.ChatMembersFilter.RESTRICTED`
                 filters only.
 
             limit (``int``, *optional*):
                 Limits the number of members to be retrieved.
 
-            filter (:obj:`~pyrogram.enums.ChatMembersFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.ChatMembersFilter`, *optional*):
                 Filter used to select the kind of members you want to retrieve. Only applicable for supergroups
                 and channels.
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.ChatMember` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.ChatMember` objects is returned.
 
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
                 # Get members
                 async for member in app.get_chat_members(chat_id):
diff --git a/pyrogram/methods/chats/get_chat_members_count.py b/pyrofork/methods/chats/get_chat_members_count.py
similarity index 82%
rename from pyrogram/methods/chats/get_chat_members_count.py
rename to pyrofork/methods/chats/get_chat_members_count.py
index 71a8c0ef..e4ccac11 100644
--- a/pyrogram/methods/chats/get_chat_members_count.py
+++ b/pyrofork/methods/chats/get_chat_members_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetChatMembersCount:
     async def get_chat_members_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/chats/get_chat_online_count.py
similarity index 76%
rename from pyrogram/methods/chats/get_chat_online_count.py
rename to pyrofork/methods/chats/get_chat_online_count.py
index fe6ab59a..335e317d 100644
--- a/pyrogram/methods/chats/get_chat_online_count.py
+++ b/pyrofork/methods/chats/get_chat_online_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetChatOnlineCount:
     async def get_chat_online_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> int:
         """Get the number of members that are currently online in a chat.
diff --git a/pyrogram/methods/chats/get_dialogs.py b/pyrofork/methods/chats/get_dialogs.py
similarity index 84%
rename from pyrogram/methods/chats/get_dialogs.py
rename to pyrofork/methods/chats/get_dialogs.py
index ccca6381..d357087a 100644
--- a/pyrogram/methods/chats/get_dialogs.py
+++ b/pyrofork/methods/chats/get_dialogs.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import types, raw, utils
-from pyrogram.errors import ChannelPrivate
+import pyrofork
+from pyrofork import types, raw, utils
+from pyrofork.errors import ChannelPrivate
 
 
 class GetDialogs:
     async def get_dialogs(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         limit: int = 0
     ) -> Optional[AsyncGenerator["types.Dialog", None]]:
         """Get a user's dialogs sequentially.
@@ -38,7 +39,7 @@ class GetDialogs:
                 By default, no limit is applied and all dialogs are returned.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.Dialog` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.Dialog` objects.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/get_dialogs_count.py b/pyrofork/methods/chats/get_dialogs_count.py
similarity index 79%
rename from pyrogram/methods/chats/get_dialogs_count.py
rename to pyrofork/methods/chats/get_dialogs_count.py
index ae22eb5c..4cf991ab 100644
--- a/pyrogram/methods/chats/get_dialogs_count.py
+++ b/pyrofork/methods/chats/get_dialogs_count.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetDialogsCount:
     async def get_dialogs_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         pinned_only: bool = False
     ) -> int:
         """Get the total count of your dialogs.
diff --git a/pyrogram/methods/chats/get_forum_topics.py b/pyrofork/methods/chats/get_forum_topics.py
similarity index 92%
rename from pyrogram/methods/chats/get_forum_topics.py
rename to pyrofork/methods/chats/get_forum_topics.py
index 1620bc4b..c57f192d 100644
--- a/pyrogram/methods/chats/get_forum_topics.py
+++ b/pyrofork/methods/chats/get_forum_topics.py
@@ -20,17 +20,17 @@
 import logging
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 
 log = logging.getLogger(__name__)
 
 
 class GetForumTopics:
     async def get_forum_topics(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         limit: int = 0
     ) -> Optional[AsyncGenerator["types.ForumTopic", None]]:
@@ -47,7 +47,7 @@ class GetForumTopics:
                 Limits the number of topics to be retrieved.
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.ForumTopic` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.ForumTopic` objects is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/get_forum_topics_by_id.py b/pyrofork/methods/chats/get_forum_topics_by_id.py
similarity index 92%
rename from pyrogram/methods/chats/get_forum_topics_by_id.py
rename to pyrofork/methods/chats/get_forum_topics_by_id.py
index ea2114aa..b4fab58c 100644
--- a/pyrogram/methods/chats/get_forum_topics_by_id.py
+++ b/pyrofork/methods/chats/get_forum_topics_by_id.py
@@ -20,17 +20,17 @@
 import logging
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 
 log = logging.getLogger(__name__)
 
 
 class GetForumTopicsByID:
     async def get_forum_topics_by_id(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         topic_ids: Union[int, Iterable[int]]
     ) -> Union["types.ForumTopic", List["types.ForumTopic"]]:
@@ -48,7 +48,7 @@ class GetForumTopicsByID:
                 topic themselves.
 
         Returns:
-            :obj:`~pyrogram.types.ForumTopic` | List of :obj:`~pyrogram.types.ForumTopic`: In case *topic_ids* was not
+            :obj:`~pyrofork.types.ForumTopic` | List of :obj:`~pyrofork.types.ForumTopic`: In case *topic_ids* was not
             a list, a single topic is returned, otherwise a list of topics is returned.
 
         Example:
diff --git a/pyrogram/methods/chats/get_nearby_chats.py b/pyrofork/methods/chats/get_nearby_chats.py
similarity index 77%
rename from pyrogram/methods/chats/get_nearby_chats.py
rename to pyrofork/methods/chats/get_nearby_chats.py
index 8d1163ac..fba08c8f 100644
--- a/pyrogram/methods/chats/get_nearby_chats.py
+++ b/pyrofork/methods/chats/get_nearby_chats.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 
 
 class GetNearbyChats:
     async def get_nearby_chats(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         latitude: float,
         longitude: float
     ) -> List["types.Chat"]:
@@ -42,7 +43,7 @@ class GetNearbyChats:
                 Longitude of the location.
 
         Returns:
-            List of :obj:`~pyrogram.types.Chat`: On success, a list of nearby chats is returned.
+            List of :obj:`~pyrofork.types.Chat`: On success, a list of nearby chats is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/get_send_as_chats.py b/pyrofork/methods/chats/get_send_as_chats.py
similarity index 77%
rename from pyrogram/methods/chats/get_send_as_chats.py
rename to pyrofork/methods/chats/get_send_as_chats.py
index b530fe48..f7fe2b93 100644
--- a/pyrogram/methods/chats/get_send_as_chats.py
+++ b/pyrofork/methods/chats/get_send_as_chats.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetSendAsChats:
     async def get_send_as_chats(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> List["types.Chat"]:
         """Get the list of "send_as" chats available.
@@ -38,7 +39,7 @@ class GetSendAsChats:
                 You can also use chat public link in form of *t.me/* (str).
 
         Returns:
-            List[:obj:`~pyrogram.types.Chat`]: The list of chats.
+            List[:obj:`~pyrofork.types.Chat`]: The list of chats.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/hide_general_topic.py b/pyrofork/methods/chats/hide_general_topic.py
similarity index 94%
rename from pyrogram/methods/chats/hide_general_topic.py
rename to pyrofork/methods/chats/hide_general_topic.py
index 901758ca..14601bf3 100644
--- a/pyrogram/methods/chats/hide_general_topic.py
+++ b/pyrofork/methods/chats/hide_general_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class HideGeneralTopic:
     async def hide_general_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """hide a general forum topic.
diff --git a/pyrogram/methods/chats/join_chat.py b/pyrofork/methods/chats/join_chat.py
similarity index 77%
rename from pyrogram/methods/chats/join_chat.py
rename to pyrofork/methods/chats/join_chat.py
index def52db4..a5038925 100644
--- a/pyrogram/methods/chats/join_chat.py
+++ b/pyrofork/methods/chats/join_chat.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class JoinChat:
     async def join_chat(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> "types.Chat":
         """Join a group chat or channel.
@@ -38,7 +39,7 @@ class JoinChat:
                 a username of the target channel/supergroup (in the format @username) or a chat id of a linked chat (channel or supergroup).
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
@@ -47,10 +48,10 @@ class JoinChat:
                 await app.join_chat("https://t.me/+AbCdEf0123456789")
 
                 # Join chat via username
-                await app.join_chat("pyrogram")
+                await app.join_chat("pyrofork")
 
                 # Join a linked chat
-                await app.join_chat(app.get_chat("pyrogram").linked_chat.id)
+                await app.join_chat(app.get_chat("pyrofork").linked_chat.id)
         """
         match = self.INVITE_LINK_RE.match(str(chat_id))
 
diff --git a/pyrogram/methods/chats/leave_chat.py b/pyrofork/methods/chats/leave_chat.py
similarity index 84%
rename from pyrogram/methods/chats/leave_chat.py
rename to pyrofork/methods/chats/leave_chat.py
index 0e307897..cdd06e31 100644
--- a/pyrogram/methods/chats/leave_chat.py
+++ b/pyrofork/methods/chats/leave_chat.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class LeaveChat:
     async def leave_chat(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         delete: bool = False
     ):
diff --git a/pyrogram/methods/chats/mark_chat_unread.py b/pyrofork/methods/chats/mark_chat_unread.py
similarity index 74%
rename from pyrogram/methods/chats/mark_chat_unread.py
rename to pyrofork/methods/chats/mark_chat_unread.py
index b5426597..f78606d2 100644
--- a/pyrogram/methods/chats/mark_chat_unread.py
+++ b/pyrofork/methods/chats/mark_chat_unread.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class MarkChatUnread:
     async def mark_chat_unread(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
     ) -> bool:
         """Mark a chat as unread.
diff --git a/pyrogram/methods/chats/pin_chat_message.py b/pyrofork/methods/chats/pin_chat_message.py
similarity index 84%
rename from pyrogram/methods/chats/pin_chat_message.py
rename to pyrofork/methods/chats/pin_chat_message.py
index 73b373ff..df8fbd0b 100644
--- a/pyrogram/methods/chats/pin_chat_message.py
+++ b/pyrofork/methods/chats/pin_chat_message.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class PinChatMessage:
     async def pin_chat_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         disable_notification: bool = False,
@@ -53,7 +54,7 @@ class PinChatMessage:
                 Applicable to private chats only. Defaults to False.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the service message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the service message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/chats/promote_chat_member.py b/pyrofork/methods/chats/promote_chat_member.py
similarity index 96%
rename from pyrogram/methods/chats/promote_chat_member.py
rename to pyrofork/methods/chats/promote_chat_member.py
index 9fe37180..ce0a1ba6 100644
--- a/pyrogram/methods/chats/promote_chat_member.py
+++ b/pyrofork/methods/chats/promote_chat_member.py
@@ -19,13 +19,13 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, types, errors
+import pyrofork
+from pyrofork import raw, types, errors
 
 
 class PromoteChatMember:
     async def promote_chat_member(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str],
         privileges: "types.ChatPrivileges" = None,
@@ -47,7 +47,7 @@ class PromoteChatMember:
                 For a contact that exists in your Telegram address book you can use his phone number (str).
                 You can also use user profile link in form of *t.me/* (str).
 
-            privileges (:obj:`~pyrogram.types.ChatPrivileges`, *optional*):
+            privileges (:obj:`~pyrofork.types.ChatPrivileges`, *optional*):
                 New user privileges.
 
         Returns:
diff --git a/pyrogram/methods/chats/reopen_forum_topic.py b/pyrofork/methods/chats/reopen_forum_topic.py
similarity index 94%
rename from pyrogram/methods/chats/reopen_forum_topic.py
rename to pyrofork/methods/chats/reopen_forum_topic.py
index 1b5e6a63..4001e951 100644
--- a/pyrogram/methods/chats/reopen_forum_topic.py
+++ b/pyrofork/methods/chats/reopen_forum_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class ReopenForumTopic:
     async def reopen_forum_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         topic_id: int
     ) -> bool:
diff --git a/pyrogram/methods/chats/reopen_general_topic.py b/pyrofork/methods/chats/reopen_general_topic.py
similarity index 94%
rename from pyrogram/methods/chats/reopen_general_topic.py
rename to pyrofork/methods/chats/reopen_general_topic.py
index a1ba65da..e4fef253 100644
--- a/pyrogram/methods/chats/reopen_general_topic.py
+++ b/pyrofork/methods/chats/reopen_general_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class ReopenGeneralTopic:
     async def reopen_general_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """Reopen a general forum topic.
diff --git a/pyrogram/methods/chats/restrict_chat_member.py b/pyrofork/methods/chats/restrict_chat_member.py
similarity index 96%
rename from pyrogram/methods/chats/restrict_chat_member.py
rename to pyrofork/methods/chats/restrict_chat_member.py
index d537f961..24b93873 100644
--- a/pyrogram/methods/chats/restrict_chat_member.py
+++ b/pyrofork/methods/chats/restrict_chat_member.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 
 
 class RestrictChatMember:
     async def restrict_chat_member(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str],
         permissions: "types.ChatPermissions",
@@ -50,7 +50,7 @@ class RestrictChatMember:
                 For a contact that exists in your Telegram address book you can use his phone number (str).
                 You can also use user profile link in form of *t.me/* (str).
 
-            permissions (:obj:`~pyrogram.types.ChatPermissions`):
+            permissions (:obj:`~pyrofork.types.ChatPermissions`):
                 New user permissions.
 
             until_date (:py:obj:`~datetime.datetime`, *optional*):
@@ -59,13 +59,13 @@ class RestrictChatMember:
                 considered to be banned forever. Defaults to epoch (ban forever).
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
 
                 from datetime import datetime, timedelta
-                from pyrogram.types import ChatPermissions
+                from pyrofork.types import ChatPermissions
 
                 # Completely restrict chat member (mute) forever
                 await app.restrict_chat_member(chat_id, user_id, ChatPermissions())
diff --git a/pyrogram/methods/chats/set_administrator_title.py b/pyrofork/methods/chats/set_administrator_title.py
similarity index 87%
rename from pyrogram/methods/chats/set_administrator_title.py
rename to pyrofork/methods/chats/set_administrator_title.py
index 9e042408..f6206895 100644
--- a/pyrogram/methods/chats/set_administrator_title.py
+++ b/pyrofork/methods/chats/set_administrator_title.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetAdministratorTitle:
     async def set_administrator_title(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str],
         title: str,
diff --git a/pyrogram/methods/chats/set_chat_description.py b/pyrofork/methods/chats/set_chat_description.py
similarity index 81%
rename from pyrogram/methods/chats/set_chat_description.py
rename to pyrofork/methods/chats/set_chat_description.py
index c9cd14da..b9393429 100644
--- a/pyrogram/methods/chats/set_chat_description.py
+++ b/pyrofork/methods/chats/set_chat_description.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetChatDescription:
     async def set_chat_description(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         description: str
     ) -> bool:
diff --git a/pyrogram/methods/chats/set_chat_permissions.py b/pyrofork/methods/chats/set_chat_permissions.py
similarity index 96%
rename from pyrogram/methods/chats/set_chat_permissions.py
rename to pyrofork/methods/chats/set_chat_permissions.py
index 9210b246..e21b28fd 100644
--- a/pyrogram/methods/chats/set_chat_permissions.py
+++ b/pyrofork/methods/chats/set_chat_permissions.py
@@ -19,14 +19,14 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class SetChatPermissions:
     async def set_chat_permissions(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         permissions: "types.ChatPermissions",
     ) -> "types.Chat":
@@ -42,16 +42,16 @@ class SetChatPermissions:
                 Unique identifier (int) or username (str) of the target chat.
                 You can also use chat public link in form of *t.me/* (str).
 
-            permissions (:obj:`~pyrogram.types.ChatPermissions`):
+            permissions (:obj:`~pyrofork.types.ChatPermissions`):
                 New default chat permissions.
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Example:
             .. code-block:: python
 
-                from pyrogram.types import ChatPermissions
+                from pyrofork.types import ChatPermissions
 
                 # Completely restrict chat
                 await app.set_chat_permissions(chat_id, ChatPermissions())
diff --git a/pyrogram/methods/chats/set_chat_photo.py b/pyrofork/methods/chats/set_chat_photo.py
similarity index 86%
rename from pyrogram/methods/chats/set_chat_photo.py
rename to pyrofork/methods/chats/set_chat_photo.py
index 7a305739..dd514330 100644
--- a/pyrogram/methods/chats/set_chat_photo.py
+++ b/pyrofork/methods/chats/set_chat_photo.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import os
 from typing import Union, BinaryIO
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import utils
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import raw
+from pyrofork import utils
+from pyrofork.file_id import FileType
 
 
 class SetChatPhoto:
     async def set_chat_photo(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         *,
         photo: Union[str, BinaryIO] = None,
@@ -49,12 +50,12 @@ class SetChatPhoto:
                 You can also use chat public link in form of *t.me/* (str).
 
             photo (``str`` | ``BinaryIO``, *optional*):
-                New chat photo. You can pass a :obj:`~pyrogram.types.Photo` file_id, a file path to upload a new photo
+                New chat photo. You can pass a :obj:`~pyrofork.types.Photo` file_id, a file path to upload a new photo
                 from your local machine or a binary file-like object with its attribute
                 ".name" set for in-memory uploads.
 
             video (``str`` | ``BinaryIO``, *optional*):
-                New chat video. You can pass a :obj:`~pyrogram.types.Video` file_id, a file path to upload a new video
+                New chat video. You can pass a :obj:`~pyrofork.types.Video` file_id, a file path to upload a new video
                 from your local machine or a binary file-like object with its attribute
                 ".name" set for in-memory uploads.
 
diff --git a/pyrogram/methods/chats/set_chat_protected_content.py b/pyrofork/methods/chats/set_chat_protected_content.py
similarity index 76%
rename from pyrogram/methods/chats/set_chat_protected_content.py
rename to pyrofork/methods/chats/set_chat_protected_content.py
index b64848ce..28dfebf3 100644
--- a/pyrogram/methods/chats/set_chat_protected_content.py
+++ b/pyrofork/methods/chats/set_chat_protected_content.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetChatProtectedContent:
     async def set_chat_protected_content(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         enabled: bool
     ) -> bool:
diff --git a/pyrogram/methods/chats/set_chat_title.py b/pyrofork/methods/chats/set_chat_title.py
similarity index 84%
rename from pyrogram/methods/chats/set_chat_title.py
rename to pyrofork/methods/chats/set_chat_title.py
index 1e0b2ed8..e0fdd7df 100644
--- a/pyrogram/methods/chats/set_chat_title.py
+++ b/pyrofork/methods/chats/set_chat_title.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetChatTitle:
     async def set_chat_title(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         title: str
     ) -> bool:
diff --git a/pyrogram/methods/chats/set_chat_username.py b/pyrofork/methods/chats/set_chat_username.py
similarity index 80%
rename from pyrogram/methods/chats/set_chat_username.py
rename to pyrofork/methods/chats/set_chat_username.py
index af12d542..0482097e 100644
--- a/pyrogram/methods/chats/set_chat_username.py
+++ b/pyrofork/methods/chats/set_chat_username.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetChatUsername:
     async def set_chat_username(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         username: Optional[str]
     ) -> bool:
         """Set a channel or a supergroup username.
 
-        To set your own username (for users only, not bots) you can use :meth:`~pyrogram.Client.set_username`.
+        To set your own username (for users only, not bots) you can use :meth:`~pyrofork.Client.set_username`.
 
         .. include:: /_includes/usable-by/users.rst
 
diff --git a/pyrogram/methods/chats/set_send_as_chat.py b/pyrofork/methods/chats/set_send_as_chat.py
similarity index 77%
rename from pyrogram/methods/chats/set_send_as_chat.py
rename to pyrofork/methods/chats/set_send_as_chat.py
index 95f29464..f976207f 100644
--- a/pyrogram/methods/chats/set_send_as_chat.py
+++ b/pyrofork/methods/chats/set_send_as_chat.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetSendAsChat:
     async def set_send_as_chat(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         send_as_chat_id: Union[int, str]
     ) -> bool:
         """Set the default "send_as" chat for a chat.
 
-        Use :meth:`~pyrogram.Client.get_send_as_chats` to get all the "send_as" chats available for use.
+        Use :meth:`~pyrofork.Client.get_send_as_chats` to get all the "send_as" chats available for use.
 
         .. include:: /_includes/usable-by/users.rst
 
diff --git a/pyrogram/methods/chats/set_slow_mode.py b/pyrofork/methods/chats/set_slow_mode.py
similarity index 80%
rename from pyrogram/methods/chats/set_slow_mode.py
rename to pyrofork/methods/chats/set_slow_mode.py
index eeac5525..62f21ba5 100644
--- a/pyrogram/methods/chats/set_slow_mode.py
+++ b/pyrofork/methods/chats/set_slow_mode.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetSlowMode:
     async def set_slow_mode(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         seconds: Optional[int]
     ) -> bool:
diff --git a/pyrogram/methods/chats/unarchive_chats.py b/pyrofork/methods/chats/unarchive_chats.py
similarity index 81%
rename from pyrogram/methods/chats/unarchive_chats.py
rename to pyrofork/methods/chats/unarchive_chats.py
index 160a56b1..28be6a0b 100644
--- a/pyrogram/methods/chats/unarchive_chats.py
+++ b/pyrofork/methods/chats/unarchive_chats.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UnarchiveChats:
     async def unarchive_chats(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/chats/unban_chat_member.py
similarity index 82%
rename from pyrogram/methods/chats/unban_chat_member.py
rename to pyrofork/methods/chats/unban_chat_member.py
index 38eff234..25873c29 100644
--- a/pyrogram/methods/chats/unban_chat_member.py
+++ b/pyrofork/methods/chats/unban_chat_member.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UnbanChatMember:
     async def unban_chat_member(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: Union[int, str]
     ) -> bool:
diff --git a/pyrogram/methods/chats/unhide_general_topic.py b/pyrofork/methods/chats/unhide_general_topic.py
similarity index 94%
rename from pyrogram/methods/chats/unhide_general_topic.py
rename to pyrofork/methods/chats/unhide_general_topic.py
index 2bad75ed..aa154326 100644
--- a/pyrogram/methods/chats/unhide_general_topic.py
+++ b/pyrofork/methods/chats/unhide_general_topic.py
@@ -15,15 +15,15 @@
 #
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from typing import Union
 
 
 class UnhideGeneralTopic:
     async def unhide_general_topic(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> bool:
         """unhide a general forum topic.
diff --git a/pyrogram/methods/chats/unpin_all_chat_messages.py b/pyrofork/methods/chats/unpin_all_chat_messages.py
similarity index 79%
rename from pyrogram/methods/chats/unpin_all_chat_messages.py
rename to pyrofork/methods/chats/unpin_all_chat_messages.py
index c05b2672..dfab639b 100644
--- a/pyrogram/methods/chats/unpin_all_chat_messages.py
+++ b/pyrofork/methods/chats/unpin_all_chat_messages.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UnpinAllChatMessages:
     async def unpin_all_chat_messages(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/chats/unpin_chat_message.py
similarity index 81%
rename from pyrogram/methods/chats/unpin_chat_message.py
rename to pyrofork/methods/chats/unpin_chat_message.py
index 4d1c1a23..de9ce9d8 100644
--- a/pyrogram/methods/chats/unpin_chat_message.py
+++ b/pyrofork/methods/chats/unpin_chat_message.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UnpinChatMessage:
     async def unpin_chat_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int = 0
     ) -> bool:
diff --git a/pyrogram/methods/chats/update_color.py b/pyrofork/methods/chats/update_color.py
similarity index 82%
rename from pyrogram/methods/chats/update_color.py
rename to pyrofork/methods/chats/update_color.py
index f14d5568..f28cdc78 100644
--- a/pyrogram/methods/chats/update_color.py
+++ b/pyrofork/methods/chats/update_color.py
@@ -1,30 +1,30 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import enums
+import pyrofork
+from pyrofork import raw
+from pyrofork import enums
 
 class UpdateColor:
     async def update_color(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         color: Union["enums.ReplyColor", "enums.ProfileColor"],
         background_emoji_id: int = None
@@ -38,7 +38,7 @@ class UpdateColor:
                 Unique identifier (int) or username (str) of the target chat.
                 You can also use chat public link in form of *t.me/* (str).
 
-            color (:obj:`~pyrogram.enums.ReplyColor` | :obj:`~pyrogram.enums.ProfileColor`):
+            color (:obj:`~pyrofork.enums.ReplyColor` | :obj:`~pyrofork.enums.ProfileColor`):
                 Color type.
                 Profile color can only be set for the user.
 
diff --git a/pyrogram/methods/contacts/__init__.py b/pyrofork/methods/contacts/__init__.py
similarity index 70%
rename from pyrogram/methods/contacts/__init__.py
rename to pyrofork/methods/contacts/__init__.py
index 5849ce43..61c7af7c 100644
--- a/pyrogram/methods/contacts/__init__.py
+++ b/pyrofork/methods/contacts/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .add_contact import AddContact
 from .delete_contacts import DeleteContacts
diff --git a/pyrogram/methods/contacts/add_contact.py b/pyrofork/methods/contacts/add_contact.py
similarity index 80%
rename from pyrogram/methods/contacts/add_contact.py
rename to pyrofork/methods/contacts/add_contact.py
index 26e15230..ff1162f4 100644
--- a/pyrogram/methods/contacts/add_contact.py
+++ b/pyrofork/methods/contacts/add_contact.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class AddContact:
     async def add_contact(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str],
         first_name: str,
         last_name: str = "",
@@ -55,7 +56,7 @@ class AddContact:
                 Defaults to False.
 
         Returns:
-            :obj:`~pyrogram.types.User`: On success the user is returned.
+            :obj:`~pyrofork.types.User`: On success the user is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/contacts/delete_contacts.py b/pyrofork/methods/contacts/delete_contacts.py
similarity index 78%
rename from pyrogram/methods/contacts/delete_contacts.py
rename to pyrofork/methods/contacts/delete_contacts.py
index cd2df5e1..227de1e3 100644
--- a/pyrogram/methods/contacts/delete_contacts.py
+++ b/pyrofork/methods/contacts/delete_contacts.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Union
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class DeleteContacts:
     async def delete_contacts(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_ids: Union[int, str, List[Union[int, str]]]
     ) -> Union["types.User", List["types.User"], None]:
         """Delete contacts from your Telegram address book.
@@ -37,7 +38,7 @@ class DeleteContacts:
                 You can also use user profile link in form of *t.me/* (str).
 
         Returns:
-            :obj:`~pyrogram.types.User` | List of :obj:`~pyrogram.types.User` | ``None``: In case *user_ids* was an
+            :obj:`~pyrofork.types.User` | List of :obj:`~pyrofork.types.User` | ``None``: In case *user_ids* was an
             integer or a string, a single User object is returned. In case *user_ids* was a list, a list of User objects
             is returned. In case nothing changed after calling the method (for example, when deleting a non-existent
             contact), None is returned.
diff --git a/pyrogram/methods/contacts/get_contacts.py b/pyrofork/methods/contacts/get_contacts.py
similarity index 68%
rename from pyrogram/methods/contacts/get_contacts.py
rename to pyrofork/methods/contacts/get_contacts.py
index 763f9a30..6a9b90e9 100644
--- a/pyrogram/methods/contacts/get_contacts.py
+++ b/pyrofork/methods/contacts/get_contacts.py
@@ -1,41 +1,42 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class GetContacts:
     async def get_contacts(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ) -> List["types.User"]:
         """Get contacts from your Telegram address book.
 
         .. include:: /_includes/usable-by/users.rst
 
         Returns:
-            List of :obj:`~pyrogram.types.User`: On success, a list of users is returned.
+            List of :obj:`~pyrofork.types.User`: On success, a list of users is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/contacts/get_contacts_count.py b/pyrofork/methods/contacts/get_contacts_count.py
similarity index 71%
rename from pyrogram/methods/contacts/get_contacts_count.py
rename to pyrofork/methods/contacts/get_contacts_count.py
index 56120bac..e2a573cc 100644
--- a/pyrogram/methods/contacts/get_contacts_count.py
+++ b/pyrofork/methods/contacts/get_contacts_count.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetContactsCount:
     async def get_contacts_count(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ) -> int:
         """Get the total count of contacts from your Telegram address book.
 
diff --git a/pyrogram/methods/contacts/import_contacts.py b/pyrofork/methods/contacts/import_contacts.py
similarity index 70%
rename from pyrogram/methods/contacts/import_contacts.py
rename to pyrofork/methods/contacts/import_contacts.py
index aa8fd4ae..7bc56c23 100644
--- a/pyrogram/methods/contacts/import_contacts.py
+++ b/pyrofork/methods/contacts/import_contacts.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class ImportContacts:
     async def import_contacts(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         contacts: List["types.InputPhoneContact"]
     ):
         """Import contacts to your Telegram address book.
@@ -33,7 +34,7 @@ class ImportContacts:
         .. include:: /_includes/usable-by/users.rst
 
         Parameters:
-            contacts (List of :obj:`~pyrogram.types.InputPhoneContact`):
+            contacts (List of :obj:`~pyrofork.types.InputPhoneContact`):
                 The contact list to be added
 
         Returns:
@@ -42,7 +43,7 @@ class ImportContacts:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InputPhoneContact
+                from pyrofork.types import InputPhoneContact
 
                 await app.import_contacts([
                     InputPhoneContact("+1-123-456-7890", "Foo"),
diff --git a/pyrogram/methods/decorators/__init__.py b/pyrofork/methods/decorators/__init__.py
similarity index 100%
rename from pyrogram/methods/decorators/__init__.py
rename to pyrofork/methods/decorators/__init__.py
diff --git a/pyrogram/methods/decorators/on_callback_query.py b/pyrofork/methods/decorators/on_callback_query.py
similarity index 65%
rename from pyrogram/methods/decorators/on_callback_query.py
rename to pyrofork/methods/decorators/on_callback_query.py
index 07e15a3e..72c7761e 100644
--- a/pyrogram/methods/decorators/on_callback_query.py
+++ b/pyrofork/methods/decorators/on_callback_query.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnCallbackQuery:
@@ -30,11 +31,11 @@ class OnCallbackQuery:
     ) -> Callable:
         """Decorator for handling callback queries.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.CallbackQueryHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.CallbackQueryHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of callback queries to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnCallbackQuery:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.CallbackQueryHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.CallbackQueryHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.CallbackQueryHandler(func, self),
+                        pyrofork.handlers.CallbackQueryHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_chat_join_request.py b/pyrofork/methods/decorators/on_chat_join_request.py
similarity index 65%
rename from pyrogram/methods/decorators/on_chat_join_request.py
rename to pyrofork/methods/decorators/on_chat_join_request.py
index 57fb709c..7cfaed41 100644
--- a/pyrogram/methods/decorators/on_chat_join_request.py
+++ b/pyrofork/methods/decorators/on_chat_join_request.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnChatJoinRequest:
@@ -30,11 +31,11 @@ class OnChatJoinRequest:
     ) -> Callable:
         """Decorator for handling chat join requests.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.ChatJoinRequestHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.ChatJoinRequestHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of updates to be passed in your function.
 
             group (``int``, *optional*):
@@ -42,15 +43,15 @@ class OnChatJoinRequest:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.ChatJoinRequestHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.ChatJoinRequestHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.ChatJoinRequestHandler(func, self),
+                        pyrofork.handlers.ChatJoinRequestHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_chat_member_updated.py b/pyrofork/methods/decorators/on_chat_member_updated.py
similarity index 65%
rename from pyrogram/methods/decorators/on_chat_member_updated.py
rename to pyrofork/methods/decorators/on_chat_member_updated.py
index c2f0e888..723b22b2 100644
--- a/pyrogram/methods/decorators/on_chat_member_updated.py
+++ b/pyrofork/methods/decorators/on_chat_member_updated.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnChatMemberUpdated:
@@ -30,11 +31,11 @@ class OnChatMemberUpdated:
     ) -> Callable:
         """Decorator for handling event changes on chat members.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.ChatMemberUpdatedHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.ChatMemberUpdatedHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of updates to be passed in your function.
 
             group (``int``, *optional*):
@@ -42,15 +43,15 @@ class OnChatMemberUpdated:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.ChatMemberUpdatedHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.ChatMemberUpdatedHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.ChatMemberUpdatedHandler(func, self),
+                        pyrofork.handlers.ChatMemberUpdatedHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_chosen_inline_result.py b/pyrofork/methods/decorators/on_chosen_inline_result.py
similarity index 66%
rename from pyrogram/methods/decorators/on_chosen_inline_result.py
rename to pyrofork/methods/decorators/on_chosen_inline_result.py
index 090f6c04..8d09f80e 100644
--- a/pyrogram/methods/decorators/on_chosen_inline_result.py
+++ b/pyrofork/methods/decorators/on_chosen_inline_result.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnChosenInlineResult:
@@ -30,11 +31,11 @@ class OnChosenInlineResult:
     ) -> Callable:
         """Decorator for handling chosen inline results.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.ChosenInlineResultHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.ChosenInlineResultHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of chosen inline results to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnChosenInlineResult:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.ChosenInlineResultHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.ChosenInlineResultHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.ChosenInlineResultHandler(func, self),
+                        pyrofork.handlers.ChosenInlineResultHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_deleted_messages.py b/pyrofork/methods/decorators/on_deleted_messages.py
similarity index 65%
rename from pyrogram/methods/decorators/on_deleted_messages.py
rename to pyrofork/methods/decorators/on_deleted_messages.py
index 9565c113..703ccec4 100644
--- a/pyrogram/methods/decorators/on_deleted_messages.py
+++ b/pyrofork/methods/decorators/on_deleted_messages.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnDeletedMessages:
@@ -30,11 +31,11 @@ class OnDeletedMessages:
     ) -> Callable:
         """Decorator for handling deleted messages.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.DeletedMessagesHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.DeletedMessagesHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of messages to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnDeletedMessages:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.DeletedMessagesHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.DeletedMessagesHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.DeletedMessagesHandler(func, self),
+                        pyrofork.handlers.DeletedMessagesHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_disconnect.py b/pyrofork/methods/decorators/on_disconnect.py
similarity index 58%
rename from pyrogram/methods/decorators/on_disconnect.py
rename to pyrofork/methods/decorators/on_disconnect.py
index 26aa62f8..c37c43f8 100644
--- a/pyrogram/methods/decorators/on_disconnect.py
+++ b/pyrofork/methods/decorators/on_disconnect.py
@@ -1,42 +1,43 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
+import pyrofork
 
 
 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
-        :obj:`~pyrogram.handlers.DisconnectHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.DisconnectHandler`.
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.DisconnectHandler(func))
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.DisconnectHandler(func))
             else:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
-                func.handlers.append((pyrogram.handlers.DisconnectHandler(func), 0))
+                func.handlers.append((pyrofork.handlers.DisconnectHandler(func), 0))
 
             return func
 
diff --git a/pyrogram/methods/decorators/on_edited_message.py b/pyrofork/methods/decorators/on_edited_message.py
similarity index 65%
rename from pyrogram/methods/decorators/on_edited_message.py
rename to pyrofork/methods/decorators/on_edited_message.py
index a8c86bb6..cc701041 100644
--- a/pyrogram/methods/decorators/on_edited_message.py
+++ b/pyrofork/methods/decorators/on_edited_message.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnEditedMessage:
@@ -30,11 +31,11 @@ class OnEditedMessage:
     ) -> Callable:
         """Decorator for handling edited messages.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.EditedMessageHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.EditedMessageHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of messages to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnEditedMessage:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.EditedMessageHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.EditedMessageHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.EditedMessageHandler(func, self),
+                        pyrofork.handlers.EditedMessageHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_inline_query.py b/pyrofork/methods/decorators/on_inline_query.py
similarity index 65%
rename from pyrogram/methods/decorators/on_inline_query.py
rename to pyrofork/methods/decorators/on_inline_query.py
index 6b53a464..a518499e 100644
--- a/pyrogram/methods/decorators/on_inline_query.py
+++ b/pyrofork/methods/decorators/on_inline_query.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnInlineQuery:
@@ -30,11 +31,11 @@ class OnInlineQuery:
     ) -> Callable:
         """Decorator for handling inline queries.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.InlineQueryHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.InlineQueryHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of inline queries to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnInlineQuery:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.InlineQueryHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.InlineQueryHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.InlineQueryHandler(func, self),
+                        pyrofork.handlers.InlineQueryHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_message.py b/pyrofork/methods/decorators/on_message.py
similarity index 65%
rename from pyrogram/methods/decorators/on_message.py
rename to pyrofork/methods/decorators/on_message.py
index 220c12bb..77e5863b 100644
--- a/pyrogram/methods/decorators/on_message.py
+++ b/pyrofork/methods/decorators/on_message.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnMessage:
@@ -30,11 +31,11 @@ class OnMessage:
     ) -> Callable:
         """Decorator for handling new messages.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.MessageHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.MessageHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of messages to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnMessage:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.MessageHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.MessageHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.MessageHandler(func, self),
+                        pyrofork.handlers.MessageHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_message_reaction_count_updated.py b/pyrofork/methods/decorators/on_message_reaction_count_updated.py
similarity index 66%
rename from pyrogram/methods/decorators/on_message_reaction_count_updated.py
rename to pyrofork/methods/decorators/on_message_reaction_count_updated.py
index 37e95a29..95370ec4 100644
--- a/pyrogram/methods/decorators/on_message_reaction_count_updated.py
+++ b/pyrofork/methods/decorators/on_message_reaction_count_updated.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnMessageReactionCountUpdated:
@@ -30,11 +31,11 @@ class OnMessageReactionCountUpdated:
     ) -> Callable:
         """Decorator for handling anonymous reaction changes on messages.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.MessageReactionCountUpdatedHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.MessageReactionCountUpdatedHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of updates to be passed in your function.
 
             group (``int``, *optional*):
@@ -42,15 +43,15 @@ class OnMessageReactionCountUpdated:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.MessageReactionCountUpdatedHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.MessageReactionCountUpdatedHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.MessageReactionCountUpdatedHandler(func, self),
+                        pyrofork.handlers.MessageReactionCountUpdatedHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_message_reaction_updated.py b/pyrofork/methods/decorators/on_message_reaction_updated.py
similarity index 65%
rename from pyrogram/methods/decorators/on_message_reaction_updated.py
rename to pyrofork/methods/decorators/on_message_reaction_updated.py
index bc27776b..8f12d423 100644
--- a/pyrogram/methods/decorators/on_message_reaction_updated.py
+++ b/pyrofork/methods/decorators/on_message_reaction_updated.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnMessageReactionUpdated:
@@ -30,11 +31,11 @@ class OnMessageReactionUpdated:
     ) -> Callable:
         """Decorator for handling reaction changes on messages.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.MessageReactionUpdatedHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.MessageReactionUpdatedHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of updates to be passed in your function.
 
             group (``int``, *optional*):
@@ -42,15 +43,15 @@ class OnMessageReactionUpdated:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.MessageReactionUpdatedHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.MessageReactionUpdatedHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.MessageReactionUpdatedHandler(func, self),
+                        pyrofork.handlers.MessageReactionUpdatedHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_poll.py b/pyrofork/methods/decorators/on_poll.py
similarity index 65%
rename from pyrogram/methods/decorators/on_poll.py
rename to pyrofork/methods/decorators/on_poll.py
index 6990c456..caa62dfa 100644
--- a/pyrogram/methods/decorators/on_poll.py
+++ b/pyrofork/methods/decorators/on_poll.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnPoll:
@@ -30,11 +31,11 @@ class OnPoll:
     ) -> Callable:
         """Decorator for handling poll updates.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.PollHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.PollHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of polls to be passed
                 in your function.
 
@@ -43,15 +44,15 @@ class OnPoll:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.PollHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.PollHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.PollHandler(func, self),
+                        pyrofork.handlers.PollHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_raw_update.py b/pyrofork/methods/decorators/on_raw_update.py
similarity index 64%
rename from pyrogram/methods/decorators/on_raw_update.py
rename to pyrofork/methods/decorators/on_raw_update.py
index 644bc8a5..f99b40ed 100644
--- a/pyrogram/methods/decorators/on_raw_update.py
+++ b/pyrofork/methods/decorators/on_raw_update.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
+import pyrofork
 
 
 class OnRawUpdate:
@@ -28,8 +29,8 @@ class OnRawUpdate:
     ) -> Callable:
         """Decorator for handling raw updates.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.RawUpdateHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.RawUpdateHandler`.
 
         Parameters:
             group (``int``, *optional*):
@@ -37,15 +38,15 @@ class OnRawUpdate:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.RawUpdateHandler(func), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.RawUpdateHandler(func), group)
             else:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.RawUpdateHandler(func),
+                        pyrofork.handlers.RawUpdateHandler(func),
                         group
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_story.py b/pyrofork/methods/decorators/on_story.py
similarity index 81%
rename from pyrogram/methods/decorators/on_story.py
rename to pyrofork/methods/decorators/on_story.py
index 6b11cf55..442c12e9 100644
--- a/pyrogram/methods/decorators/on_story.py
+++ b/pyrofork/methods/decorators/on_story.py
@@ -19,8 +19,8 @@
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnStory:
@@ -31,11 +31,11 @@ class OnStory:
     ) -> Callable:
         """Decorator for handling new stories.
 
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.StoryHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.StoryHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of stories to be passed
                 in your function.
 
@@ -44,15 +44,15 @@ class OnStory:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.StoryHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.StoryHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.StoryHandler(func, self),
+                        pyrofork.handlers.StoryHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/decorators/on_user_status.py b/pyrofork/methods/decorators/on_user_status.py
similarity index 65%
rename from pyrogram/methods/decorators/on_user_status.py
rename to pyrofork/methods/decorators/on_user_status.py
index a4328c37..c03c0b37 100644
--- a/pyrogram/methods/decorators/on_user_status.py
+++ b/pyrofork/methods/decorators/on_user_status.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Callable
 
-import pyrogram
-from pyrogram.filters import Filter
+import pyrofork
+from pyrofork.filters import Filter
 
 
 class OnUserStatus:
@@ -29,11 +30,11 @@ class OnUserStatus:
         group: int = 0
     ) -> Callable:
         """Decorator for handling user status updates.
-        This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
-        :obj:`~pyrogram.handlers.UserStatusHandler`.
+        This does the same thing as :meth:`~pyrofork.Client.add_handler` using the
+        :obj:`~pyrofork.handlers.UserStatusHandler`.
 
         Parameters:
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 Pass one or more filters to allow only a subset of UserStatus updated to be passed in your function.
 
             group (``int``, *optional*):
@@ -41,15 +42,15 @@ class OnUserStatus:
         """
 
         def decorator(func: Callable) -> Callable:
-            if isinstance(self, pyrogram.Client):
-                self.add_handler(pyrogram.handlers.UserStatusHandler(func, filters), group)
+            if isinstance(self, pyrofork.Client):
+                self.add_handler(pyrofork.handlers.UserStatusHandler(func, filters), group)
             elif isinstance(self, Filter) or self is None:
                 if not hasattr(func, "handlers"):
                     func.handlers = []
 
                 func.handlers.append(
                     (
-                        pyrogram.handlers.UserStatusHandler(func, self),
+                        pyrofork.handlers.UserStatusHandler(func, self),
                         group if filters is None else filters
                     )
                 )
diff --git a/pyrogram/methods/invite_links/__init__.py b/pyrofork/methods/invite_links/__init__.py
similarity index 85%
rename from pyrogram/methods/invite_links/__init__.py
rename to pyrofork/methods/invite_links/__init__.py
index 67c1d149..1adda856 100644
--- a/pyrogram/methods/invite_links/__init__.py
+++ b/pyrofork/methods/invite_links/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 
 from .approve_all_chat_join_requests import ApproveAllChatJoinRequests
diff --git a/pyrogram/methods/invite_links/approve_all_chat_join_requests.py b/pyrofork/methods/invite_links/approve_all_chat_join_requests.py
similarity index 78%
rename from pyrogram/methods/invite_links/approve_all_chat_join_requests.py
rename to pyrofork/methods/invite_links/approve_all_chat_join_requests.py
index 3cbf778a..0ccdafa8 100644
--- a/pyrogram/methods/invite_links/approve_all_chat_join_requests.py
+++ b/pyrofork/methods/invite_links/approve_all_chat_join_requests.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class ApproveAllChatJoinRequests:
     async def approve_all_chat_join_requests(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str = None
     ) -> bool:
diff --git a/pyrogram/methods/invite_links/approve_chat_join_request.py b/pyrofork/methods/invite_links/approve_chat_join_request.py
similarity index 79%
rename from pyrogram/methods/invite_links/approve_chat_join_request.py
rename to pyrofork/methods/invite_links/approve_chat_join_request.py
index 6b5f9b17..27699065 100644
--- a/pyrogram/methods/invite_links/approve_chat_join_request.py
+++ b/pyrofork/methods/invite_links/approve_chat_join_request.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class ApproveChatJoinRequest:
     async def approve_chat_join_request(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: int,
     ) -> bool:
diff --git a/pyrogram/methods/invite_links/create_chat_invite_link.py b/pyrofork/methods/invite_links/create_chat_invite_link.py
similarity index 82%
rename from pyrogram/methods/invite_links/create_chat_invite_link.py
rename to pyrofork/methods/invite_links/create_chat_invite_link.py
index ce70a0ad..6d8d0225 100644
--- a/pyrogram/methods/invite_links/create_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/create_chat_invite_link.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 
 
 class CreateChatInviteLink:
     async def create_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         name: str = None,
         expire_date: datetime = None,
@@ -37,7 +38,7 @@ class CreateChatInviteLink:
 
         You must be an administrator in the chat for this to work and must have the appropriate admin rights.
 
-        The link can be revoked using the method :meth:`~pyrogram.Client.revoke_chat_invite_link`.
+        The link can be revoked using the method :meth:`~pyrofork.Client.revoke_chat_invite_link`.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
@@ -64,7 +65,7 @@ class CreateChatInviteLink:
                 If True, member_limit can't be specified.
 
         Returns:
-            :obj:`~pyrogram.types.ChatInviteLink`: On success, the new invite link is returned.
+            :obj:`~pyrofork.types.ChatInviteLink`: On success, the new invite link is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/invite_links/decline_all_chat_join_requests.py b/pyrofork/methods/invite_links/decline_all_chat_join_requests.py
similarity index 78%
rename from pyrogram/methods/invite_links/decline_all_chat_join_requests.py
rename to pyrofork/methods/invite_links/decline_all_chat_join_requests.py
index 2a135c63..a96c224f 100644
--- a/pyrogram/methods/invite_links/decline_all_chat_join_requests.py
+++ b/pyrofork/methods/invite_links/decline_all_chat_join_requests.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeclineAllChatJoinRequests:
     async def decline_all_chat_join_requests(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str = None
     ) -> bool:
diff --git a/pyrogram/methods/invite_links/decline_chat_join_request.py b/pyrofork/methods/invite_links/decline_chat_join_request.py
similarity index 79%
rename from pyrogram/methods/invite_links/decline_chat_join_request.py
rename to pyrofork/methods/invite_links/decline_chat_join_request.py
index 2379071f..1b231aa8 100644
--- a/pyrogram/methods/invite_links/decline_chat_join_request.py
+++ b/pyrofork/methods/invite_links/decline_chat_join_request.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeclineChatJoinRequest:
     async def decline_chat_join_request(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         user_id: int,
     ) -> bool:
diff --git a/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py b/pyrofork/methods/invite_links/delete_chat_admin_invite_links.py
similarity index 80%
rename from pyrogram/methods/invite_links/delete_chat_admin_invite_links.py
rename to pyrofork/methods/invite_links/delete_chat_admin_invite_links.py
index fc9e71f7..a958d5be 100644
--- a/pyrogram/methods/invite_links/delete_chat_admin_invite_links.py
+++ b/pyrofork/methods/invite_links/delete_chat_admin_invite_links.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteChatAdminInviteLinks:
     async def delete_chat_admin_invite_links(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/invite_links/delete_chat_invite_link.py
similarity index 77%
rename from pyrogram/methods/invite_links/delete_chat_invite_link.py
rename to pyrofork/methods/invite_links/delete_chat_invite_link.py
index 8421a4da..d922ed2f 100644
--- a/pyrogram/methods/invite_links/delete_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/delete_chat_invite_link.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteChatInviteLink:
     async def delete_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str,
     ) -> bool:
diff --git a/pyrogram/methods/invite_links/edit_chat_invite_link.py b/pyrofork/methods/invite_links/edit_chat_invite_link.py
similarity index 85%
rename from pyrogram/methods/invite_links/edit_chat_invite_link.py
rename to pyrofork/methods/invite_links/edit_chat_invite_link.py
index a29995e4..522625ce 100644
--- a/pyrogram/methods/invite_links/edit_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/edit_chat_invite_link.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 
 
 class EditChatInviteLink:
     async def edit_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str,
         name: str = None,
@@ -66,7 +67,7 @@ class EditChatInviteLink:
                 If True, member_limit can't be specified.
 
         Returns:
-            :obj:`~pyrogram.types.ChatInviteLink`: On success, the new invite link is returned
+            :obj:`~pyrofork.types.ChatInviteLink`: On success, the new invite link is returned
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/invite_links/export_chat_invite_link.py b/pyrofork/methods/invite_links/export_chat_invite_link.py
similarity index 80%
rename from pyrogram/methods/invite_links/export_chat_invite_link.py
rename to pyrofork/methods/invite_links/export_chat_invite_link.py
index 8c6badb0..2bc59d53 100644
--- a/pyrogram/methods/invite_links/export_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/export_chat_invite_link.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class ExportChatInviteLink:
     async def export_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
     ) -> "types.ChatInviteLink":
         """Generate a new primary invite link for a chat; any previously generated primary link is revoked.
@@ -36,7 +37,7 @@ class ExportChatInviteLink:
             Each administrator in a chat generates their own invite links. Bots can't use invite links generated by
             other administrators. If you want your bot to work with invite links, it will need to generate its own link
             using this method – after this the link will become available to the bot via the
-            :meth:`~pyrogram.Client.get_chat` method. If your bot needs to generate a new invite link replacing its
+            :meth:`~pyrofork.Client.get_chat` method. If your bot needs to generate a new invite link replacing its
             previous one, use this method again.
 
         .. include:: /_includes/usable-by/users-bots.rst
diff --git a/pyrogram/methods/invite_links/get_chat_admin_invite_links.py b/pyrofork/methods/invite_links/get_chat_admin_invite_links.py
similarity index 84%
rename from pyrogram/methods/invite_links/get_chat_admin_invite_links.py
rename to pyrofork/methods/invite_links/get_chat_admin_invite_links.py
index 921042b2..507fe0e7 100644
--- a/pyrogram/methods/invite_links/get_chat_admin_invite_links.py
+++ b/pyrofork/methods/invite_links/get_chat_admin_invite_links.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatAdminInviteLinks:
     async def get_chat_admin_invite_links(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         admin_id: Union[int, str],
         revoked: bool = False,
@@ -61,10 +62,10 @@ class GetChatAdminInviteLinks:
                 By default, no limit is applied and all invite links are returned.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.ChatInviteLink` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.ChatInviteLink` objects.
 
         Yields:
-            :obj:`~pyrogram.types.ChatInviteLink` objects.
+            :obj:`~pyrofork.types.ChatInviteLink` objects.
         """
         current = 0
         total = abs(limit) or (1 << 31) - 1
diff --git a/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py b/pyrofork/methods/invite_links/get_chat_admin_invite_links_count.py
similarity index 83%
rename from pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py
rename to pyrofork/methods/invite_links/get_chat_admin_invite_links_count.py
index 9c4b175c..1aab891f 100644
--- a/pyrogram/methods/invite_links/get_chat_admin_invite_links_count.py
+++ b/pyrofork/methods/invite_links/get_chat_admin_invite_links_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetChatAdminInviteLinksCount:
     async def get_chat_admin_invite_links_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/invite_links/get_chat_admins_with_invite_links.py
similarity index 76%
rename from pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py
rename to pyrofork/methods/invite_links/get_chat_admins_with_invite_links.py
index 1c16119c..fcf2435f 100644
--- a/pyrogram/methods/invite_links/get_chat_admins_with_invite_links.py
+++ b/pyrofork/methods/invite_links/get_chat_admins_with_invite_links.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class GetChatAdminsWithInviteLinks:
     async def get_chat_admins_with_invite_links(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
     ):
         """Get the list of the administrators that have exported invite links in a chat.
@@ -40,7 +41,7 @@ class GetChatAdminsWithInviteLinks:
                 You can also use chat public link in form of *t.me/* (str).
 
         Returns:
-            List of :obj:`~pyrogram.types.ChatAdminWithInviteLink`: On success, the list of admins that have exported
+            List of :obj:`~pyrofork.types.ChatAdminWithInviteLink`: On success, the list of admins that have exported
             invite links is returned.
         """
         r = await self.invoke(
diff --git a/pyrogram/methods/invite_links/get_chat_invite_link.py b/pyrofork/methods/invite_links/get_chat_invite_link.py
similarity index 74%
rename from pyrogram/methods/invite_links/get_chat_invite_link.py
rename to pyrofork/methods/invite_links/get_chat_invite_link.py
index 2867f226..90bda5f4 100644
--- a/pyrogram/methods/invite_links/get_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/get_chat_invite_link.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatInviteLink:
     async def get_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str,
     ) -> "types.ChatInviteLink":
@@ -43,7 +44,7 @@ class GetChatInviteLink:
                 The invite link.
 
         Returns:
-            :obj:`~pyrogram.types.ChatInviteLink`: On success, the invite link is returned.
+            :obj:`~pyrofork.types.ChatInviteLink`: On success, the invite link is returned.
         """
         r = await self.invoke(
             raw.functions.messages.GetExportedChatInvite(
diff --git a/pyrogram/methods/invite_links/get_chat_invite_link_joiners.py b/pyrofork/methods/invite_links/get_chat_invite_link_joiners.py
similarity index 81%
rename from pyrogram/methods/invite_links/get_chat_invite_link_joiners.py
rename to pyrofork/methods/invite_links/get_chat_invite_link_joiners.py
index 9bc0e54a..6041d257 100644
--- a/pyrogram/methods/invite_links/get_chat_invite_link_joiners.py
+++ b/pyrofork/methods/invite_links/get_chat_invite_link_joiners.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatInviteLinkJoiners:
     async def get_chat_invite_link_joiners(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str,
         limit: int = 0
@@ -48,10 +49,10 @@ class GetChatInviteLinkJoiners:
                 By default, no limit is applied and all invite links are returned.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.ChatJoiner` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.ChatJoiner` objects.
 
         Yields:
-            :obj:`~pyrogram.types.ChatJoiner` objects.
+            :obj:`~pyrofork.types.ChatJoiner` objects.
         """
         current = 0
         total = abs(limit) or (1 << 31) - 1
diff --git a/pyrogram/methods/invite_links/get_chat_invite_link_joiners_count.py b/pyrofork/methods/invite_links/get_chat_invite_link_joiners_count.py
similarity index 79%
rename from pyrogram/methods/invite_links/get_chat_invite_link_joiners_count.py
rename to pyrofork/methods/invite_links/get_chat_invite_link_joiners_count.py
index cb032ef4..01a7e949 100644
--- a/pyrogram/methods/invite_links/get_chat_invite_link_joiners_count.py
+++ b/pyrofork/methods/invite_links/get_chat_invite_link_joiners_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetChatInviteLinkJoinersCount:
     async def get_chat_invite_link_joiners_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str
     ) -> int:
diff --git a/pyrogram/methods/invite_links/get_chat_join_requests.py b/pyrofork/methods/invite_links/get_chat_join_requests.py
similarity index 81%
rename from pyrogram/methods/invite_links/get_chat_join_requests.py
rename to pyrofork/methods/invite_links/get_chat_join_requests.py
index 20a20fb1..59995514 100644
--- a/pyrogram/methods/invite_links/get_chat_join_requests.py
+++ b/pyrofork/methods/invite_links/get_chat_join_requests.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetChatJoinRequests:
     async def get_chat_join_requests(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         limit: int = 0,
         query: str = ""
@@ -48,10 +49,10 @@ class GetChatJoinRequests:
                 Query to search for a user.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.ChatJoiner` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.ChatJoiner` objects.
 
         Yields:
-            :obj:`~pyrogram.types.ChatJoiner` objects.
+            :obj:`~pyrofork.types.ChatJoiner` objects.
         """
         current = 0
         total = abs(limit) or (1 << 31) - 1
diff --git a/pyrogram/methods/invite_links/revoke_chat_invite_link.py b/pyrofork/methods/invite_links/revoke_chat_invite_link.py
similarity index 78%
rename from pyrogram/methods/invite_links/revoke_chat_invite_link.py
rename to pyrofork/methods/invite_links/revoke_chat_invite_link.py
index 144c5a38..45422ebe 100644
--- a/pyrogram/methods/invite_links/revoke_chat_invite_link.py
+++ b/pyrofork/methods/invite_links/revoke_chat_invite_link.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class RevokeChatInviteLink:
     async def revoke_chat_invite_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         invite_link: str,
     ) -> "types.ChatInviteLink":
@@ -47,7 +48,7 @@ class RevokeChatInviteLink:
                The invite link to revoke.
 
         Returns:
-            :obj:`~pyrogram.types.ChatInviteLink`: On success, the invite link object is returned.
+            :obj:`~pyrofork.types.ChatInviteLink`: On success, the invite link object is returned.
         """
 
         r = await self.invoke(
diff --git a/pyrogram/methods/messages/__init__.py b/pyrofork/methods/messages/__init__.py
similarity index 91%
rename from pyrogram/methods/messages/__init__.py
rename to pyrofork/methods/messages/__init__.py
index 3007290c..380c8fbd 100644
--- a/pyrogram/methods/messages/__init__.py
+++ b/pyrofork/methods/messages/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .copy_media_group import CopyMediaGroup
 from .copy_message import CopyMessage
diff --git a/pyrogram/methods/messages/copy_media_group.py b/pyrofork/methods/messages/copy_media_group.py
similarity index 96%
rename from pyrogram/methods/messages/copy_media_group.py
rename to pyrofork/methods/messages/copy_media_group.py
index b0e14afe..f6be569e 100644
--- a/pyrogram/methods/messages/copy_media_group.py
+++ b/pyrofork/methods/messages/copy_media_group.py
@@ -1,4 +1,4 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
 #
 #  Pyrofork - Telegram MTProto API Client Library for Python
@@ -23,13 +23,13 @@
 from datetime import datetime
 from typing import Union, List
 
-import pyrogram
-from pyrogram import types, utils, raw
+import pyrofork
+from pyrofork import types, utils, raw
 
 
 class CopyMediaGroup:
     async def copy_media_group(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         from_chat_id: Union[int, str],
         message_id: int,
@@ -87,7 +87,7 @@ class CopyMediaGroup:
                 Protects the contents of the sent message from forwarding and saving
 
         Returns:
-            List of :obj:`~pyrogram.types.Message`: On success, a list of copied messages is returned.
+            List of :obj:`~pyrofork.types.Message`: On success, a list of copied messages is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/copy_message.py b/pyrofork/methods/messages/copy_message.py
similarity index 92%
rename from pyrogram/methods/messages/copy_message.py
rename to pyrofork/methods/messages/copy_message.py
index 8629d095..bd4cdae7 100644
--- a/pyrogram/methods/messages/copy_message.py
+++ b/pyrofork/methods/messages/copy_message.py
@@ -21,15 +21,15 @@ import logging
 from datetime import datetime
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import types, enums
+import pyrofork
+from pyrofork import types, enums
 
 log = logging.getLogger(__name__)
 
 
 class CopyMessage:
     async def copy_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         from_chat_id: Union[int, str],
         message_id: int,
@@ -77,11 +77,11 @@ class CopyMessage:
                 If not specified, the original caption is kept.
                 Pass "" (empty string) to remove the caption.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the new caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -104,12 +104,12 @@ class CopyMessage:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the copied message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the copied message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/delete_messages.py b/pyrofork/methods/messages/delete_messages.py
similarity index 86%
rename from pyrogram/methods/messages/delete_messages.py
rename to pyrofork/methods/messages/delete_messages.py
index 91859e82..632184c8 100644
--- a/pyrogram/methods/messages/delete_messages.py
+++ b/pyrofork/methods/messages/delete_messages.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Iterable
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class DeleteMessages:
     async def delete_messages(
-        self: "pyrogram.Client",
+        self: "pyrofork.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/pyrofork/methods/messages/download_media.py
similarity index 91%
rename from pyrogram/methods/messages/download_media.py
rename to pyrofork/methods/messages/download_media.py
index ce58a42c..2740912f 100644
--- a/pyrogram/methods/messages/download_media.py
+++ b/pyrofork/methods/messages/download_media.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import os
 from datetime import datetime
 from typing import Union, Optional, Callable, BinaryIO
 
-import pyrogram
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, PHOTO_TYPES
+import pyrofork
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, PHOTO_TYPES
 
 DEFAULT_DOWNLOAD_DIR = "downloads/"
 
 
 class DownloadMedia:
     async def download_media(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         message: Union["types.Message", "types.Story", str],
         file_name: str = DEFAULT_DOWNLOAD_DIR,
         in_memory: bool = False,
@@ -43,7 +44,7 @@ class DownloadMedia:
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            message (:obj:`~pyrogram.types.Message` | :obj:`~pyrogram.types.Story` | ``str``):
+            message (:obj:`~pyrofork.types.Message` | :obj:`~pyrofork.types.Story` | ``str``):
                 Pass a Message/Story containing the media, the media itself (message.audio, message.video, ...) or a file id
                 as string.
 
@@ -87,7 +88,7 @@ class DownloadMedia:
         Returns:
             ``str`` | ``None`` | ``BinaryIO``: On success, the absolute path of the downloaded file is returned,
             otherwise, in case the download failed or was deliberately stopped with
-            :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :meth:`~pyrofork.Client.stop_transmission`, None is returned.
             Otherwise, in case ``in_memory=True``, a binary file-like object with its attribute ".name" set is returned.
 
         Raises:
diff --git a/pyrogram/methods/messages/edit_inline_caption.py b/pyrofork/methods/messages/edit_inline_caption.py
similarity index 75%
rename from pyrogram/methods/messages/edit_inline_caption.py
rename to pyrofork/methods/messages/edit_inline_caption.py
index 69c73334..9c98ea95 100644
--- a/pyrogram/methods/messages/edit_inline_caption.py
+++ b/pyrofork/methods/messages/edit_inline_caption.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import types, enums
+import pyrofork
+from pyrofork import types, enums
 
 
 class EditInlineCaption:
     async def edit_inline_caption(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         inline_message_id: str,
         caption: str,
         parse_mode: Optional["enums.ParseMode"] = None,
@@ -41,11 +42,11 @@ class EditInlineCaption:
             caption (``str``):
                 New caption of the media message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
diff --git a/pyrogram/methods/messages/edit_inline_media.py b/pyrofork/methods/messages/edit_inline_media.py
similarity index 92%
rename from pyrogram/methods/messages/edit_inline_media.py
rename to pyrofork/methods/messages/edit_inline_media.py
index 7ab424a4..92ebfaa1 100644
--- a/pyrogram/methods/messages/edit_inline_media.py
+++ b/pyrofork/methods/messages/edit_inline_media.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import io
 import os
 import re
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.errors import RPCError, MediaEmpty
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import RPCError, MediaEmpty
+from pyrofork.file_id import FileType
 from .inline_session import get_session
 
 
@@ -34,7 +35,7 @@ class EditInlineMedia:
     MAX_RETRIES = 3
 
     async def edit_inline_media(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         inline_message_id: str,
         media: "types.InputMedia",
         reply_markup: "types.InlineKeyboardMarkup" = None
@@ -51,10 +52,10 @@ class EditInlineMedia:
                 Required if *chat_id* and *message_id* are not specified.
                 Identifier of the inline message.
 
-            media (:obj:`~pyrogram.types.InputMedia`):
+            media (:obj:`~pyrofork.types.InputMedia`):
                 One of the InputMedia objects describing an animation, audio, document, photo or video.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
@@ -63,7 +64,7 @@ class EditInlineMedia:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InputMediaPhoto, InputMediaVideo, InputMediaAudio
+                from pyrofork.types import InputMediaPhoto, InputMediaVideo, InputMediaAudio
 
                 # Bots only
 
diff --git a/pyrogram/methods/messages/edit_inline_reply_markup.py b/pyrofork/methods/messages/edit_inline_reply_markup.py
similarity index 75%
rename from pyrogram/methods/messages/edit_inline_reply_markup.py
rename to pyrofork/methods/messages/edit_inline_reply_markup.py
index e2ef40e1..402c95a3 100644
--- a/pyrogram/methods/messages/edit_inline_reply_markup.py
+++ b/pyrofork/methods/messages/edit_inline_reply_markup.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 from .inline_session import get_session
 
 
 class EditInlineReplyMarkup:
     async def edit_inline_reply_markup(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         inline_message_id: str,
         reply_markup: "types.InlineKeyboardMarkup" = None
     ) -> bool:
@@ -37,7 +38,7 @@ class EditInlineReplyMarkup:
             inline_message_id (``str``):
                 Identifier of the inline message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
@@ -46,7 +47,7 @@ class EditInlineReplyMarkup:
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
+                from pyrofork.types import InlineKeyboardMarkup, InlineKeyboardButton
 
                 # Bots only
                 await app.edit_inline_reply_markup(
diff --git a/pyrogram/methods/messages/edit_inline_text.py b/pyrofork/methods/messages/edit_inline_text.py
similarity index 80%
rename from pyrogram/methods/messages/edit_inline_text.py
rename to pyrofork/methods/messages/edit_inline_text.py
index 354c55a3..45ec202d 100644
--- a/pyrogram/methods/messages/edit_inline_text.py
+++ b/pyrofork/methods/messages/edit_inline_text.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
 from .inline_session import get_session
 
 
 class EditInlineText:
     async def edit_inline_text(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         inline_message_id: str,
         text: str,
         parse_mode: Optional["enums.ParseMode"] = None,
@@ -45,14 +46,14 @@ class EditInlineText:
             text (``str``):
                 New text of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
             disable_web_page_preview (``bool``, *optional*):
                 Disables link previews for links in this message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
diff --git a/pyrogram/methods/messages/edit_message_caption.py b/pyrofork/methods/messages/edit_message_caption.py
similarity index 77%
rename from pyrogram/methods/messages/edit_message_caption.py
rename to pyrofork/methods/messages/edit_message_caption.py
index 4fc4bfdb..e7fafe24 100644
--- a/pyrogram/methods/messages/edit_message_caption.py
+++ b/pyrofork/methods/messages/edit_message_caption.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import types, enums
+import pyrofork
+from pyrofork import types, enums
 
 
 class EditMessageCaption:
     async def edit_message_caption(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         caption: str,
@@ -49,18 +50,18 @@ class EditMessageCaption:
             caption (``str``):
                 New caption of the media message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the edited message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the edited message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/edit_message_media.py b/pyrofork/methods/messages/edit_message_media.py
similarity index 94%
rename from pyrogram/methods/messages/edit_message_media.py
rename to pyrofork/methods/messages/edit_message_media.py
index 2ab0a5c9..46392fe3 100644
--- a/pyrogram/methods/messages/edit_message_media.py
+++ b/pyrofork/methods/messages/edit_message_media.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import io
 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
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.file_id import FileType
 
 
 class EditMessageMedia:
     async def edit_message_media(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         media: "types.InputMedia",
@@ -54,10 +55,10 @@ class EditMessageMedia:
             message_id (``int``):
                 Message identifier in the chat specified in chat_id.
 
-            media (:obj:`~pyrogram.types.InputMedia`):
+            media (:obj:`~pyrofork.types.InputMedia`):
                 One of the InputMedia objects describing an animation, audio, document, photo or video.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
             file_name (``str``, *optional*):
@@ -65,12 +66,12 @@ class EditMessageMedia:
                 Defaults to file's path basename.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the edited message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the edited message is returned.
 
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InputMediaPhoto, InputMediaVideo, InputMediaAudio
+                from pyrofork.types import InputMediaPhoto, InputMediaVideo, InputMediaAudio
 
                 # Replace the current media with a local photo
                 await app.edit_message_media(chat_id, message_id,
diff --git a/pyrogram/methods/messages/edit_message_reply_markup.py b/pyrofork/methods/messages/edit_message_reply_markup.py
similarity index 79%
rename from pyrogram/methods/messages/edit_message_reply_markup.py
rename to pyrofork/methods/messages/edit_message_reply_markup.py
index 68b568be..010fa135 100644
--- a/pyrogram/methods/messages/edit_message_reply_markup.py
+++ b/pyrofork/methods/messages/edit_message_reply_markup.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class EditMessageReplyMarkup:
     async def edit_message_reply_markup(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         reply_markup: "types.InlineKeyboardMarkup" = None,
@@ -44,16 +45,16 @@ class EditMessageReplyMarkup:
             message_id (``int``):
                 Message identifier in the chat specified in chat_id.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the edited message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the edited message is returned.
 
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
+                from pyrofork.types import InlineKeyboardMarkup, InlineKeyboardButton
 
                 # Bots only
                 await app.edit_message_reply_markup(
diff --git a/pyrogram/methods/messages/edit_message_text.py b/pyrofork/methods/messages/edit_message_text.py
similarity index 81%
rename from pyrogram/methods/messages/edit_message_text.py
rename to pyrofork/methods/messages/edit_message_text.py
index c1e0df09..0ca7b979 100644
--- a/pyrogram/methods/messages/edit_message_text.py
+++ b/pyrofork/methods/messages/edit_message_text.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
 
 
 class EditMessageText:
     async def edit_message_text(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         text: str,
@@ -52,21 +53,21 @@ class EditMessageText:
             text (``str``):
                 New text of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
                 Disables link previews for links in this message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the edited message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the edited message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/forward_messages.py b/pyrofork/methods/messages/forward_messages.py
similarity index 95%
rename from pyrogram/methods/messages/forward_messages.py
rename to pyrofork/methods/messages/forward_messages.py
index f47e8578..4094e861 100644
--- a/pyrogram/methods/messages/forward_messages.py
+++ b/pyrofork/methods/messages/forward_messages.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 
 
 class ForwardMessages:
     async def forward_messages(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         from_chat_id: Union[int, str],
         message_ids: Union[int, Iterable[int]],
@@ -75,7 +75,7 @@ class ForwardMessages:
                 Forwards messages without quoting the original author
 
         Returns:
-            :obj:`~pyrogram.types.Message` | List of :obj:`~pyrogram.types.Message`: In case *message_ids* was not
+            :obj:`~pyrofork.types.Message` | List of :obj:`~pyrofork.types.Message`: In case *message_ids* was not
             a list, a single message is returned, otherwise a list of messages is returned.
 
         Example:
diff --git a/pyrogram/methods/messages/get_chat_history.py b/pyrofork/methods/messages/get_chat_history.py
similarity index 96%
rename from pyrogram/methods/messages/get_chat_history.py
rename to pyrofork/methods/messages/get_chat_history.py
index fff96c7c..ff41de02 100644
--- a/pyrogram/methods/messages/get_chat_history.py
+++ b/pyrofork/methods/messages/get_chat_history.py
@@ -20,13 +20,13 @@
 from datetime import datetime
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import types, raw, utils
+import pyrofork
+from pyrofork import types, raw, utils
 
 
 async def get_chunk(
     *,
-    client: "pyrogram.Client",
+    client: "pyrofork.Client",
     chat_id: Union[int, str],
     limit: int = 0,
     offset: int = 0,
@@ -54,7 +54,7 @@ async def get_chunk(
 
 class GetChatHistory:
     async def get_chat_history(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         limit: int = 0,
         offset: int = 0,
@@ -97,7 +97,7 @@ class GetChatHistory:
                 The maximum message id. you will not get any message which have id greater than max_id.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.Message` objects.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/get_chat_history_count.py b/pyrofork/methods/messages/get_chat_history_count.py
similarity index 80%
rename from pyrogram/methods/messages/get_chat_history_count.py
rename to pyrofork/methods/messages/get_chat_history_count.py
index 0982f288..e8b8740e 100644
--- a/pyrogram/methods/messages/get_chat_history_count.py
+++ b/pyrofork/methods/messages/get_chat_history_count.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class GetChatHistoryCount:
     async def get_chat_history_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> int:
         """Get the total count of messages in a chat.
@@ -35,7 +36,7 @@ class GetChatHistoryCount:
         .. note::
 
             Due to Telegram latest internal changes, the server can't reliably find anymore the total count of messages
-            a **private** or a **basic group** chat has with a single method call. To overcome this limitation, Pyrogram
+            a **private** or a **basic group** chat has with a single method call. To overcome this limitation, Pyrofork
             has to iterate over all the messages. Channels and supergroups are not affected by this limitation.
 
         .. include:: /_includes/usable-by/users.rst
diff --git a/pyrogram/methods/messages/get_custom_emoji_stickers.py b/pyrofork/methods/messages/get_custom_emoji_stickers.py
similarity index 72%
rename from pyrogram/methods/messages/get_custom_emoji_stickers.py
rename to pyrofork/methods/messages/get_custom_emoji_stickers.py
index 7a71f058..a15c8b55 100644
--- a/pyrogram/methods/messages/get_custom_emoji_stickers.py
+++ b/pyrofork/methods/messages/get_custom_emoji_stickers.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetCustomEmojiStickers:
     async def get_custom_emoji_stickers(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         custom_emoji_ids: List[int],
     ) -> List["types.Sticker"]:
         """Get information about custom emoji stickers by their identifiers.
@@ -38,7 +39,7 @@ class GetCustomEmojiStickers:
                 At most 200 custom emoji identifiers can be specified.
 
         Returns:
-            List of :obj:`~pyrogram.types.Sticker`: On success, a list of sticker objects is returned.
+            List of :obj:`~pyrofork.types.Sticker`: On success, a list of sticker objects is returned.
         """
         result = await self.invoke(
             raw.functions.messages.GetCustomEmojiDocuments(
@@ -52,4 +53,4 @@ class GetCustomEmojiStickers:
             sticker = await types.Sticker._parse(self, item, attributes)
             stickers.append(sticker)
 
-        return pyrogram.types.List(stickers)
+        return pyrofork.types.List(stickers)
diff --git a/pyrogram/methods/messages/get_discussion_message.py b/pyrofork/methods/messages/get_discussion_message.py
similarity index 80%
rename from pyrogram/methods/messages/get_discussion_message.py
rename to pyrofork/methods/messages/get_discussion_message.py
index 76ceff98..fcea5a58 100644
--- a/pyrogram/methods/messages/get_discussion_message.py
+++ b/pyrofork/methods/messages/get_discussion_message.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetDiscussionMessage:
     async def get_discussion_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
     ) -> "types.Message":
diff --git a/pyrogram/methods/messages/get_discussion_replies.py b/pyrofork/methods/messages/get_discussion_replies.py
similarity index 85%
rename from pyrogram/methods/messages/get_discussion_replies.py
rename to pyrofork/methods/messages/get_discussion_replies.py
index 5ee8667f..0b4797ca 100644
--- a/pyrogram/methods/messages/get_discussion_replies.py
+++ b/pyrofork/methods/messages/get_discussion_replies.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, Optional, AsyncGenerator
 
-import pyrogram
-from pyrogram import types, raw
+import pyrofork
+from pyrofork import types, raw
 
 
 class GetDiscussionReplies:
     async def get_discussion_replies(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         limit: int = 0,
diff --git a/pyrogram/methods/messages/get_discussion_replies_count.py b/pyrofork/methods/messages/get_discussion_replies_count.py
similarity index 79%
rename from pyrogram/methods/messages/get_discussion_replies_count.py
rename to pyrofork/methods/messages/get_discussion_replies_count.py
index d035017e..06016fe4 100644
--- a/pyrogram/methods/messages/get_discussion_replies_count.py
+++ b/pyrofork/methods/messages/get_discussion_replies_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetDiscussionRepliesCount:
     async def get_discussion_replies_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
     ) -> int:
diff --git a/pyrogram/methods/messages/get_media_group.py b/pyrofork/methods/messages/get_media_group.py
similarity index 83%
rename from pyrogram/methods/messages/get_media_group.py
rename to pyrofork/methods/messages/get_media_group.py
index 7a332c3d..53a5c1e5 100644
--- a/pyrogram/methods/messages/get_media_group.py
+++ b/pyrofork/methods/messages/get_media_group.py
@@ -1,33 +1,34 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Union, List
 
-import pyrogram
-from pyrogram import types
+import pyrofork
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 
 class GetMediaGroup:
     async def get_media_group(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int
     ) -> List["types.Message"]:
@@ -46,7 +47,7 @@ class GetMediaGroup:
                 The id of one of the messages that belong to the media group.
                 
         Returns:
-            List of :obj:`~pyrogram.types.Message`: On success, a list of messages of the media group is returned.
+            List of :obj:`~pyrofork.types.Message`: On success, a list of messages of the media group is returned.
             
         Raises:
             ValueError: 
diff --git a/pyrogram/methods/messages/get_messages.py b/pyrofork/methods/messages/get_messages.py
similarity index 87%
rename from pyrogram/methods/messages/get_messages.py
rename to pyrofork/methods/messages/get_messages.py
index aff7a34b..480ef2ac 100644
--- a/pyrogram/methods/messages/get_messages.py
+++ b/pyrofork/methods/messages/get_messages.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
 
 log = logging.getLogger(__name__)
 
@@ -32,7 +33,7 @@ log = logging.getLogger(__name__)
 
 class GetMessages:
     async def get_messages(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_ids: Union[int, Iterable[int]] = None,
         reply_to_message_ids: Union[int, Iterable[int]] = None,
@@ -66,7 +67,7 @@ class GetMessages:
                 Defaults to 1.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | List of :obj:`~pyrogram.types.Message`: In case *message_ids* was not
+            :obj:`~pyrofork.types.Message` | List of :obj:`~pyrofork.types.Message`: In case *message_ids* was not
             a list, a single message is returned, otherwise a list of messages is returned.
 
         Example:
diff --git a/pyrogram/methods/messages/inline_session.py b/pyrofork/methods/messages/inline_session.py
similarity index 74%
rename from pyrogram/methods/messages/inline_session.py
rename to pyrofork/methods/messages/inline_session.py
index a514f5a6..5f7e4618 100644
--- a/pyrogram/methods/messages/inline_session.py
+++ b/pyrofork/methods/messages/inline_session.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.errors import AuthBytesInvalid
-from pyrogram.session import Session
-from pyrogram.session.auth import Auth
+import pyrofork
+from pyrofork import raw
+from pyrofork.errors import AuthBytesInvalid
+from pyrofork.session import Session
+from pyrofork.session.auth import Auth
 
 
-async def get_session(client: "pyrogram.Client", dc_id: int):
+async def get_session(client: "pyrofork.Client", dc_id: int):
     if dc_id == await client.storage.dc_id():
         return client
 
diff --git a/pyrogram/methods/messages/read_chat_history.py b/pyrofork/methods/messages/read_chat_history.py
similarity index 83%
rename from pyrogram/methods/messages/read_chat_history.py
rename to pyrofork/methods/messages/read_chat_history.py
index 9688a86d..41192060 100644
--- a/pyrogram/methods/messages/read_chat_history.py
+++ b/pyrofork/methods/messages/read_chat_history.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class ReadChatHistory:
     async def read_chat_history(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         max_id: int = 0
     ) -> bool:
diff --git a/pyrogram/methods/messages/retract_vote.py b/pyrofork/methods/messages/retract_vote.py
similarity index 76%
rename from pyrogram/methods/messages/retract_vote.py
rename to pyrofork/methods/messages/retract_vote.py
index 9baa552b..17de907a 100644
--- a/pyrogram/methods/messages/retract_vote.py
+++ b/pyrofork/methods/messages/retract_vote.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class RetractVote:
     async def retract_vote(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int
     ) -> "types.Poll":
@@ -44,7 +45,7 @@ class RetractVote:
                 Identifier of the original message with the poll.
 
         Returns:
-            :obj:`~pyrogram.types.Poll`: On success, the poll with the retracted vote is returned.
+            :obj:`~pyrofork.types.Poll`: On success, the poll with the retracted vote is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/search_global.py b/pyrofork/methods/messages/search_global.py
similarity index 80%
rename from pyrogram/methods/messages/search_global.py
rename to pyrofork/methods/messages/search_global.py
index f566c981..5a519b27 100644
--- a/pyrogram/methods/messages/search_global.py
+++ b/pyrofork/methods/messages/search_global.py
@@ -1,39 +1,40 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
 
 
 class SearchGlobal:
     async def search_global(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         query: str = "",
         filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
         limit: int = 0,
     ) -> Optional[AsyncGenerator["types.Message", None]]:
         """Search messages globally from all of your chats.
 
-        If you want to get the messages count only, see :meth:`~pyrogram.Client.search_global_count`.
+        If you want to get the messages count only, see :meth:`~pyrofork.Client.search_global_count`.
 
         .. note::
 
@@ -47,7 +48,7 @@ class SearchGlobal:
                 Text query string.
                 Use "@" to search for mentions.
             
-            filter (:obj:`~pyrogram.enums.MessagesFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.MessagesFilter`, *optional*):
                 Pass a filter in order to search for specific kind of messages only.
                 Defaults to any message (no filter).
 
@@ -56,15 +57,15 @@ class SearchGlobal:
                 By default, no limit is applied and all messages are returned.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.Message` objects.
 
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
-                # Search for "pyrogram". Get the first 50 results
-                async for message in app.search_global("pyrogram", limit=50):
+                # Search for "pyrofork". Get the first 50 results
+                async for message in app.search_global("pyrofork", limit=50):
                     print(message.text)
 
                 # Search for recent photos from Global. Get the first 20 results
diff --git a/pyrogram/methods/messages/search_global_count.py b/pyrofork/methods/messages/search_global_count.py
similarity index 76%
rename from pyrogram/methods/messages/search_global_count.py
rename to pyrofork/methods/messages/search_global_count.py
index 8323a821..7758fd69 100644
--- a/pyrogram/methods/messages/search_global_count.py
+++ b/pyrofork/methods/messages/search_global_count.py
@@ -1,34 +1,35 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, enums
+import pyrofork
+from pyrofork import raw, enums
 
 
 class SearchGlobalCount:
     async def search_global_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         query: str = "",
         filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
     ) -> int:
         """Get the count of messages resulting from a global search.
 
-        If you want to get the actual messages, see :meth:`~pyrogram.Client.search_global`.
+        If you want to get the actual messages, see :meth:`~pyrofork.Client.search_global`.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -37,7 +38,7 @@ class SearchGlobalCount:
                 Text query string.
                 Use "@" to search for mentions.
 
-            filter (:obj:`~pyrogram.enums.MessagesFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.MessagesFilter`, *optional*):
                 Pass a filter in order to search for specific kind of messages only:
 
         Returns:
diff --git a/pyrogram/methods/messages/search_messages.py b/pyrofork/methods/messages/search_messages.py
similarity index 87%
rename from pyrogram/methods/messages/search_messages.py
rename to pyrofork/methods/messages/search_messages.py
index 40dbb4e4..17bda99f 100644
--- a/pyrogram/methods/messages/search_messages.py
+++ b/pyrofork/methods/messages/search_messages.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List, AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 
 
 # noinspection PyShadowingBuiltins
@@ -60,7 +61,7 @@ async def get_chunk(
 class SearchMessages:
     # noinspection PyShadowingBuiltins
     async def search_messages(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         query: str = "",
         offset: int = 0,
@@ -70,7 +71,7 @@ class SearchMessages:
     ) -> Optional[AsyncGenerator["types.Message", None]]:
         """Search for text and media messages inside a specific chat.
 
-        If you want to get the messages count only, see :meth:`~pyrogram.Client.search_messages_count`.
+        If you want to get the messages count only, see :meth:`~pyrofork.Client.search_messages_count`.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -91,7 +92,7 @@ class SearchMessages:
                 Sequential number of the first message to be returned.
                 Defaults to 0.
 
-            filter (:obj:`~pyrogram.enums.MessagesFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.MessagesFilter`, *optional*):
                 Pass a filter in order to search for specific kind of messages only.
                 Defaults to any message (no filter).
 
@@ -103,12 +104,12 @@ class SearchMessages:
                 Unique identifier (int) or username (str) of the target user you want to search for messages from.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.Message` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.Message` objects.
 
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
                 # Search for text messages in chat. Get the last 120 results
                 async for message in app.search_messages(chat_id, query="hello", limit=120):
diff --git a/pyrogram/methods/messages/search_messages_count.py b/pyrofork/methods/messages/search_messages_count.py
similarity index 84%
rename from pyrogram/methods/messages/search_messages_count.py
rename to pyrofork/methods/messages/search_messages_count.py
index fa9227e2..2fd7e7ea 100644
--- a/pyrogram/methods/messages/search_messages_count.py
+++ b/pyrofork/methods/messages/search_messages_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, enums
+import pyrofork
+from pyrofork import raw, enums
 
 
 class SearchMessagesCount:
     async def search_messages_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         query: str = "",
         filter: "enums.MessagesFilter" = enums.MessagesFilter.EMPTY,
@@ -32,7 +33,7 @@ class SearchMessagesCount:
     ) -> int:
         """Get the count of messages resulting from a search inside a chat.
 
-        If you want to get the actual messages, see :meth:`~pyrogram.Client.search_messages`.
+        If you want to get the actual messages, see :meth:`~pyrofork.Client.search_messages`.
 
         .. include:: /_includes/usable-by/users.rst
 
@@ -49,7 +50,7 @@ class SearchMessagesCount:
                 When passed while searching for media messages, the query will be applied to captions.
                 Defaults to "" (empty string).
 
-            filter (:obj:`~pyrogram.enums.MessagesFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.MessagesFilter`, *optional*):
                 Pass a filter in order to search for specific kind of messages only:
 
             from_user (``int`` | ``str``, *optional*):
diff --git a/pyrogram/methods/messages/send_animation.py b/pyrofork/methods/messages/send_animation.py
similarity index 94%
rename from pyrogram/methods/messages/send_animation.py
rename to pyrofork/methods/messages/send_animation.py
index 2276f4e1..8b0ac51c 100644
--- a/pyrogram/methods/messages/send_animation.py
+++ b/pyrofork/methods/messages/send_animation.py
@@ -22,18 +22,18 @@ import re
 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
+import pyrofork
+from pyrofork import StopTransmission, enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendAnimation:
     async def send_animation(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         animation: Union[str, BinaryIO],
         caption: str = "",
@@ -89,11 +89,11 @@ class SendAnimation:
                 By default, the server will save into your own collection any new animation you send.
                 Pass True to automatically unsave the sent animation. Defaults to False.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -141,7 +141,7 @@ class SendAnimation:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -151,7 +151,7 @@ class SendAnimation:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -178,8 +178,8 @@ class SendAnimation:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent animation message is returned, otherwise,
-            in case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent animation message is returned, otherwise,
+            in case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is
             returned.
 
         Example:
diff --git a/pyrogram/methods/messages/send_audio.py b/pyrofork/methods/messages/send_audio.py
similarity index 93%
rename from pyrogram/methods/messages/send_audio.py
rename to pyrofork/methods/messages/send_audio.py
index 9b2a9b64..f9bc89ba 100644
--- a/pyrogram/methods/messages/send_audio.py
+++ b/pyrofork/methods/messages/send_audio.py
@@ -22,18 +22,18 @@ import re
 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
+import pyrofork
+from pyrofork import StopTransmission, enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendAudio:
     async def send_audio(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         audio: Union[str, BinaryIO],
         caption: str = "",
@@ -64,7 +64,7 @@ class SendAudio:
     ) -> Optional["types.Message"]:
         """Send audio files.
 
-        For sending voice messages, use the :meth:`~pyrogram.Client.send_voice` method instead.
+        For sending voice messages, use the :meth:`~pyrofork.Client.send_voice` method instead.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
@@ -85,11 +85,11 @@ class SendAudio:
             caption (``str``, *optional*):
                 Audio caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -134,7 +134,7 @@ class SendAudio:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -144,7 +144,7 @@ class SendAudio:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -171,8 +171,8 @@ class SendAudio:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent audio message is returned, otherwise, in
-            case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent audio message is returned, otherwise, in
+            case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_cached_media.py b/pyrofork/methods/messages/send_cached_media.py
similarity index 92%
rename from pyrogram/methods/messages/send_cached_media.py
rename to pyrofork/methods/messages/send_cached_media.py
index 9361ed32..51a08215 100644
--- a/pyrogram/methods/messages/send_cached_media.py
+++ b/pyrofork/methods/messages/send_cached_media.py
@@ -20,15 +20,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
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
 
 
 class SendCachedMedia:
     async def send_cached_media(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         file_id: str,
         caption: str = "",
@@ -73,11 +73,11 @@ class SendCachedMedia:
             caption (``str``, *optional*):
                 Media caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -106,7 +106,7 @@ class SendCachedMedia:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -116,12 +116,12 @@ class SendCachedMedia:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent media message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent media message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_chat_action.py b/pyrofork/methods/messages/send_chat_action.py
similarity index 94%
rename from pyrogram/methods/messages/send_chat_action.py
rename to pyrofork/methods/messages/send_chat_action.py
index 57ebdd51..e8c7b02a 100644
--- a/pyrogram/methods/messages/send_chat_action.py
+++ b/pyrofork/methods/messages/send_chat_action.py
@@ -19,13 +19,13 @@
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw, enums
+import pyrofork
+from pyrofork import raw, enums
 
 
 class SendChatAction:
     async def send_chat_action(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         action: "enums.ChatAction",
         message_thread_id: int = None
@@ -41,7 +41,7 @@ class SendChatAction:
                 For a contact that exists in your Telegram address book you can use his phone number (str).
                 You can also use chat public link in form of *t.me/* (str).
 
-            action (:obj:`~pyrogram.enums.ChatAction`):
+            action (:obj:`~pyrofork.enums.ChatAction`):
                 Type of action to broadcast.
 
             message_thread_id (```int```):
@@ -57,7 +57,7 @@ class SendChatAction:
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
                 # Send "typing" chat action
                 await app.send_chat_action(chat_id, enums.ChatAction.TYPING)
diff --git a/pyrogram/methods/messages/send_contact.py b/pyrofork/methods/messages/send_contact.py
similarity index 92%
rename from pyrogram/methods/messages/send_contact.py
rename to pyrofork/methods/messages/send_contact.py
index 883a6e41..50088a71 100644
--- a/pyrogram/methods/messages/send_contact.py
+++ b/pyrofork/methods/messages/send_contact.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import enums, raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import enums, raw, utils
+from pyrofork import types
 
 
 class SendContact:
     async def send_contact(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         phone_number: str,
         first_name: str,
@@ -92,11 +92,11 @@ class SendContact:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -107,12 +107,12 @@ class SendContact:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent contact message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent contact message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_dice.py b/pyrofork/methods/messages/send_dice.py
similarity index 92%
rename from pyrogram/methods/messages/send_dice.py
rename to pyrofork/methods/messages/send_dice.py
index b852af60..54eb3b10 100644
--- a/pyrogram/methods/messages/send_dice.py
+++ b/pyrofork/methods/messages/send_dice.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import enums, raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import enums, raw, utils
+from pyrofork import types
 
 
 class SendDice:
     async def send_dice(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         emoji: str = "🎲",
         disable_notification: bool = None,
@@ -88,11 +88,11 @@ class SendDice:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -103,12 +103,12 @@ class SendDice:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent dice message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent dice message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_document.py b/pyrofork/methods/messages/send_document.py
similarity index 93%
rename from pyrogram/methods/messages/send_document.py
rename to pyrofork/methods/messages/send_document.py
index 41bd2728..5d4ba279 100644
--- a/pyrogram/methods/messages/send_document.py
+++ b/pyrofork/methods/messages/send_document.py
@@ -22,18 +22,18 @@ import re
 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
+import pyrofork
+from pyrofork import StopTransmission, enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendDocument:
     async def send_document(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         document: Union[str, BinaryIO],
         thumb: Union[str, BinaryIO] = None,
@@ -87,11 +87,11 @@ class SendDocument:
             caption (``str``, *optional*):
                 Document caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             file_name (``str``, *optional*):
@@ -126,7 +126,7 @@ class SendDocument:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -136,7 +136,7 @@ class SendDocument:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -163,8 +163,8 @@ class SendDocument:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent document message is returned, otherwise, in
-            case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent document message is returned, otherwise, in
+            case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_location.py b/pyrofork/methods/messages/send_location.py
similarity index 92%
rename from pyrogram/methods/messages/send_location.py
rename to pyrofork/methods/messages/send_location.py
index 0465f235..ad6cbd6e 100644
--- a/pyrogram/methods/messages/send_location.py
+++ b/pyrofork/methods/messages/send_location.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import enums, raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import enums, raw, utils
+from pyrofork import types
 
 
 class SendLocation:
     async def send_location(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         latitude: float,
         longitude: float,
@@ -84,11 +84,11 @@ class SendLocation:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -99,12 +99,12 @@ class SendLocation:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent location message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent location message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_media_group.py b/pyrofork/methods/messages/send_media_group.py
similarity index 96%
rename from pyrogram/methods/messages/send_media_group.py
rename to pyrofork/methods/messages/send_media_group.py
index 2a34aea2..dcfdd4db 100644
--- a/pyrogram/methods/messages/send_media_group.py
+++ b/pyrofork/methods/messages/send_media_group.py
@@ -24,12 +24,12 @@ from datetime import datetime
 from pymediainfo import MediaInfo
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import enums
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.file_id import FileType
 
 log = logging.getLogger(__name__)
 
@@ -37,7 +37,7 @@ log = logging.getLogger(__name__)
 class SendMediaGroup:
     # TODO: Add progress parameter
     async def send_media_group(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         media: List[Union[
             "types.InputMediaPhoto",
@@ -68,7 +68,7 @@ class SendMediaGroup:
                 For a contact that exists in your Telegram address book you can use his phone number (str).
                 You can also use chat public link in form of *t.me/* (str).
 
-            media (List of :obj:`~pyrogram.types.InputMediaPhoto`, :obj:`~pyrogram.types.InputMediaVideo`, :obj:`~pyrogram.types.InputMediaAudio`, :obj:`~pyrogram.types.InputMediaDocument` and :obj:`~pyrogram.types.InputMediaAnimation`):
+            media (List of :obj:`~pyrofork.types.InputMediaPhoto`, :obj:`~pyrofork.types.InputMediaVideo`, :obj:`~pyrofork.types.InputMediaAudio`, :obj:`~pyrofork.types.InputMediaDocument` and :obj:`~pyrofork.types.InputMediaAnimation`):
                 A list describing photos and videos to be sent, must include 2–10 items.
 
             disable_notification (``bool``, *optional*):
@@ -94,11 +94,11 @@ class SendMediaGroup:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -110,12 +110,12 @@ class SendMediaGroup:
                 Protects the contents of the sent message from forwarding and saving.
 
         Returns:
-            List of :obj:`~pyrogram.types.Message`: On success, a list of the sent messages is returned.
+            List of :obj:`~pyrofork.types.Message`: On success, a list of the sent messages is returned.
 
         Example:
             .. code-block:: python
 
-                from pyrogram.types import InputMediaPhoto, InputMediaVideo
+                from pyrofork.types import InputMediaPhoto, InputMediaVideo
 
                 await app.send_media_group(
                     "me",
diff --git a/pyrogram/methods/messages/send_message.py b/pyrofork/methods/messages/send_message.py
similarity index 93%
rename from pyrogram/methods/messages/send_message.py
rename to pyrofork/methods/messages/send_message.py
index 039deec8..4cf17b73 100644
--- a/pyrogram/methods/messages/send_message.py
+++ b/pyrofork/methods/messages/send_message.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import raw, utils, enums
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils, enums
+from pyrofork import types
 
 
 class SendMessage:
     async def send_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         text: str,
         parse_mode: Optional["enums.ParseMode"] = None,
@@ -64,11 +64,11 @@ class SendMessage:
             text (``str``):
                 Text of the message to be sent.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
@@ -97,7 +97,7 @@ class SendMessage:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -110,18 +110,18 @@ class SendMessage:
             invert_media (``bool``, *optional*):
                 Move web page preview to above the message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent text message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent text message is returned.
 
         Example:
             .. code-block:: python
 
                 # Simple example
-                await app.send_message("me", "Message sent with **Pyrogram**!")
+                await app.send_message("me", "Message sent with **Pyrofork**!")
 
                 # Disable web page previews
                 await app.send_message("me", "https://pyrofork.mayuri.my.id",
@@ -134,7 +134,7 @@ class SendMessage:
 
                 # For bots only, send messages with keyboards attached
 
-                from pyrogram.types import (
+                from pyrofork.types import (
                     ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton)
 
                 # Send a normal keyboard
diff --git a/pyrogram/methods/messages/send_photo.py b/pyrofork/methods/messages/send_photo.py
similarity index 93%
rename from pyrogram/methods/messages/send_photo.py
rename to pyrofork/methods/messages/send_photo.py
index a2b18b4f..6a3aa607 100644
--- a/pyrogram/methods/messages/send_photo.py
+++ b/pyrofork/methods/messages/send_photo.py
@@ -22,17 +22,17 @@ import re
 from datetime import datetime
 from typing import Union, BinaryIO, List, Optional, Callable
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.errors import FilePartMissing
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendPhoto:
     async def send_photo(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         photo: Union[str, BinaryIO],
         caption: str = "",
@@ -79,11 +79,11 @@ class SendPhoto:
             caption (``str``, *optional*):
                 Photo caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -117,7 +117,7 @@ class SendPhoto:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -127,7 +127,7 @@ class SendPhoto:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -154,8 +154,8 @@ class SendPhoto:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent photo message is returned, otherwise, in
-            case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent photo message is returned, otherwise, in
+            case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned.
 
         Example:
             .. code-block:: python
@@ -240,5 +240,5 @@ class SendPhoto:
                                 {i.id: i for i in r.chats},
                                 is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
                             )
-        except pyrogram.StopTransmission:
+        except pyrofork.StopTransmission:
             return None
diff --git a/pyrogram/methods/messages/send_poll.py b/pyrofork/methods/messages/send_poll.py
similarity index 91%
rename from pyrogram/methods/messages/send_poll.py
rename to pyrofork/methods/messages/send_poll.py
index bceb8a8b..c436b8a1 100644
--- a/pyrogram/methods/messages/send_poll.py
+++ b/pyrofork/methods/messages/send_poll.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types, enums
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types, enums
 
 
 class SendPoll:
     async def send_poll(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         question: str,
         options: List[str],
@@ -78,9 +78,9 @@ class SendPoll:
                 True, if the poll needs to be anonymous.
                 Defaults to True.
 
-            type (:obj`~pyrogram.enums.PollType`, *optional*):
-                Poll type, :obj:`~pyrogram.enums.PollType.QUIZ` or :obj:`~pyrogram.enums.PollType.REGULAR`.
-                Defaults to :obj:`~pyrogram.enums.PollType.REGULAR`.
+            type (:obj`~pyrofork.enums.PollType`, *optional*):
+                Poll type, :obj:`~pyrofork.enums.PollType.QUIZ` or :obj:`~pyrofork.enums.PollType.REGULAR`.
+                Defaults to :obj:`~pyrofork.enums.PollType.REGULAR`.
 
             allows_multiple_answers (``bool``, *optional*):
                 True, if the poll allows multiple answers, ignored for polls in quiz mode.
@@ -93,11 +93,11 @@ class SendPoll:
                 Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style
                 poll, 0-200 characters with at most 2 line feeds after entities parsing.
 
-            explanation_parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            explanation_parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            explanation_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            explanation_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the poll explanation, which can be specified instead of
                 *parse_mode*.
 
@@ -137,11 +137,11 @@ class SendPoll:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -149,12 +149,12 @@ class SendPoll:
             schedule_date (:py:obj:`~datetime.datetime`, *optional*):
                 Date when the message will be automatically sent.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent poll message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent poll message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_reaction.py b/pyrofork/methods/messages/send_reaction.py
similarity index 91%
rename from pyrogram/methods/messages/send_reaction.py
rename to pyrofork/methods/messages/send_reaction.py
index 3045adc3..7359bf13 100644
--- a/pyrogram/methods/messages/send_reaction.py
+++ b/pyrofork/methods/messages/send_reaction.py
@@ -1,31 +1,31 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class SendReaction:
     async def send_reaction(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int = None,
         story_id: int = None,
@@ -67,7 +67,7 @@ class SendReaction:
                 This option is applicable only for users.
 
         Returns:
-            :obj:`~pyrogram.types.MessageReactions`: On success, True is returned.
+            :obj:`~pyrofork.types.MessageReactions`: On success, True is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_sticker.py b/pyrofork/methods/messages/send_sticker.py
similarity index 93%
rename from pyrogram/methods/messages/send_sticker.py
rename to pyrofork/methods/messages/send_sticker.py
index 25bc8a7d..c59f2071 100644
--- a/pyrogram/methods/messages/send_sticker.py
+++ b/pyrofork/methods/messages/send_sticker.py
@@ -22,19 +22,19 @@ import re
 from datetime import datetime
 from typing import List, Union, BinaryIO, Optional, Callable
 
-import pyrogram
-from pyrogram import StopTransmission
-from pyrogram import enums
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.errors import FilePartMissing
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import StopTransmission
+from pyrofork import enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendSticker:
     async def send_sticker(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         sticker: Union[str, BinaryIO],
         disable_notification: bool = None,
@@ -97,11 +97,11 @@ class SendSticker:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -112,7 +112,7 @@ class SendSticker:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -139,8 +139,8 @@ class SendSticker:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent sticker message is returned, otherwise,
-            in case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent sticker message is returned, otherwise,
+            in case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is
             returned.
 
         Example:
diff --git a/pyrogram/methods/messages/send_venue.py b/pyrofork/methods/messages/send_venue.py
similarity index 93%
rename from pyrogram/methods/messages/send_venue.py
rename to pyrofork/methods/messages/send_venue.py
index 5d6d6186..61d81f82 100644
--- a/pyrogram/methods/messages/send_venue.py
+++ b/pyrofork/methods/messages/send_venue.py
@@ -20,14 +20,14 @@
 from datetime import datetime
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import enums, raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import enums, raw, utils
+from pyrofork import types
 
 
 class SendVenue:
     async def send_venue(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         latitude: float,
         longitude: float,
@@ -101,11 +101,11 @@ class SendVenue:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -116,12 +116,12 @@ class SendVenue:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent venue message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent venue message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_video.py b/pyrofork/methods/messages/send_video.py
similarity index 94%
rename from pyrogram/methods/messages/send_video.py
rename to pyrofork/methods/messages/send_video.py
index 43fafa4f..e823b445 100644
--- a/pyrogram/methods/messages/send_video.py
+++ b/pyrofork/methods/messages/send_video.py
@@ -22,18 +22,18 @@ import re
 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
+import pyrofork
+from pyrofork import StopTransmission, enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendVideo:
     async def send_video(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         video: Union[str, BinaryIO],
         caption: str = "",
@@ -86,11 +86,11 @@ class SendVideo:
             caption (``str``, *optional*):
                 Video caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -147,7 +147,7 @@ class SendVideo:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -157,7 +157,7 @@ class SendVideo:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -184,8 +184,8 @@ class SendVideo:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent video message is returned, otherwise, in
-            case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent video message is returned, otherwise, in
+            case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_video_note.py b/pyrofork/methods/messages/send_video_note.py
similarity index 93%
rename from pyrogram/methods/messages/send_video_note.py
rename to pyrofork/methods/messages/send_video_note.py
index 2f65bf27..a184dda4 100644
--- a/pyrogram/methods/messages/send_video_note.py
+++ b/pyrofork/methods/messages/send_video_note.py
@@ -21,19 +21,19 @@ import os
 from datetime import datetime
 from typing import List, Union, BinaryIO, Optional, Callable
 
-import pyrogram
-from pyrogram import StopTransmission
-from pyrogram import enums
-from pyrogram import raw
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.errors import FilePartMissing
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import StopTransmission
+from pyrofork import enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendVideoNote:
     async def send_video_note(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         video_note: Union[str, BinaryIO],
         duration: int = 0,
@@ -111,11 +111,11 @@ class SendVideoNote:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -126,7 +126,7 @@ class SendVideoNote:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -153,8 +153,8 @@ class SendVideoNote:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent video note message is returned, otherwise,
-            in case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent video note message is returned, otherwise,
+            in case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is
             returned.
 
         Example:
diff --git a/pyrogram/methods/messages/send_voice.py b/pyrofork/methods/messages/send_voice.py
similarity index 93%
rename from pyrogram/methods/messages/send_voice.py
rename to pyrofork/methods/messages/send_voice.py
index d300cc2e..b8f7328e 100644
--- a/pyrogram/methods/messages/send_voice.py
+++ b/pyrofork/methods/messages/send_voice.py
@@ -22,18 +22,18 @@ import re
 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
+import pyrofork
+from pyrofork import StopTransmission, enums
+from pyrofork import raw
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import FilePartMissing
+from pyrofork.file_id import FileType
 
 
 class SendVoice:
     async def send_voice(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         voice: Union[str, BinaryIO],
         caption: str = "",
@@ -79,11 +79,11 @@ class SendVoice:
             caption (``str``, *optional*):
                 Voice message caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -115,7 +115,7 @@ class SendVoice:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -125,7 +125,7 @@ class SendVoice:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -152,8 +152,8 @@ class SendVoice:
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``None``: On success, the sent voice message is returned, otherwise, in
-            case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned.
+            :obj:`~pyrofork.types.Message` | ``None``: On success, the sent voice message is returned, otherwise, in
+            case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/send_web_page.py b/pyrofork/methods/messages/send_web_page.py
similarity index 93%
rename from pyrogram/methods/messages/send_web_page.py
rename to pyrofork/methods/messages/send_web_page.py
index 5a9aec9f..4b4a41ba 100644
--- a/pyrogram/methods/messages/send_web_page.py
+++ b/pyrofork/methods/messages/send_web_page.py
@@ -20,13 +20,13 @@ import re
 from datetime import datetime
 from typing import Union, List, Optional
 
-import pyrogram
-from pyrogram import raw, utils, enums
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils, enums
+from pyrofork import types
 
 class SendWebPage:
     async def send_web_page(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         url: str,
         text: str = "",
@@ -67,11 +67,11 @@ class SendWebPage:
             text (``str``, *optional*):
                 Text of the message to be sent.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             large_media (``bool``, *optional*):
@@ -103,7 +103,7 @@ class SendWebPage:
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -113,12 +113,12 @@ class SendWebPage:
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the sent text message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the sent text message is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/stop_poll.py b/pyrofork/methods/messages/stop_poll.py
similarity index 80%
rename from pyrogram/methods/messages/stop_poll.py
rename to pyrofork/methods/messages/stop_poll.py
index c809be34..a3adaabe 100644
--- a/pyrogram/methods/messages/stop_poll.py
+++ b/pyrofork/methods/messages/stop_poll.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class StopPoll:
     async def stop_poll(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: int,
         reply_markup: "types.InlineKeyboardMarkup" = None
@@ -46,11 +47,11 @@ class StopPoll:
             message_id (``int``):
                 Identifier of the original message with the poll.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Poll`: On success, the stopped poll with the final results is returned.
+            :obj:`~pyrofork.types.Poll`: On success, the stopped poll with the final results is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/messages/stream_media.py b/pyrofork/methods/messages/stream_media.py
similarity index 86%
rename from pyrogram/methods/messages/stream_media.py
rename to pyrofork/methods/messages/stream_media.py
index b432badb..c9c00af6 100644
--- a/pyrogram/methods/messages/stream_media.py
+++ b/pyrofork/methods/messages/stream_media.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import math
 from typing import Union, Optional, BinaryIO
 
-import pyrogram
-from pyrogram import types
-from pyrogram.file_id import FileId
+import pyrofork
+from pyrofork import types
+from pyrofork.file_id import FileId
 
 
 class StreamMedia:
     async def stream_media(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         message: Union["types.Message", str],
         limit: int = 0,
         offset: int = 0
@@ -39,7 +40,7 @@ class StreamMedia:
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            message (:obj:`~pyrogram.types.Message` | ``str``):
+            message (:obj:`~pyrofork.types.Message` | ``str``):
                 Pass a Message containing the media, the media itself (message.audio, message.video, ...) or a file id
                 as string.
 
diff --git a/pyrogram/methods/messages/vote_poll.py b/pyrofork/methods/messages/vote_poll.py
similarity index 80%
rename from pyrogram/methods/messages/vote_poll.py
rename to pyrofork/methods/messages/vote_poll.py
index 76b00d34..a41fc317 100644
--- a/pyrogram/methods/messages/vote_poll.py
+++ b/pyrofork/methods/messages/vote_poll.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class VotePoll:
     async def vote_poll(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         message_id: id,
         options: Union[int, List[int]]
@@ -48,7 +49,7 @@ class VotePoll:
                 Index or list of indexes (for multiple answers) of the poll option(s) you want to vote for (0 to 9).
 
         Returns:
-            :obj:`~pyrogram.types.Poll` - On success, the poll with the chosen option is returned.
+            :obj:`~pyrofork.types.Poll` - On success, the poll with the chosen option is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/password/__init__.py b/pyrofork/methods/password/__init__.py
similarity index 68%
rename from pyrogram/methods/password/__init__.py
rename to pyrofork/methods/password/__init__.py
index e8d42926..1c1c1639 100644
--- a/pyrogram/methods/password/__init__.py
+++ b/pyrofork/methods/password/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .change_cloud_password import ChangeCloudPassword
 from .enable_cloud_password import EnableCloudPassword
diff --git a/pyrogram/methods/password/change_cloud_password.py b/pyrofork/methods/password/change_cloud_password.py
similarity index 82%
rename from pyrogram/methods/password/change_cloud_password.py
rename to pyrofork/methods/password/change_cloud_password.py
index 29540d65..236c6dc2 100644
--- a/pyrogram/methods/password/change_cloud_password.py
+++ b/pyrofork/methods/password/change_cloud_password.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import os
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.utils import compute_password_hash, compute_password_check, btoi, itob
+import pyrofork
+from pyrofork import raw
+from pyrofork.utils import compute_password_hash, compute_password_check, btoi, itob
 
 
 class ChangeCloudPassword:
     async def change_cloud_password(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         current_password: str,
         new_password: str,
         new_hint: str = ""
diff --git a/pyrogram/methods/password/enable_cloud_password.py b/pyrofork/methods/password/enable_cloud_password.py
similarity index 83%
rename from pyrogram/methods/password/enable_cloud_password.py
rename to pyrofork/methods/password/enable_cloud_password.py
index 8f5e59c5..9d67b284 100644
--- a/pyrogram/methods/password/enable_cloud_password.py
+++ b/pyrofork/methods/password/enable_cloud_password.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import os
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.utils import compute_password_hash, btoi, itob
+import pyrofork
+from pyrofork import raw
+from pyrofork.utils import compute_password_hash, btoi, itob
 
 
 class EnableCloudPassword:
     async def enable_cloud_password(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         password: str,
         hint: str = "",
         email: str = None
diff --git a/pyrogram/methods/password/remove_cloud_password.py b/pyrofork/methods/password/remove_cloud_password.py
similarity index 78%
rename from pyrogram/methods/password/remove_cloud_password.py
rename to pyrofork/methods/password/remove_cloud_password.py
index 0ec16e12..1fd1a9b3 100644
--- a/pyrogram/methods/password/remove_cloud_password.py
+++ b/pyrofork/methods/password/remove_cloud_password.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.utils import compute_password_check
+import pyrofork
+from pyrofork import raw
+from pyrofork.utils import compute_password_check
 
 
 class RemoveCloudPassword:
     async def remove_cloud_password(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         password: str
     ) -> bool:
         """Turn off the Two-Step Verification security feature (Cloud Password) on your account.
diff --git a/pyrogram/methods/pyromod/__init__.py b/pyrofork/methods/pyromod/__init__.py
similarity index 100%
rename from pyrogram/methods/pyromod/__init__.py
rename to pyrofork/methods/pyromod/__init__.py
diff --git a/pyrogram/methods/pyromod/ask.py b/pyrofork/methods/pyromod/ask.py
similarity index 91%
rename from pyrogram/methods/pyromod/ask.py
rename to pyrofork/methods/pyromod/ask.py
index e88b2933..9dac14a2 100644
--- a/pyrogram/methods/pyromod/ask.py
+++ b/pyrofork/methods/pyromod/ask.py
@@ -17,18 +17,18 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram.filters import Filter
+from pyrofork.filters import Filter
 from typing import List, Optional, Union
 
 class Ask:
     async def ask(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[Union[int, str], List[Union[int, str]]],
         text: str,
         filters: Optional[Filter] = None,
-        listener_type: "pyrogram.enums.ListenerTypes" = pyrogram.enums.ListenerTypes.MESSAGE,
+        listener_type: "pyrofork.enums.ListenerTypes" = pyrofork.enums.ListenerTypes.MESSAGE,
         timeout: Optional[int] = None,
         unallowed_click_alert: bool = True,
         user_id: Union[Union[int, str], List[Union[int, str]]] = None,
@@ -57,10 +57,10 @@ class Ask:
             user_id (``int`` | ``str`` | Iterable of ``int`` | Iterable of ``str``, *optional*):
                 The user ID to listen for.
 
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 A filter to check the incoming message against.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`, *optional*):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`, *optional*):
                 The type of listener to listen for.
                 Default to Message.
 
@@ -75,7 +75,7 @@ class Ask:
                 The inline message ID to listen for.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | :obj:`~pyrogram.types.CallbackQuery`: On success, a message/callbackquery is returned.
+            :obj:`~pyrofork.types.Message` | :obj:`~pyrofork.types.CallbackQuery`: On success, a message/callbackquery is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/pyromod/get_listener_matching_with_data.py b/pyrofork/methods/pyromod/get_listener_matching_with_data.py
similarity index 84%
rename from pyrogram/methods/pyromod/get_listener_matching_with_data.py
rename to pyrofork/methods/pyromod/get_listener_matching_with_data.py
index 690b15b1..3e0aae0a 100644
--- a/pyrogram/methods/pyromod/get_listener_matching_with_data.py
+++ b/pyrofork/methods/pyromod/get_listener_matching_with_data.py
@@ -17,30 +17,30 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from typing import Optional
-from pyrogram.types import Identifier, Listener
+from pyrofork.types import Identifier, Listener
 
 class GetListenerMatchingWithData:
     def get_listener_matching_with_data(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         data: Identifier,
-        listener_type: "pyrogram.enums.ListenerTypes"
+        listener_type: "pyrofork.enums.ListenerTypes"
     ) -> Optional[Listener]:
         """Gets a listener that matches the given data.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            data (:obj:`~pyrogram.types.Identifier`):
+            data (:obj:`~pyrofork.types.Identifier`):
                 The Identifier to match agains.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`):
                 The type of listener to get.
 
         Returns:
-            :obj:`~pyrogram.types.Listener`: On success, a Listener is returned.
+            :obj:`~pyrofork.types.Listener`: On success, a Listener is returned.
         """
         matching = []
         for listener in self.listeners[listener_type]:
diff --git a/pyrogram/methods/pyromod/get_listener_matching_with_identifier_pattern.py b/pyrofork/methods/pyromod/get_listener_matching_with_identifier_pattern.py
similarity index 84%
rename from pyrogram/methods/pyromod/get_listener_matching_with_identifier_pattern.py
rename to pyrofork/methods/pyromod/get_listener_matching_with_identifier_pattern.py
index c045e7a5..e974e0e1 100644
--- a/pyrogram/methods/pyromod/get_listener_matching_with_identifier_pattern.py
+++ b/pyrofork/methods/pyromod/get_listener_matching_with_identifier_pattern.py
@@ -17,34 +17,34 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from typing import Optional
-from pyrogram.types import Identifier, Listener
+from pyrofork.types import Identifier, Listener
 
 class GetListenerMatchingWithIdentifierPattern:
     def get_listener_matching_with_identifier_pattern(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         pattern: Identifier,
-        listener_type: "pyrogram.enums.ListenerTypes"
+        listener_type: "pyrofork.enums.ListenerTypes"
     ) -> Optional[Listener]:
         """Gets a listener that matches the given identifier pattern.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
-        The difference from :meth:`~pyrogram.Client.get_listener_matching_with_data` is that this method
+        The difference from :meth:`~pyrofork.Client.get_listener_matching_with_data` is that this method
         intends to get a listener by passing partial info of the listener identifier, while the other method
         intends to get a listener by passing the full info of the update data, which the listener should match with.
 
         Parameters:
-            pattern (:obj:`~pyrogram.types.Identifier`):
+            pattern (:obj:`~pyrofork.types.Identifier`):
                 The Identifier to match agains.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`):
                 The type of listener to get.
 
         Returns:
-            :obj:`~pyrogram.types.Listener`: On success, a Listener is returned.
+            :obj:`~pyrofork.types.Listener`: On success, a Listener is returned.
         """
         matching = []
         for listener in self.listeners[listener_type]:
diff --git a/pyrogram/methods/pyromod/get_many_listeners_matching_with_data.py b/pyrofork/methods/pyromod/get_many_listeners_matching_with_data.py
similarity index 82%
rename from pyrogram/methods/pyromod/get_many_listeners_matching_with_data.py
rename to pyrofork/methods/pyromod/get_many_listeners_matching_with_data.py
index b3675a9a..c16bc26c 100644
--- a/pyrogram/methods/pyromod/get_many_listeners_matching_with_data.py
+++ b/pyrofork/methods/pyromod/get_many_listeners_matching_with_data.py
@@ -17,30 +17,30 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from typing import List
-from pyrogram.types import Identifier, Listener
+from pyrofork.types import Identifier, Listener
 
 class GetManyListenersMatchingWithData:
     def get_many_listeners_matching_with_data(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         data: Identifier,
-        listener_type: "pyrogram.enums.ListenerTypes",
+        listener_type: "pyrofork.enums.ListenerTypes",
     ) -> List[Listener]:
         """Gets multiple listener that matches the given data.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            data (:obj:`~pyrogram.types.Identifier`):
+            data (:obj:`~pyrofork.types.Identifier`):
                 The Identifier to match agains.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`):
                 The type of listener to get.
 
         Returns:
-            List of :obj:`~pyrogram.types.Listener`: On success, a list of Listener is returned.
+            List of :obj:`~pyrofork.types.Listener`: On success, a list of Listener is returned.
         """
         listeners = []
         for listener in self.listeners[listener_type]:
diff --git a/pyrogram/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py b/pyrofork/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py
similarity index 82%
rename from pyrogram/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py
rename to pyrofork/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py
index 4299ea65..e7fb0343 100644
--- a/pyrogram/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py
+++ b/pyrofork/methods/pyromod/get_many_listeners_matching_with_identifier_pattern.py
@@ -17,34 +17,34 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from typing import List
-from pyrogram.types import Identifier, Listener
+from pyrofork.types import Identifier, Listener
 
 class GetManyListenersMatchingWithIdentifierPattern:
     def get_many_listeners_matching_with_identifier_pattern(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         pattern: Identifier,
-        listener_type: "pyrogram.enums.ListenerTypes",
+        listener_type: "pyrofork.enums.ListenerTypes",
     ) -> List[Listener]:
         """Gets multiple listener that matches the given identifier pattern.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
-        The difference from :meth:`~pyrogram.Client.get_listener_matching_with_data` is that this method
+        The difference from :meth:`~pyrofork.Client.get_listener_matching_with_data` is that this method
         intends to get a listener by passing partial info of the listener identifier, while the other method
         intends to get a listener by passing the full info of the update data, which the listener should match with.
 
         Parameters:
-            pattern (:obj:`~pyrogram.types.Identifier`):
+            pattern (:obj:`~pyrofork.types.Identifier`):
                 The Identifier to match agains.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`):
                 The type of listener to get.
 
         Returns:
-            List of :obj:`~pyrogram.types.Listener`: On success, a list of Listener is returned.
+            List of :obj:`~pyrofork.types.Listener`: On success, a list of Listener is returned.
         """
         listeners = []
         for listener in self.listeners[listener_type]:
diff --git a/pyrogram/methods/pyromod/listen.py b/pyrofork/methods/pyromod/listen.py
similarity index 89%
rename from pyrogram/methods/pyromod/listen.py
rename to pyrofork/methods/pyromod/listen.py
index cfc5fc53..fbdb52ad 100644
--- a/pyrogram/methods/pyromod/listen.py
+++ b/pyrofork/methods/pyromod/listen.py
@@ -19,19 +19,19 @@
 
 import asyncio
 import inspect
-import pyrogram
+import pyrofork
 
-from pyrogram.errors import ListenerTimeout
-from pyrogram.filters import Filter
+from pyrofork.errors import ListenerTimeout
+from pyrofork.filters import Filter
 from typing import List, Optional, Union
-from pyrogram.types import Identifier, Listener
-from pyrogram.utils import PyromodConfig
+from pyrofork.types import Identifier, Listener
+from pyrofork.utils import PyromodConfig
 
 class Listen:
     async def listen(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         filters: Optional[Filter] = None,
-        listener_type: "pyrogram.enums.ListenerTypes" = pyrogram.enums.ListenerTypes.MESSAGE,
+        listener_type: "pyrofork.enums.ListenerTypes" = pyrofork.enums.ListenerTypes.MESSAGE,
         timeout: Optional[int] = None,
         unallowed_click_alert: bool = True,
         chat_id: Union[Union[int, str], List[Union[int, str]]] = None,
@@ -56,10 +56,10 @@ class Listen:
             user_id (``int`` | ``str`` | Iterable of ``int`` | Iterable of ``str``, *optional*):
                 The user ID to listen for.
 
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 A filter to check the incoming message against.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`, *optional*):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`, *optional*):
                 The type of listener to listen for.
                 Default to Message.
 
@@ -77,7 +77,7 @@ class Listen:
                 The inline message ID to listen for.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | :obj:`~pyrogram.types.CallbackQuery`: On success, a message/callbackquery is returned.
+            :obj:`~pyrofork.types.Message` | :obj:`~pyrofork.types.CallbackQuery`: On success, a message/callbackquery is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/pyromod/register_next_step_handler.py b/pyrofork/methods/pyromod/register_next_step_handler.py
similarity index 90%
rename from pyrogram/methods/pyromod/register_next_step_handler.py
rename to pyrofork/methods/pyromod/register_next_step_handler.py
index 90e9095d..0bc9f35c 100644
--- a/pyrogram/methods/pyromod/register_next_step_handler.py
+++ b/pyrofork/methods/pyromod/register_next_step_handler.py
@@ -17,18 +17,18 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram.filters import Filter
+from pyrofork.filters import Filter
 from typing import Callable, List, Optional, Union
-from pyrogram.types import Identifier, Listener
+from pyrofork.types import Identifier, Listener
 
 class RegisterNextStepHandler:
     def register_next_step_handler(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         callback: Callable,
         filters: Optional[Filter] = None,
-        listener_type: "pyrogram.enums.ListenerTypes" = pyrogram.enums.ListenerTypes.MESSAGE,
+        listener_type: "pyrofork.enums.ListenerTypes" = pyrofork.enums.ListenerTypes.MESSAGE,
         unallowed_click_alert: bool = True,
         chat_id: Union[Union[int, str], List[Union[int, str]]] = None,
         user_id: Union[Union[int, str], List[Union[int, str]]] = None,
@@ -46,10 +46,10 @@ class RegisterNextStepHandler:
             user_id (``int`` | ``str`` | Iterable of ``int`` | Iterable of ``str``, *optional*):
                 The user ID to listen for.
 
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 A filter to check the incoming message against.
 
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`, *optional*):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`, *optional*):
                 The type of listener to listen for.
                 Default to Message.
 
diff --git a/pyrogram/methods/pyromod/remove_listerner.py b/pyrofork/methods/pyromod/remove_listerner.py
similarity index 85%
rename from pyrogram/methods/pyromod/remove_listerner.py
rename to pyrofork/methods/pyromod/remove_listerner.py
index 9171c96d..6d16ef84 100644
--- a/pyrogram/methods/pyromod/remove_listerner.py
+++ b/pyrofork/methods/pyromod/remove_listerner.py
@@ -17,20 +17,20 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram.types import Listener
+import pyrofork
+from pyrofork.types import Listener
 
 class RemoveListener:
     def remove_listener(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         listener: Listener
     ):
-        """Removes a listener from the :meth:`~pyrogram.Client.listeners` dictionary.
+        """Removes a listener from the :meth:`~pyrofork.Client.listeners` dictionary.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            listener (:obj:`~pyrogram.types.Listener`):
+            listener (:obj:`~pyrofork.types.Listener`):
                 The listener to remove.
         """
         try:
diff --git a/pyrogram/methods/pyromod/stop_listener.py b/pyrofork/methods/pyromod/stop_listener.py
similarity index 89%
rename from pyrogram/methods/pyromod/stop_listener.py
rename to pyrofork/methods/pyromod/stop_listener.py
index 2df3ee24..b0beda2c 100644
--- a/pyrogram/methods/pyromod/stop_listener.py
+++ b/pyrofork/methods/pyromod/stop_listener.py
@@ -18,15 +18,15 @@
 #  along with Pyrofork.  If not, see .
 
 import inspect
-import pyrogram
+import pyrofork
 
-from pyrogram.errors import ListenerStopped
-from pyrogram.types import Listener
-from pyrogram.utils import PyromodConfig
+from pyrofork.errors import ListenerStopped
+from pyrofork.types import Listener
+from pyrofork.utils import PyromodConfig
 
 class StopListener:
     async def stop_listener(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         listener: Listener
     ):
         """Stops a listener, calling stopped_handler if applicable or raising ListenerStopped if throw_exceptions is True.
@@ -34,7 +34,7 @@ class StopListener:
         .. include:: /_includes/usable-by/users-bots.rst
 
         Parameters:
-            listener (:obj:`~pyrogram.types.Listener`):
+            listener (:obj:`~pyrofork.types.Listener`):
                 The listener to remove.
 
         Raises:
diff --git a/pyrogram/methods/pyromod/stop_listening.py b/pyrofork/methods/pyromod/stop_listening.py
similarity index 89%
rename from pyrogram/methods/pyromod/stop_listening.py
rename to pyrofork/methods/pyromod/stop_listening.py
index c2e57fda..e5cd45f0 100644
--- a/pyrogram/methods/pyromod/stop_listening.py
+++ b/pyrofork/methods/pyromod/stop_listening.py
@@ -17,15 +17,15 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from typing import List, Union
-from pyrogram.types import Identifier
+from pyrofork.types import Identifier
 
 class StopListening:
     async def stop_listening(
-        self: "pyrogram.Client",
-        listener_type: "pyrogram.enums.ListenerTypes" = pyrogram.enums.ListenerTypes.MESSAGE,
+        self: "pyrofork.Client",
+        listener_type: "pyrofork.enums.ListenerTypes" = pyrofork.enums.ListenerTypes.MESSAGE,
         chat_id: Union[Union[int, str], List[Union[int, str]]] = None,
         user_id: Union[Union[int, str], List[Union[int, str]]] = None,
         message_id: Union[int, List[int]] = None,
@@ -35,10 +35,10 @@ class StopListening:
 
         .. include:: /_includes/usable-by/users-bots.rst
 
-        Uses :meth:`~pyrogram.Client.get_many_listeners_matching_with_identifier_pattern`.
+        Uses :meth:`~pyrofork.Client.get_many_listeners_matching_with_identifier_pattern`.
 
         Parameters:
-            listener_type (:obj:`~pyrogram.enums.ListenerTypes`, *optional*):
+            listener_type (:obj:`~pyrofork.enums.ListenerTypes`, *optional*):
                 The type of listener to stop listening for.
                 Default to Message.
 
diff --git a/pyrogram/methods/pyromod/wait_for_callback_query.py b/pyrofork/methods/pyromod/wait_for_callback_query.py
similarity index 94%
rename from pyrogram/methods/pyromod/wait_for_callback_query.py
rename to pyrofork/methods/pyromod/wait_for_callback_query.py
index fd66da81..a234b533 100644
--- a/pyrogram/methods/pyromod/wait_for_callback_query.py
+++ b/pyrofork/methods/pyromod/wait_for_callback_query.py
@@ -18,17 +18,17 @@
 #  along with Pyrofork.  If not, see .
 
 import asyncio
-import pyrogram
+import pyrofork
 from typing import Union
 from functools import partial
 
-from pyrogram import types
-from pyrogram.filters import Filter
+from pyrofork import types
+from pyrofork.filters import Filter
 
 
 class WaitForCallbackQuery:
     async def wait_for_callback_query(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         filters: Filter = None,
         timeout: int = None
@@ -49,7 +49,7 @@ class WaitForCallbackQuery:
                 Timeout in seconds.
 
         Returns:
-            :obj:`~pyrogram.types.CallbackQuery`: On success, the callback query is returned.
+            :obj:`~pyrofork.types.CallbackQuery`: On success, the callback query is returned.
 
         Raises:
             asyncio.TimeoutError: In case callback query not received within the timeout.
diff --git a/pyrogram/methods/pyromod/wait_for_message.py b/pyrofork/methods/pyromod/wait_for_message.py
similarity index 93%
rename from pyrogram/methods/pyromod/wait_for_message.py
rename to pyrofork/methods/pyromod/wait_for_message.py
index d2c93285..77ed68e3 100644
--- a/pyrogram/methods/pyromod/wait_for_message.py
+++ b/pyrofork/methods/pyromod/wait_for_message.py
@@ -18,16 +18,16 @@
 #  along with Pyrofork.  If not, see .
 
 import asyncio
-import pyrogram
+import pyrofork
 from typing import Union
 from functools import partial
 
-from pyrogram import types
-from pyrogram.filters import Filter
+from pyrofork import types
+from pyrofork.filters import Filter
 
 class WaitForMessage:
     async def wait_for_message(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         filters: Filter = None,
         timeout: int = None
@@ -48,7 +48,7 @@ class WaitForMessage:
                 Timeout in seconds.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
 
         Raises:
             asyncio.TimeoutError: In case message not received within the timeout.
diff --git a/pyrogram/methods/stickers/__init__.py b/pyrofork/methods/stickers/__init__.py
similarity index 100%
rename from pyrogram/methods/stickers/__init__.py
rename to pyrofork/methods/stickers/__init__.py
diff --git a/pyrogram/methods/stickers/add_sticker_to_set.py b/pyrofork/methods/stickers/add_sticker_to_set.py
similarity index 92%
rename from pyrogram/methods/stickers/add_sticker_to_set.py
rename to pyrofork/methods/stickers/add_sticker_to_set.py
index 3cfc4253..16981263 100644
--- a/pyrogram/methods/stickers/add_sticker_to_set.py
+++ b/pyrofork/methods/stickers/add_sticker_to_set.py
@@ -19,14 +19,14 @@
 import os
 import re
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.file_id import FileId
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.file_id import FileId
 
 class AddStickerToSet:
     async def add_sticker_to_set(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         set_short_name: str,
         sticker: str,
         emoji: str = "🤔",
@@ -48,7 +48,7 @@ class AddStickerToSet:
                 default to "🤔"
 
         Returns:
-            :obj:`~pyrogram.types.StickerSet`: On success, the StickerSet information is returned.
+            :obj:`~pyrofork.types.StickerSet`: On success, the StickerSet information is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/stickers/create_sticker_set.py b/pyrofork/methods/stickers/create_sticker_set.py
similarity index 95%
rename from pyrogram/methods/stickers/create_sticker_set.py
rename to pyrofork/methods/stickers/create_sticker_set.py
index 744ca034..c7049634 100644
--- a/pyrogram/methods/stickers/create_sticker_set.py
+++ b/pyrofork/methods/stickers/create_sticker_set.py
@@ -20,15 +20,15 @@ import os
 import re
 from typing import Union, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
-from pyrogram.file_id import FileId
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
+from pyrofork.file_id import FileId
 
 
 class CreateStickerSet:
     async def create_sticker_set(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str],
         title: str,
         short_name: str,
@@ -78,7 +78,7 @@ class CreateStickerSet:
                 Whether this is a emojis stickerset.
 
         Returns:
-            :obj:`~pyrogram.types.StickerSet` | ``None``: On success, the StickerSet is returned.
+            :obj:`~pyrofork.types.StickerSet` | ``None``: On success, the StickerSet is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/stickers/get_sticker_set.py b/pyrofork/methods/stickers/get_sticker_set.py
similarity index 90%
rename from pyrogram/methods/stickers/get_sticker_set.py
rename to pyrofork/methods/stickers/get_sticker_set.py
index ef229c65..20d82dad 100644
--- a/pyrogram/methods/stickers/get_sticker_set.py
+++ b/pyrofork/methods/stickers/get_sticker_set.py
@@ -16,14 +16,14 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetStickerSet:
     async def get_sticker_set(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         set_short_name: str
     ) -> "types.StickerSet":
         """Get info about a stickerset.
@@ -35,7 +35,7 @@ class GetStickerSet:
                Stickerset shortname.
 
         Returns:
-            :obj:`~pyrogram.types.StickerSet`: On success, the StickerSet information is returned.
+            :obj:`~pyrofork.types.StickerSet`: On success, the StickerSet information is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/__init__.py b/pyrofork/methods/users/__init__.py
similarity index 84%
rename from pyrogram/methods/users/__init__.py
rename to pyrofork/methods/users/__init__.py
index be4d6037..d4811af4 100644
--- a/pyrogram/methods/users/__init__.py
+++ b/pyrofork/methods/users/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .block_user import BlockUser
 from .delete_profile_photos import DeleteProfilePhotos
diff --git a/pyrogram/methods/users/block_user.py b/pyrofork/methods/users/block_user.py
similarity index 77%
rename from pyrogram/methods/users/block_user.py
rename to pyrofork/methods/users/block_user.py
index 6782ada8..2fa878a4 100644
--- a/pyrogram/methods/users/block_user.py
+++ b/pyrofork/methods/users/block_user.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class BlockUser:
     async def block_user(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str]
     ) -> bool:
         """Block a user.
diff --git a/pyrogram/methods/users/delete_profile_photos.py b/pyrofork/methods/users/delete_profile_photos.py
similarity index 75%
rename from pyrogram/methods/users/delete_profile_photos.py
rename to pyrofork/methods/users/delete_profile_photos.py
index 2b52d02f..78863b0f 100644
--- a/pyrogram/methods/users/delete_profile_photos.py
+++ b/pyrofork/methods/users/delete_profile_photos.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import utils
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import raw
+from pyrofork import utils
+from pyrofork.file_id import FileType
 
 
 class DeleteProfilePhotos:
     async def delete_profile_photos(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         photo_ids: Union[str, List[str]]
     ) -> bool:
         """Delete your own profile photos.
@@ -35,7 +36,7 @@ class DeleteProfilePhotos:
 
         Parameters:
             photo_ids (``str`` | List of ``str``):
-                A single :obj:`~pyrogram.types.Photo` id as string or multiple ids as list of strings for deleting
+                A single :obj:`~pyrofork.types.Photo` id as string or multiple ids as list of strings for deleting
                 more than one photos at once.
 
         Returns:
diff --git a/pyrogram/methods/users/delete_stories.py b/pyrofork/methods/users/delete_stories.py
similarity index 96%
rename from pyrogram/methods/users/delete_stories.py
rename to pyrofork/methods/users/delete_stories.py
index 2b2898d0..9f9b5331 100644
--- a/pyrogram/methods/users/delete_stories.py
+++ b/pyrofork/methods/users/delete_stories.py
@@ -19,15 +19,15 @@
 import logging
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class DeleteStories:
     async def delete_stories(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         story_ids: Union[int, Iterable[int]],
         chat_id: Union[int, str] = None
     ) -> bool:
diff --git a/pyrogram/methods/users/edit_story.py b/pyrofork/methods/users/edit_story.py
similarity index 95%
rename from pyrogram/methods/users/edit_story.py
rename to pyrofork/methods/users/edit_story.py
index 8b78025b..07fb8cda 100644
--- a/pyrogram/methods/users/edit_story.py
+++ b/pyrofork/methods/users/edit_story.py
@@ -20,16 +20,16 @@ import os
 import re
 from typing import List
 
-import pyrogram
-from pyrogram import enums, raw, types, utils
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import enums, raw, types, utils
+from pyrofork.file_id import FileType
 
 class EditStory:
     def _split(self, message, entities, *args, **kwargs):
         return message, entities
 
     async def edit_story(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         story_id: int,
         chat_id: int = None,
         privacy: "enums.StoriesPrivacyRules" = None,
@@ -78,7 +78,7 @@ class EditStory:
                 pass a file path as string to upload a new video that exists on your local machine, or
                 pass a binary file-like object with its attribute ".name" set for in-memory uploads.
 
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
 
             allowed_users (List of ``int``, *optional*):
@@ -90,18 +90,18 @@ class EditStory:
             caption (``str``, *optional*):
                 Story caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-            media_areas (List of :obj:`~pyrogram.types.InputMediaArea`):
+            media_areas (List of :obj:`~pyrofork.types.InputMediaArea`):
                 List of media area object to be included in story.
 
         Returns:
-            :obj:`~pyrogram.types.Story` a single story is returned.
+            :obj:`~pyrofork.types.Story` a single story is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/export_story_link.py b/pyrofork/methods/users/export_story_link.py
similarity index 93%
rename from pyrogram/methods/users/export_story_link.py
rename to pyrofork/methods/users/export_story_link.py
index dec8e24c..b2cc19ae 100644
--- a/pyrogram/methods/users/export_story_link.py
+++ b/pyrofork/methods/users/export_story_link.py
@@ -19,15 +19,15 @@
 import logging
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class ExportStoryLink:
     async def export_story_link(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         story_id: int,
     ) -> types.ExportedStoryLink:
@@ -46,7 +46,7 @@ class ExportStoryLink:
                 Pass a single story identifier of story (as integers).
 
         Returns:
-            :obj:`~pyrogram.types.ExportedStoryLink`: a single story link is returned.
+            :obj:`~pyrofork.types.ExportedStoryLink`: a single story link is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/forward_story.py b/pyrofork/methods/users/forward_story.py
similarity index 91%
rename from pyrogram/methods/users/forward_story.py
rename to pyrofork/methods/users/forward_story.py
index ab37bf64..f3fb9548 100644
--- a/pyrogram/methods/users/forward_story.py
+++ b/pyrofork/methods/users/forward_story.py
@@ -18,15 +18,15 @@
 
 from typing import List, Union
 
-import pyrogram
-from pyrogram import enums, types
+import pyrofork
+from pyrofork import enums, types
 
 class ForwardStory:
     def _split(self, message, entities, *args, **kwargs):
         return message, entities
 
     async def forward_story(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         from_chat_id: Union[int, str],
         from_story_id: int,
         chat_id: Union[int, str] = None,
@@ -61,9 +61,9 @@ class ForwardStory:
                 If you want to forward story to a channel.
                 You can also use channel public link in form of *t.me/* (str).
 
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
-                Defaults to :obj:`~pyrogram.enums.StoriesPrivacyRules.PUBLIC`
+                Defaults to :obj:`~pyrofork.enums.StoriesPrivacyRules.PUBLIC`
 
             allowed_users (List of ``int``, *optional*):
                 List of user_id whos allowed to view the story.
@@ -82,11 +82,11 @@ class ForwardStory:
             caption (``str``, *optional*):
                 Story caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             period (``int``, *optional*):
@@ -94,7 +94,7 @@ class ForwardStory:
                 only for premium users.
 
         Returns:
-            :obj:`~pyrogram.types.Story` a single story is returned.
+            :obj:`~pyrofork.types.Story` a single story is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_all_stories.py b/pyrofork/methods/users/get_all_stories.py
similarity index 92%
rename from pyrogram/methods/users/get_all_stories.py
rename to pyrofork/methods/users/get_all_stories.py
index 34372926..6a11a567 100644
--- a/pyrogram/methods/users/get_all_stories.py
+++ b/pyrofork/methods/users/get_all_stories.py
@@ -19,22 +19,22 @@
 import logging
 from typing import AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class GetAllStories:
     async def get_all_stories(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ) -> Optional[AsyncGenerator["types.Story", None]]:
         """Get all active stories.
 
         .. include:: /_includes/usable-by/users.rst
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.Story` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.Story` objects is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_chat_photos.py b/pyrofork/methods/users/get_chat_photos.py
similarity index 88%
rename from pyrogram/methods/users/get_chat_photos.py
rename to pyrofork/methods/users/get_chat_photos.py
index 94552b27..74e9367b 100644
--- a/pyrogram/methods/users/get_chat_photos.py
+++ b/pyrofork/methods/users/get_chat_photos.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import types, raw, utils
+import pyrofork
+from pyrofork import types, raw, utils
 
 
 class GetChatPhotos:
     async def get_chat_photos(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         limit: int = 0,
     ) -> Optional[AsyncGenerator["types.Photo", None]]:
@@ -44,7 +45,7 @@ class GetChatPhotos:
                 By default, no limit is applied and all profile photos are returned.
 
         Returns:
-            ``Generator``: A generator yielding :obj:`~pyrogram.types.Photo` objects.
+            ``Generator``: A generator yielding :obj:`~pyrofork.types.Photo` objects.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_chat_photos_count.py b/pyrofork/methods/users/get_chat_photos_count.py
similarity index 83%
rename from pyrogram/methods/users/get_chat_photos_count.py
rename to pyrofork/methods/users/get_chat_photos_count.py
index 74d0081c..17d6336a 100644
--- a/pyrogram/methods/users/get_chat_photos_count.py
+++ b/pyrofork/methods/users/get_chat_photos_count.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class GetChatPhotosCount:
     async def get_chat_photos_count(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> int:
         """Get the total count of photos for a chat.
diff --git a/pyrogram/methods/users/get_common_chats.py b/pyrofork/methods/users/get_common_chats.py
similarity index 79%
rename from pyrogram/methods/users/get_common_chats.py
rename to pyrofork/methods/users/get_common_chats.py
index b4cba4fd..b0354710 100644
--- a/pyrogram/methods/users/get_common_chats.py
+++ b/pyrofork/methods/users/get_common_chats.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetCommonChats:
     async def get_common_chats(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str]
     ) -> List["types.Chat"]:
         """Get the common chats you have with a user.
@@ -40,7 +41,7 @@ class GetCommonChats:
                 You can also use user profile link in form of *t.me/* (str).
 
         Returns:
-            List of :obj:`~pyrogram.types.Chat`: On success, a list of the common chats is returned.
+            List of :obj:`~pyrofork.types.Chat`: On success, a list of the common chats is returned.
 
         Raises:
             ValueError: If the user_id doesn't belong to a user.
diff --git a/pyrogram/methods/users/get_default_emoji_statuses.py b/pyrofork/methods/users/get_default_emoji_statuses.py
similarity index 69%
rename from pyrogram/methods/users/get_default_emoji_statuses.py
rename to pyrofork/methods/users/get_default_emoji_statuses.py
index cd3768b9..8054102d 100644
--- a/pyrogram/methods/users/get_default_emoji_statuses.py
+++ b/pyrofork/methods/users/get_default_emoji_statuses.py
@@ -1,38 +1,39 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetDefaultEmojiStatuses:
     async def get_default_emoji_statuses(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
     ) -> List["types.EmojiStatus"]:
         """Get the default emoji statuses.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
         Returns:
-            List of :obj:`~pyrogram.types.EmojiStatus`: On success, a list of emoji statuses is returned.
+            List of :obj:`~pyrofork.types.EmojiStatus`: On success, a list of emoji statuses is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_me.py b/pyrofork/methods/users/get_me.py
similarity index 67%
rename from pyrogram/methods/users/get_me.py
rename to pyrofork/methods/users/get_me.py
index a8df3ae9..dfea0fda 100644
--- a/pyrogram/methods/users/get_me.py
+++ b/pyrofork/methods/users/get_me.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetMe:
     async def get_me(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ) -> "types.User":
         """Get your own user identity.
 
         .. include:: /_includes/usable-by/users-bots.rst
 
         Returns:
-            :obj:`~pyrogram.types.User`: Information about the own logged in user/bot.
+            :obj:`~pyrofork.types.User`: Information about the own logged in user/bot.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_peer_stories.py b/pyrofork/methods/users/get_peer_stories.py
similarity index 93%
rename from pyrogram/methods/users/get_peer_stories.py
rename to pyrofork/methods/users/get_peer_stories.py
index 939ca812..0f8d9e87 100644
--- a/pyrogram/methods/users/get_peer_stories.py
+++ b/pyrofork/methods/users/get_peer_stories.py
@@ -19,15 +19,15 @@
 import logging
 from typing import AsyncGenerator, Union, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class GetPeerStories:
     async def get_peer_stories(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str]
     ) -> Optional[AsyncGenerator["types.Story", None]]:
         """Get all active stories from an user/channel by using user identifiers.
@@ -42,7 +42,7 @@ class GetPeerStories:
                 You can also use user profile/channel public link in form of *t.me/* (str).
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.Story` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.Story` objects is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_stories.py b/pyrofork/methods/users/get_stories.py
similarity index 93%
rename from pyrogram/methods/users/get_stories.py
rename to pyrofork/methods/users/get_stories.py
index 97ea8a6d..b58e541a 100644
--- a/pyrogram/methods/users/get_stories.py
+++ b/pyrofork/methods/users/get_stories.py
@@ -19,15 +19,15 @@
 import logging
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class GetStories:
     async def get_stories(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int, str],
         story_ids: Union[int, Iterable[int]],
     ) -> Union["types.Story", List["types.Story"]]:
@@ -47,7 +47,7 @@ class GetStories:
                 story themselves.
 
         Returns:
-            :obj:`~pyrogram.types.Story` | List of :obj:`~pyrogram.types.Story`: In case *story_ids* was not
+            :obj:`~pyrofork.types.Story` | List of :obj:`~pyrofork.types.Story`: In case *story_ids* was not
             a list, a single story is returned, otherwise a list of stories is returned.
 
         Example:
diff --git a/pyrogram/methods/users/get_stories_history.py b/pyrofork/methods/users/get_stories_history.py
similarity index 94%
rename from pyrogram/methods/users/get_stories_history.py
rename to pyrofork/methods/users/get_stories_history.py
index a89b1845..876f1b28 100644
--- a/pyrogram/methods/users/get_stories_history.py
+++ b/pyrofork/methods/users/get_stories_history.py
@@ -19,15 +19,15 @@
 import logging
 from typing import AsyncGenerator, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 log = logging.getLogger(__name__)
 
 class GetUserStoriesHistory:
     async def get_stories_history(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: int = None,
         limit: int = 0,
         offset_id: int = 0
@@ -49,7 +49,7 @@ class GetUserStoriesHistory:
                 Identifier of the first story to be returned.
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.Story` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.Story` objects is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/get_users.py b/pyrofork/methods/users/get_users.py
similarity index 78%
rename from pyrogram/methods/users/get_users.py
rename to pyrofork/methods/users/get_users.py
index 3f11df34..b8ebf361 100644
--- a/pyrogram/methods/users/get_users.py
+++ b/pyrofork/methods/users/get_users.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 from typing import Union, List, Iterable
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 
 class GetUsers:
     async def get_users(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_ids: Union[int, str, Iterable[Union[int, str]]]
     ) -> Union["types.User", List["types.User"]]:
         """Get information about a user.
@@ -41,7 +42,7 @@ class GetUsers:
                 You can also use user profile link in form of *t.me/* (str).
 
         Returns:
-            :obj:`~pyrogram.types.User` | List of :obj:`~pyrogram.types.User`: In case *user_ids* was not a list,
+            :obj:`~pyrofork.types.User` | List of :obj:`~pyrofork.types.User`: In case *user_ids* was not a list,
             a single user is returned, otherwise a list of users is returned.
 
         Example:
diff --git a/pyrogram/methods/users/send_story.py b/pyrofork/methods/users/send_story.py
similarity index 95%
rename from pyrogram/methods/users/send_story.py
rename to pyrofork/methods/users/send_story.py
index 8808a66c..68a112f7 100644
--- a/pyrogram/methods/users/send_story.py
+++ b/pyrofork/methods/users/send_story.py
@@ -20,16 +20,16 @@ import os
 import re
 from typing import BinaryIO, List, Union
 
-import pyrogram
-from pyrogram import enums, raw, types, utils
-from pyrogram.file_id import FileType
+import pyrofork
+from pyrofork import enums, raw, types, utils
+from pyrofork.file_id import FileType
 
 class SendStory:
     def _split(self, message, entities, *args, **kwargs):
         return message, entities
 
     async def _upload_video(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         file_name: str,
         video: Union[str, BinaryIO]
     ):
@@ -48,7 +48,7 @@ class SendStory:
         )
 
     async def send_story(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         chat_id: Union[int,str] = None,
         privacy: "enums.StoriesPrivacyRules" = None,
         allowed_users: List[int] = None,
@@ -97,9 +97,9 @@ class SendStory:
                 File name of the video sent.
                 Defaults to file's path basename.
 
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
-                Defaults to :obj:`~pyrogram.enums.StoriesPrivacyRules.PUBLIC`
+                Defaults to :obj:`~pyrofork.enums.StoriesPrivacyRules.PUBLIC`
 
             allowed_users (List of ``int``, *optional*):
                 List of user_id whos allowed to view the story.
@@ -118,18 +118,18 @@ class SendStory:
             caption (``str``, *optional*):
                 Story caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             period (``int``, *optional*):
                 How long the story will posted, in secs.
                 only for premium users.
 
-            media_areas (List of :obj:`~pyrogram.types.InputMediaArea`):
+            media_areas (List of :obj:`~pyrofork.types.InputMediaArea`):
                 List of media area object to be included in story.
 
             forward_from_chat_id (``int`` | ``str``, *optional):
@@ -141,7 +141,7 @@ class SendStory:
                 Single story id.
 
         Returns:
-            :obj:`~pyrogram.types.Story` a single story is returned.
+            :obj:`~pyrofork.types.Story` a single story is returned.
 
         Example:
             .. code-block:: python
diff --git a/pyrogram/methods/users/set_emoji_status.py b/pyrofork/methods/users/set_emoji_status.py
similarity index 71%
rename from pyrogram/methods/users/set_emoji_status.py
rename to pyrofork/methods/users/set_emoji_status.py
index 2d8c77cc..887540d3 100644
--- a/pyrogram/methods/users/set_emoji_status.py
+++ b/pyrofork/methods/users/set_emoji_status.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 
 
 class SetEmojiStatus:
     async def set_emoji_status(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         emoji_status: Optional["types.EmojiStatus"] = None
     ) -> bool:
         """Set the emoji status.
@@ -32,7 +33,7 @@ class SetEmojiStatus:
         .. include:: /_includes/usable-by/users.rst
 
         Parameters:
-            emoji_status (:obj:`~pyrogram.types.EmojiStatus`, *optional*):
+            emoji_status (:obj:`~pyrofork.types.EmojiStatus`, *optional*):
                 The emoji status to set. None to remove.
 
         Returns:
@@ -41,7 +42,7 @@ class SetEmojiStatus:
         Example:
             .. code-block:: python
 
-                from pyrogram import types
+                from pyrofork import types
 
                 await app.set_emoji_status(types.EmojiStatus(custom_emoji_id=1234567890987654321))
         """
diff --git a/pyrogram/methods/users/set_profile_photo.py b/pyrofork/methods/users/set_profile_photo.py
similarity index 84%
rename from pyrogram/methods/users/set_profile_photo.py
rename to pyrofork/methods/users/set_profile_photo.py
index e08e669c..f918b23d 100644
--- a/pyrogram/methods/users/set_profile_photo.py
+++ b/pyrofork/methods/users/set_profile_photo.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, BinaryIO
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetProfilePhoto:
     async def set_profile_photo(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         *,
         photo: Union[str, BinaryIO] = None,
         video: Union[str, BinaryIO] = None
diff --git a/pyrogram/methods/users/set_username.py b/pyrofork/methods/users/set_username.py
similarity index 75%
rename from pyrogram/methods/users/set_username.py
rename to pyrofork/methods/users/set_username.py
index d336628e..90cbb05d 100644
--- a/pyrogram/methods/users/set_username.py
+++ b/pyrofork/methods/users/set_username.py
@@ -1,37 +1,38 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class SetUsername:
     async def set_username(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         username: Optional[str]
     ) -> bool:
         """Set your own username.
 
         This method only works for users, not bots. Bot usernames must be changed via Bot Support or by recreating
         them from scratch using BotFather. To set a channel or supergroup username you can use
-        :meth:`~pyrogram.Client.set_chat_username`.
+        :meth:`~pyrofork.Client.set_chat_username`.
 
         .. include:: /_includes/usable-by/users.rst
 
diff --git a/pyrogram/methods/users/unblock_user.py b/pyrofork/methods/users/unblock_user.py
similarity index 77%
rename from pyrogram/methods/users/unblock_user.py
rename to pyrofork/methods/users/unblock_user.py
index df28cb24..29484019 100644
--- a/pyrogram/methods/users/unblock_user.py
+++ b/pyrofork/methods/users/unblock_user.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UnblockUser:
     async def unblock_user(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         user_id: Union[int, str]
     ) -> bool:
         """Unblock a user.
diff --git a/pyrogram/methods/users/update_profile.py b/pyrofork/methods/users/update_profile.py
similarity index 82%
rename from pyrogram/methods/users/update_profile.py
rename to pyrofork/methods/users/update_profile.py
index 50747214..51afbf3a 100644
--- a/pyrogram/methods/users/update_profile.py
+++ b/pyrofork/methods/users/update_profile.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 
 class UpdateProfile:
     async def update_profile(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         first_name: str = None,
         last_name: str = None,
         bio: str = None
diff --git a/pyrogram/methods/utilities/__init__.py b/pyrofork/methods/utilities/__init__.py
similarity index 73%
rename from pyrogram/methods/utilities/__init__.py
rename to pyrofork/methods/utilities/__init__.py
index e34fc7a3..2184025b 100644
--- a/pyrogram/methods/utilities/__init__.py
+++ b/pyrofork/methods/utilities/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .add_handler import AddHandler
 from .export_session_string import ExportSessionString
diff --git a/pyrogram/methods/utilities/add_handler.py b/pyrofork/methods/utilities/add_handler.py
similarity index 74%
rename from pyrogram/methods/utilities/add_handler.py
rename to pyrofork/methods/utilities/add_handler.py
index 136647d9..5fbaf7cb 100644
--- a/pyrogram/methods/utilities/add_handler.py
+++ b/pyrofork/methods/utilities/add_handler.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram.handlers import DisconnectHandler
-from pyrogram.handlers.handler import Handler
+import pyrofork
+from pyrofork.handlers import DisconnectHandler
+from pyrofork.handlers.handler import Handler
 
 
 class AddHandler:
     def add_handler(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         handler: "Handler",
         group: int = 0
     ):
@@ -47,8 +48,8 @@ class AddHandler:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
-                from pyrogram.handlers import MessageHandler
+                from pyrofork import Client
+                from pyrofork.handlers import MessageHandler
 
                 async def hello(client, message):
                     print(message)
diff --git a/pyrogram/methods/utilities/compose.py b/pyrofork/methods/utilities/compose.py
similarity index 73%
rename from pyrogram/methods/utilities/compose.py
rename to pyrofork/methods/utilities/compose.py
index e05773b8..c35fe504 100644
--- a/pyrogram/methods/utilities/compose.py
+++ b/pyrofork/methods/utilities/compose.py
@@ -1,40 +1,41 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 from typing import List
 
-import pyrogram
+import pyrofork
 from .idle import idle
 
 
 async def compose(
-    clients: List["pyrogram.Client"],
+    clients: List["pyrofork.Client"],
     sequential: bool = False
 ):
     """Run multiple clients at once.
 
-    This method can be used to run multiple clients at once and can be found directly in the ``pyrogram`` package.
+    This method can be used to run multiple clients at once and can be found directly in the ``pyrofork`` package.
 
-    If you want to run a single client, you can use Client's bound method :meth:`~pyrogram.Client.run`.
+    If you want to run a single client, you can use Client's bound method :meth:`~pyrofork.Client.run`.
 
     Parameters:
-        clients (List of :obj:`~pyrogram.Client`):
+        clients (List of :obj:`~pyrofork.Client`):
             A list of client objects to run.
 
         sequential (``bool``, *optional*):
@@ -45,7 +46,7 @@ async def compose(
         .. code-block:: python
 
             import asyncio
-            from pyrogram import Client, compose
+            from pyrofork import Client, compose
 
 
             async def main():
diff --git a/pyrogram/methods/utilities/export_session_string.py b/pyrofork/methods/utilities/export_session_string.py
similarity index 74%
rename from pyrogram/methods/utilities/export_session_string.py
rename to pyrofork/methods/utilities/export_session_string.py
index 6529484d..3d6612d9 100644
--- a/pyrogram/methods/utilities/export_session_string.py
+++ b/pyrofork/methods/utilities/export_session_string.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class ExportSessionString:
     async def export_session_string(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ):
         """Export the current authorized session as a serialized string.
 
diff --git a/pyrogram/methods/utilities/idle.py b/pyrofork/methods/utilities/idle.py
similarity index 83%
rename from pyrogram/methods/utilities/idle.py
rename to pyrofork/methods/utilities/idle.py
index 00db22a2..aefffd67 100644
--- a/pyrogram/methods/utilities/idle.py
+++ b/pyrofork/methods/utilities/idle.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import logging
@@ -40,13 +41,13 @@ async def idle():
     updates through handlers, rather than executing a set of methods sequentially.
 
     Once a signal is received (e.g.: from CTRL+C) the function will terminate and your main script will continue.
-    Don't forget to call :meth:`~pyrogram.Client.stop` for each running client before the script ends.
+    Don't forget to call :meth:`~pyrofork.Client.stop` for each running client before the script ends.
 
     Example:
         .. code-block:: python
 
             import asyncio
-            from pyrogram import Client, idle
+            from pyrofork import Client, idle
 
 
             async def main():
diff --git a/pyrogram/methods/utilities/remove_handler.py b/pyrofork/methods/utilities/remove_handler.py
similarity index 70%
rename from pyrogram/methods/utilities/remove_handler.py
rename to pyrofork/methods/utilities/remove_handler.py
index 9f1c974e..29bcb861 100644
--- a/pyrogram/methods/utilities/remove_handler.py
+++ b/pyrofork/methods/utilities/remove_handler.py
@@ -1,36 +1,37 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram.handlers import DisconnectHandler
-from pyrogram.handlers.handler import Handler
+import pyrofork
+from pyrofork.handlers import DisconnectHandler
+from pyrofork.handlers.handler import Handler
 
 
 class RemoveHandler:
     def remove_handler(
-        self: "pyrogram.Client",
+        self: "pyrofork.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
-        :meth:`~pyrogram.Client.add_handler` method, a tuple of *(handler, group)*, and pass it directly.
+        :meth:`~pyrofork.Client.add_handler` method, a tuple of *(handler, group)*, and pass it directly.
 
         Parameters:
             handler (``Handler``):
@@ -42,8 +43,8 @@ class RemoveHandler:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
-                from pyrogram.handlers import MessageHandler
+                from pyrofork import Client
+                from pyrofork.handlers import MessageHandler
 
                 async def hello(client, message):
                     print(message)
diff --git a/pyrogram/methods/utilities/restart.py b/pyrofork/methods/utilities/restart.py
similarity index 73%
rename from pyrogram/methods/utilities/restart.py
rename to pyrofork/methods/utilities/restart.py
index 44fd6745..bdd34d1b 100644
--- a/pyrogram/methods/utilities/restart.py
+++ b/pyrofork/methods/utilities/restart.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class Restart:
     async def restart(
-        self: "pyrogram.Client",
+        self: "pyrofork.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
+        This method will first call :meth:`~pyrofork.Client.stop` and then :meth:`~pyrofork.Client.start` in a row in
         order to restart a client using a single method.
 
         Parameters:
@@ -36,7 +37,7 @@ class Restart:
                 Defaults to True.
 
         Returns:
-            :obj:`~pyrogram.Client`: The restarted client itself.
+            :obj:`~pyrofork.Client`: The restarted client itself.
 
         Raises:
             ConnectionError: In case you try to restart a stopped Client.
@@ -44,7 +45,7 @@ class Restart:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
+                from pyrofork import Client
 
                 app = Client("my_account")
 
diff --git a/pyrogram/methods/utilities/run.py b/pyrofork/methods/utilities/run.py
similarity index 75%
rename from pyrogram/methods/utilities/run.py
rename to pyrofork/methods/utilities/run.py
index ec1bece3..c7e55239 100644
--- a/pyrogram/methods/utilities/run.py
+++ b/pyrofork/methods/utilities/run.py
@@ -1,44 +1,45 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import inspect
 
-import pyrogram
-from pyrogram.methods.utilities.idle import idle
+import pyrofork
+from pyrofork.methods.utilities.idle import idle
 
 
 class Run:
     def run(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         coroutine=None
     ):
         """Start the client, idle the main script and finally stop the client.
 
         When calling this method without any argument it acts as a convenience method that calls
-        :meth:`~pyrogram.Client.start`, :meth:`~pyrogram.idle` and :meth:`~pyrogram.Client.stop` in sequence.
+        :meth:`~pyrofork.Client.start`, :meth:`~pyrofork.idle` and :meth:`~pyrofork.Client.stop` in sequence.
         It makes running a single client less verbose.
 
         In case a coroutine is passed as argument, runs the coroutine until it's completed and doesn't do any client
-        operation. This is almost the same as :py:obj:`asyncio.run` except for the fact that Pyrogram's ``run`` uses the
+        operation. This is almost the same as :py:obj:`asyncio.run` except for the fact that Pyrofork's ``run`` uses the
         current event loop instead of a new one.
 
-        If you want to run multiple clients at once, see :meth:`pyrogram.compose`.
+        If you want to run multiple clients at once, see :meth:`pyrofork.compose`.
 
         Parameters:
             coroutine (``Coroutine``, *optional*):
@@ -50,7 +51,7 @@ class Run:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
+                from pyrofork import Client
 
                 app = Client("my_account")
                 ...  # Set handlers up
@@ -58,7 +59,7 @@ class Run:
 
             .. code-block:: python
 
-                from pyrogram import Client
+                from pyrofork import Client
 
                 app = Client("my_account")
 
diff --git a/pyrogram/methods/utilities/run_sync.py b/pyrofork/methods/utilities/run_sync.py
similarity index 93%
rename from pyrogram/methods/utilities/run_sync.py
rename to pyrofork/methods/utilities/run_sync.py
index 864321ec..2b4c1217 100755
--- a/pyrogram/methods/utilities/run_sync.py
+++ b/pyrofork/methods/utilities/run_sync.py
@@ -1,41 +1,41 @@
-"""PyroFork async utils"""
-# Copyright (C) 2020 - 2023  UserbotIndo Team, 
-# Copyright (C) 2022-present  Mayuri-Chan, 
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see .
-
-from pyrogram import utils
-from typing import Any, Callable, TypeVar
-
-class RunSync:
-    Result = TypeVar("Result")
-
-    async def run_sync(self, func: Callable[..., Result], *args: Any, **kwargs: Any) -> Result:
-        """Runs the given sync function (optionally with arguments) on a separate thread.
-
-        Parameters:
-            func (``Callable``):
-                Sync function to run.
-
-            \\*args (``any``, *optional*):
-                Function argument.
-
-            \\*\\*kwargs (``any``, *optional*):
-                Function extras arguments.
-
-        Returns:
-                ``any``: The function result.
-        """
-
-        return await utils.run_sync(func, *args, **kwargs)
+"""Pyrofork async utils"""
+# Copyright (C) 2020 - 2023  UserbotIndo Team, 
+# Copyright (C) 2022-present  Mayuri-Chan, 
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see .
+
+from pyrofork import utils
+from typing import Any, Callable, TypeVar
+
+class RunSync:
+    Result = TypeVar("Result")
+
+    async def run_sync(self, func: Callable[..., Result], *args: Any, **kwargs: Any) -> Result:
+        """Runs the given sync function (optionally with arguments) on a separate thread.
+
+        Parameters:
+            func (``Callable``):
+                Sync function to run.
+
+            \\*args (``any``, *optional*):
+                Function argument.
+
+            \\*\\*kwargs (``any``, *optional*):
+                Function extras arguments.
+
+        Returns:
+                ``any``: The function result.
+        """
+
+        return await utils.run_sync(func, *args, **kwargs)
diff --git a/pyrogram/methods/utilities/start.py b/pyrofork/methods/utilities/start.py
similarity index 77%
rename from pyrogram/methods/utilities/start.py
rename to pyrofork/methods/utilities/start.py
index d8314da1..4cef47d5 100644
--- a/pyrogram/methods/utilities/start.py
+++ b/pyrofork/methods/utilities/start.py
@@ -1,32 +1,33 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 log = logging.getLogger(__name__)
 
 
 class Start:
     async def start(
-        self: "pyrogram.Client"
+        self: "pyrofork.Client"
     ):
         """Start the client.
 
@@ -34,7 +35,7 @@ class Start:
         authorization process using an interactive prompt.
 
         Returns:
-            :obj:`~pyrogram.Client`: The started client itself.
+            :obj:`~pyrofork.Client`: The started client itself.
 
         Raises:
             ConnectionError: In case you try to start an already started client.
@@ -42,7 +43,7 @@ class Start:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
+                from pyrofork import Client
 
                 app = Client("my_account")
 
diff --git a/pyrogram/methods/utilities/stop.py b/pyrofork/methods/utilities/stop.py
similarity index 76%
rename from pyrogram/methods/utilities/stop.py
rename to pyrofork/methods/utilities/stop.py
index 1b28add0..395afece 100644
--- a/pyrogram/methods/utilities/stop.py
+++ b/pyrofork/methods/utilities/stop.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class Stop:
     async def stop(
-        self: "pyrogram.Client",
+        self: "pyrofork.Client",
         block: bool = True
     ):
         """Stop the Client.
@@ -35,7 +36,7 @@ class Stop:
                 Defaults to True.
 
         Returns:
-            :obj:`~pyrogram.Client`: The stopped client itself.
+            :obj:`~pyrofork.Client`: The stopped client itself.
 
         Raises:
             ConnectionError: In case you try to stop an already stopped client.
@@ -43,7 +44,7 @@ class Stop:
         Example:
             .. code-block:: python
 
-                from pyrogram import Client
+                from pyrofork import Client
 
                 app = Client("my_account")
 
diff --git a/pyrogram/methods/utilities/stop_transmission.py b/pyrofork/methods/utilities/stop_transmission.py
similarity index 96%
rename from pyrogram/methods/utilities/stop_transmission.py
rename to pyrofork/methods/utilities/stop_transmission.py
index 81ab8870..4095f3cf 100644
--- a/pyrogram/methods/utilities/stop_transmission.py
+++ b/pyrofork/methods/utilities/stop_transmission.py
@@ -17,7 +17,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class StopTransmission:
@@ -42,4 +42,4 @@ class StopTransmission:
                         progress=progress,
                         progress_args=(app,))
         """
-        raise pyrogram.StopTransmission
+        raise pyrofork.StopTransmission
diff --git a/pyrogram/mime_types.py b/pyrofork/mime_types.py
similarity index 99%
rename from pyrogram/mime_types.py
rename to pyrofork/mime_types.py
index 2f6c86aa..ec1bad9e 100644
--- a/pyrogram/mime_types.py
+++ b/pyrofork/mime_types.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 # From https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types.
 # Extended with extra mime types specific to Telegram.
diff --git a/pyrogram/nav/__init__.py b/pyrofork/nav/__init__.py
similarity index 100%
rename from pyrogram/nav/__init__.py
rename to pyrofork/nav/__init__.py
diff --git a/pyrogram/nav/pagination.py b/pyrofork/nav/pagination.py
similarity index 98%
rename from pyrogram/nav/pagination.py
rename to pyrofork/nav/pagination.py
index 59511885..8a93d00a 100644
--- a/pyrogram/nav/pagination.py
+++ b/pyrofork/nav/pagination.py
@@ -18,7 +18,7 @@
 #  along with Pyrofork.  If not, see .
 
 import math
-from pyrogram.helpers import array_chunk
+from pyrofork.helpers import array_chunk
 
 class Pagination:
     def __init__(self, objects, page_data=None, item_data=None, item_title=None):
diff --git a/pyrogram/parser/__init__.py b/pyrofork/parser/__init__.py
similarity index 60%
rename from pyrogram/parser/__init__.py
rename to pyrofork/parser/__init__.py
index 00c7acae..43c6afb1 100644
--- a/pyrogram/parser/__init__.py
+++ b/pyrofork/parser/__init__.py
@@ -1,19 +1,20 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .parser import Parser
diff --git a/pyrogram/parser/html.py b/pyrofork/parser/html.py
similarity index 93%
rename from pyrogram/parser/html.py
rename to pyrofork/parser/html.py
index 46722a8c..c34d0840 100644
--- a/pyrogram/parser/html.py
+++ b/pyrofork/parser/html.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import html
 import logging
@@ -22,10 +23,10 @@ import re
 from html.parser import HTMLParser
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.enums import MessageEntityType
-from pyrogram.errors import PeerIdInvalid
+import pyrofork
+from pyrofork import raw
+from pyrofork.enums import MessageEntityType
+from pyrofork.errors import PeerIdInvalid
 from . import utils
 
 log = logging.getLogger(__name__)
@@ -34,7 +35,7 @@ log = logging.getLogger(__name__)
 class Parser(HTMLParser):
     MENTION_RE = re.compile(r"tg://user\?id=(\d+)")
 
-    def __init__(self, client: "pyrogram.Client"):
+    def __init__(self, client: "pyrofork.Client"):
         super().__init__()
 
         self.client = client
@@ -113,7 +114,7 @@ class Parser(HTMLParser):
 
 
 class HTML:
-    def __init__(self, client: Optional["pyrogram.Client"]):
+    def __init__(self, client: Optional["pyrofork.Client"]):
         self.client = client
 
     async def parse(self, text: str):
diff --git a/pyrogram/parser/markdown.py b/pyrofork/parser/markdown.py
similarity index 93%
rename from pyrogram/parser/markdown.py
rename to pyrofork/parser/markdown.py
index ae6d3cb6..ebf32e84 100644
--- a/pyrogram/parser/markdown.py
+++ b/pyrofork/parser/markdown.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import html
 import logging
 import re
 from typing import Optional
 
-import pyrogram
-from pyrogram.enums import MessageEntityType
+import pyrofork
+from pyrofork.enums import MessageEntityType
 from . import utils
 from .html import HTML
 
@@ -58,7 +59,7 @@ FIXED_WIDTH_DELIMS = [CODE_DELIM, PRE_DELIM]
 
 
 class Markdown:
-    def __init__(self, client: Optional["pyrogram.Client"]):
+    def __init__(self, client: Optional["pyrofork.Client"]):
         self.html = HTML(client)
 
     def blockquote_parser(self, text):
diff --git a/pyrogram/parser/parser.py b/pyrofork/parser/parser.py
similarity index 78%
rename from pyrogram/parser/parser.py
rename to pyrofork/parser/parser.py
index 0ce2b237..be2390bc 100644
--- a/pyrogram/parser/parser.py
+++ b/pyrofork/parser/parser.py
@@ -1,31 +1,32 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import enums
+import pyrofork
+from pyrofork import enums
 from .html import HTML
 from .markdown import Markdown
 
 
 class Parser:
-    def __init__(self, client: Optional["pyrogram.Client"]):
+    def __init__(self, client: Optional["pyrofork.Client"]):
         self.client = client
         self.html = HTML(client)
         self.markdown = Markdown(client)
diff --git a/pyrogram/parser/utils.py b/pyrofork/parser/utils.py
similarity index 77%
rename from pyrogram/parser/utils.py
rename to pyrofork/parser/utils.py
index 0d604028..76ef2672 100644
--- a/pyrogram/parser/utils.py
+++ b/pyrofork/parser/utils.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import re
 from struct import unpack
diff --git a/pyrogram/py.typed b/pyrofork/py.typed
similarity index 100%
rename from pyrogram/py.typed
rename to pyrofork/py.typed
diff --git a/pyrogram/raw/__init__.py b/pyrofork/raw/__init__.py
similarity index 67%
rename from pyrogram/raw/__init__.py
rename to pyrofork/raw/__init__.py
index a1435c77..9ab7f960 100644
--- a/pyrogram/raw/__init__.py
+++ b/pyrofork/raw/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from importlib import import_module
 
diff --git a/pyrogram/raw/core/__init__.py b/pyrofork/raw/core/__init__.py
similarity index 73%
rename from pyrogram/raw/core/__init__.py
rename to pyrofork/raw/core/__init__.py
index 95c81231..1aeac260 100644
--- a/pyrogram/raw/core/__init__.py
+++ b/pyrofork/raw/core/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .future_salt import FutureSalt
 from .future_salts import FutureSalts
diff --git a/pyrogram/raw/core/future_salt.py b/pyrofork/raw/core/future_salt.py
similarity index 79%
rename from pyrogram/raw/core/future_salt.py
rename to pyrofork/raw/core/future_salt.py
index ecef5e2f..01d5a11e 100644
--- a/pyrogram/raw/core/future_salt.py
+++ b/pyrofork/raw/core/future_salt.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any
diff --git a/pyrogram/raw/core/future_salts.py b/pyrofork/raw/core/future_salts.py
similarity index 81%
rename from pyrogram/raw/core/future_salts.py
rename to pyrofork/raw/core/future_salts.py
index 88216387..4505d792 100644
--- a/pyrogram/raw/core/future_salts.py
+++ b/pyrofork/raw/core/future_salts.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any, List
diff --git a/pyrogram/raw/core/gzip_packed.py b/pyrofork/raw/core/gzip_packed.py
similarity index 80%
rename from pyrogram/raw/core/gzip_packed.py
rename to pyrofork/raw/core/gzip_packed.py
index 685594d8..239fe3db 100644
--- a/pyrogram/raw/core/gzip_packed.py
+++ b/pyrofork/raw/core/gzip_packed.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from gzip import compress, decompress
 from io import BytesIO
diff --git a/pyrogram/raw/core/list.py b/pyrofork/raw/core/list.py
similarity index 62%
rename from pyrogram/raw/core/list.py
rename to pyrofork/raw/core/list.py
index a7bbc16b..fd435b8d 100644
--- a/pyrogram/raw/core/list.py
+++ b/pyrofork/raw/core/list.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List as TList, Any
 
@@ -23,4 +24,4 @@ from .tl_object import TLObject
 
 class List(TList[Any], TLObject):
     def __repr__(self) -> str:
-        return f"pyrogram.raw.core.List([{','.join(TLObject.__repr__(i) for i in self)}])"
+        return f"pyrofork.raw.core.List([{','.join(TLObject.__repr__(i) for i in self)}])"
diff --git a/pyrogram/raw/core/message.py b/pyrofork/raw/core/message.py
similarity index 81%
rename from pyrogram/raw/core/message.py
rename to pyrofork/raw/core/message.py
index 1357cf86..626956c7 100644
--- a/pyrogram/raw/core/message.py
+++ b/pyrofork/raw/core/message.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any
diff --git a/pyrogram/raw/core/msg_container.py b/pyrofork/raw/core/msg_container.py
similarity index 78%
rename from pyrogram/raw/core/msg_container.py
rename to pyrofork/raw/core/msg_container.py
index 454a1507..baf21947 100644
--- a/pyrogram/raw/core/msg_container.py
+++ b/pyrofork/raw/core/msg_container.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import List, Any
diff --git a/pyrogram/raw/core/primitives/__init__.py b/pyrofork/raw/core/primitives/__init__.py
similarity index 66%
rename from pyrogram/raw/core/primitives/__init__.py
rename to pyrofork/raw/core/primitives/__init__.py
index 88f2fa53..86cc16d2 100644
--- a/pyrogram/raw/core/primitives/__init__.py
+++ b/pyrofork/raw/core/primitives/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .bool import Bool, BoolFalse, BoolTrue
 from .bytes import Bytes
diff --git a/pyrogram/raw/core/primitives/bool.py b/pyrofork/raw/core/primitives/bool.py
similarity index 77%
rename from pyrogram/raw/core/primitives/bool.py
rename to pyrofork/raw/core/primitives/bool.py
index 02cc12d1..9615dbaf 100644
--- a/pyrogram/raw/core/primitives/bool.py
+++ b/pyrofork/raw/core/primitives/bool.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any
diff --git a/pyrogram/raw/core/primitives/bytes.py b/pyrofork/raw/core/primitives/bytes.py
similarity index 80%
rename from pyrogram/raw/core/primitives/bytes.py
rename to pyrofork/raw/core/primitives/bytes.py
index eace1feb..2b0de329 100644
--- a/pyrogram/raw/core/primitives/bytes.py
+++ b/pyrofork/raw/core/primitives/bytes.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any
diff --git a/pyrogram/raw/core/primitives/double.py b/pyrofork/raw/core/primitives/double.py
similarity index 71%
rename from pyrogram/raw/core/primitives/double.py
rename to pyrofork/raw/core/primitives/double.py
index bb7878bf..c43bde40 100644
--- a/pyrogram/raw/core/primitives/double.py
+++ b/pyrofork/raw/core/primitives/double.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from struct import unpack, pack
diff --git a/pyrogram/raw/core/primitives/int.py b/pyrofork/raw/core/primitives/int.py
similarity index 74%
rename from pyrogram/raw/core/primitives/int.py
rename to pyrofork/raw/core/primitives/int.py
index 5d5ec177..3d4fe2af 100644
--- a/pyrogram/raw/core/primitives/int.py
+++ b/pyrofork/raw/core/primitives/int.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import Any
diff --git a/pyrogram/raw/core/primitives/string.py b/pyrofork/raw/core/primitives/string.py
similarity index 71%
rename from pyrogram/raw/core/primitives/string.py
rename to pyrofork/raw/core/primitives/string.py
index 66f99271..1bda7046 100644
--- a/pyrogram/raw/core/primitives/string.py
+++ b/pyrofork/raw/core/primitives/string.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import cast
diff --git a/pyrogram/raw/core/primitives/vector.py b/pyrofork/raw/core/primitives/vector.py
similarity index 85%
rename from pyrogram/raw/core/primitives/vector.py
rename to pyrofork/raw/core/primitives/vector.py
index 7676ab6a..05a74263 100644
--- a/pyrogram/raw/core/primitives/vector.py
+++ b/pyrofork/raw/core/primitives/vector.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from typing import cast, Union, Any
diff --git a/pyrogram/raw/core/tl_object.py b/pyrofork/raw/core/tl_object.py
similarity index 84%
rename from pyrogram/raw/core/tl_object.py
rename to pyrofork/raw/core/tl_object.py
index ff67566e..7212acdd 100644
--- a/pyrogram/raw/core/tl_object.py
+++ b/pyrofork/raw/core/tl_object.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from io import BytesIO
 from json import dumps
@@ -56,7 +57,7 @@ class TLObject:
         if not hasattr(self, "QUALNAME"):
             return repr(self)
 
-        return "pyrogram.raw.{}({})".format(
+        return "pyrofork.raw.{}({})".format(
             self.QUALNAME,
             ", ".join(
                 f"{attr}={repr(getattr(self, attr))}"
diff --git a/pyrogram/session/__init__.py b/pyrofork/session/__init__.py
similarity index 61%
rename from pyrogram/session/__init__.py
rename to pyrofork/session/__init__.py
index b414049b..67824499 100644
--- a/pyrogram/session/__init__.py
+++ b/pyrofork/session/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .auth import Auth
 from .session import Session
diff --git a/pyrogram/session/auth.py b/pyrofork/session/auth.py
similarity index 97%
rename from pyrogram/session/auth.py
rename to pyrofork/session/auth.py
index bc0f785d..1d4f4b20 100644
--- a/pyrogram/session/auth.py
+++ b/pyrofork/session/auth.py
@@ -24,12 +24,12 @@ from hashlib import sha1
 from io import BytesIO
 from os import urandom
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.connection import Connection
-from pyrogram.crypto import aes, rsa, prime
-from pyrogram.errors import SecurityCheckMismatch
-from pyrogram.raw.core import TLObject, Long, Int
+import pyrofork
+from pyrofork import raw
+from pyrofork.connection import Connection
+from pyrofork.crypto import aes, rsa, prime
+from pyrofork.errors import SecurityCheckMismatch
+from pyrofork.raw.core import TLObject, Long, Int
 from .internals import MsgId
 
 log = logging.getLogger(__name__)
@@ -38,7 +38,7 @@ log = logging.getLogger(__name__)
 class Auth:
     MAX_RETRIES = 5
 
-    def __init__(self, client: "pyrogram.Client", dc_id: int, test_mode: bool):
+    def __init__(self, client: "pyrofork.Client", dc_id: int, test_mode: bool):
         self.dc_id = dc_id
         self.test_mode = test_mode
         self.ipv6 = client.ipv6
diff --git a/pyrogram/session/internals/__init__.py b/pyrofork/session/internals/__init__.py
similarity index 63%
rename from pyrogram/session/internals/__init__.py
rename to pyrofork/session/internals/__init__.py
index 31dcc80f..1754586e 100644
--- a/pyrogram/session/internals/__init__.py
+++ b/pyrofork/session/internals/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .data_center import DataCenter
 from .msg_factory import MsgFactory
diff --git a/pyrogram/session/internals/data_center.py b/pyrofork/session/internals/data_center.py
similarity index 100%
rename from pyrogram/session/internals/data_center.py
rename to pyrofork/session/internals/data_center.py
diff --git a/pyrogram/session/internals/msg_factory.py b/pyrofork/session/internals/msg_factory.py
similarity index 64%
rename from pyrogram/session/internals/msg_factory.py
rename to pyrofork/session/internals/msg_factory.py
index 837f17d0..d957ded6 100644
--- a/pyrogram/session/internals/msg_factory.py
+++ b/pyrofork/session/internals/msg_factory.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram.raw.core import Message, MsgContainer, TLObject
-from pyrogram.raw.functions import Ping
-from pyrogram.raw.types import MsgsAck, HttpWait
+from pyrofork.raw.core import Message, MsgContainer, TLObject
+from pyrofork.raw.functions import Ping
+from pyrofork.raw.types import MsgsAck, HttpWait
 from .msg_id import MsgId
 from .seq_no import SeqNo
 
diff --git a/pyrogram/session/internals/msg_id.py b/pyrofork/session/internals/msg_id.py
similarity index 70%
rename from pyrogram/session/internals/msg_id.py
rename to pyrofork/session/internals/msg_id.py
index da2e264f..307dde60 100644
--- a/pyrogram/session/internals/msg_id.py
+++ b/pyrofork/session/internals/msg_id.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 import time
diff --git a/pyrogram/session/internals/seq_no.py b/pyrofork/session/internals/seq_no.py
similarity index 70%
rename from pyrogram/session/internals/seq_no.py
rename to pyrofork/session/internals/seq_no.py
index 79501d98..33579096 100644
--- a/pyrogram/session/internals/seq_no.py
+++ b/pyrofork/session/internals/seq_no.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 
 class SeqNo:
diff --git a/pyrogram/session/session.py b/pyrofork/session/session.py
similarity index 97%
rename from pyrogram/session/session.py
rename to pyrofork/session/session.py
index cb24b273..e237affb 100644
--- a/pyrogram/session/session.py
+++ b/pyrofork/session/session.py
@@ -24,16 +24,16 @@ import os
 from hashlib import sha1
 from io import BytesIO
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.connection import Connection
-from pyrogram.crypto import mtproto
-from pyrogram.errors import (
+import pyrofork
+from pyrofork import raw
+from pyrofork.connection import Connection
+from pyrofork.crypto import mtproto
+from pyrofork.errors import (
     RPCError, InternalServerError, AuthKeyDuplicated, FloodWait, ServiceUnavailable, BadMsgNotification,
     SecurityCheckMismatch
 )
-from pyrogram.raw.all import layer
-from pyrogram.raw.core import TLObject, MsgContainer, Int, FutureSalts
+from pyrofork.raw.all import layer
+from pyrofork.raw.core import TLObject, MsgContainer, Int, FutureSalts
 from .internals import MsgId, MsgFactory
 
 log = logging.getLogger(__name__)
@@ -62,7 +62,7 @@ class Session:
 
     def __init__(
         self,
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         dc_id: int,
         auth_key: bytes,
         test_mode: bool,
@@ -187,7 +187,7 @@ class Session:
 
     async def handle_packet(self, packet):
         data = await self.loop.run_in_executor(
-            pyrogram.crypto_executor,
+            pyrofork.crypto_executor,
             mtproto.unpack,
             BytesIO(packet),
             self.session_id,
@@ -326,7 +326,7 @@ class Session:
         log.debug("Sent: %s", message)
 
         payload = await self.loop.run_in_executor(
-            pyrogram.crypto_executor,
+            pyrofork.crypto_executor,
             mtproto.pack,
             message,
             self.salt,
diff --git a/pyrogram/storage/__init__.py b/pyrofork/storage/__init__.py
similarity index 67%
rename from pyrogram/storage/__init__.py
rename to pyrofork/storage/__init__.py
index ae5a3b33..ba4320c3 100644
--- a/pyrogram/storage/__init__.py
+++ b/pyrofork/storage/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .file_storage import FileStorage
 from .memory_storage import MemoryStorage
diff --git a/pyrogram/storage/dummy_client.py b/pyrofork/storage/dummy_client.py
similarity index 100%
rename from pyrogram/storage/dummy_client.py
rename to pyrofork/storage/dummy_client.py
diff --git a/pyrogram/storage/file_storage.py b/pyrofork/storage/file_storage.py
similarity index 82%
rename from pyrogram/storage/file_storage.py
rename to pyrofork/storage/file_storage.py
index aebe9176..244866dc 100644
--- a/pyrogram/storage/file_storage.py
+++ b/pyrofork/storage/file_storage.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import logging
 import os
diff --git a/pyrogram/storage/memory_storage.py b/pyrofork/storage/memory_storage.py
similarity index 87%
rename from pyrogram/storage/memory_storage.py
rename to pyrofork/storage/memory_storage.py
index 2c01f447..2a3f1f20 100644
--- a/pyrogram/storage/memory_storage.py
+++ b/pyrofork/storage/memory_storage.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import base64
 import logging
diff --git a/pyrogram/storage/mongo_storage.py b/pyrofork/storage/mongo_storage.py
similarity index 98%
rename from pyrogram/storage/mongo_storage.py
rename to pyrofork/storage/mongo_storage.py
index 2538bf2a..c6b1b9f7 100644
--- a/pyrogram/storage/mongo_storage.py
+++ b/pyrofork/storage/mongo_storage.py
@@ -5,8 +5,8 @@ from typing import List, Tuple, Any
 
 from .dummy_client import DummyMongoClient
 from pymongo import MongoClient, UpdateOne, DeleteMany
-from pyrogram.storage.storage import Storage
-from pyrogram.storage.sqlite_storage import get_input_peer
+from pyrofork.storage.storage import Storage
+from pyrofork.storage.sqlite_storage import get_input_peer
 
 
 class MongoStorage(Storage):
diff --git a/pyrogram/storage/sqlite_storage.py b/pyrofork/storage/sqlite_storage.py
similarity index 99%
rename from pyrogram/storage/sqlite_storage.py
rename to pyrofork/storage/sqlite_storage.py
index 74d785aa..07b98e07 100644
--- a/pyrogram/storage/sqlite_storage.py
+++ b/pyrofork/storage/sqlite_storage.py
@@ -22,7 +22,7 @@ import sqlite3
 import time
 from typing import List, Tuple, Any
 
-from pyrogram import raw
+from pyrofork import raw
 from .storage import Storage
 from .. import utils
 
diff --git a/pyrogram/storage/storage.py b/pyrofork/storage/storage.py
similarity index 87%
rename from pyrogram/storage/storage.py
rename to pyrofork/storage/storage.py
index 6ec81723..1e47527c 100644
--- a/pyrogram/storage/storage.py
+++ b/pyrofork/storage/storage.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import base64
 import struct
diff --git a/pyrogram/sync.py b/pyrofork/sync.py
similarity index 87%
rename from pyrogram/sync.py
rename to pyrofork/sync.py
index 94c82a3d..c878fa16 100644
--- a/pyrogram/sync.py
+++ b/pyrofork/sync.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import asyncio
 import functools
 import inspect
 import threading
 
-from pyrogram import types
-from pyrogram.methods import Methods
-from pyrogram.methods.utilities import idle as idle_module, compose as compose_module
+from pyrofork import types
+from pyrofork.methods import Methods
+from pyrofork.methods.utilities import idle as idle_module, compose as compose_module
 
 
 def async_to_sync(obj, name):
diff --git a/pyrogram/types/__init__.py b/pyrofork/types/__init__.py
similarity index 70%
rename from pyrogram/types/__init__.py
rename to pyrofork/types/__init__.py
index bb2090f1..4bc6f469 100644
--- a/pyrogram/types/__init__.py
+++ b/pyrofork/types/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .authorization import *
 from .bots_and_keyboards import *
diff --git a/pyrogram/types/authorization/__init__.py b/pyrofork/types/authorization/__init__.py
similarity index 64%
rename from pyrogram/types/authorization/__init__.py
rename to pyrofork/types/authorization/__init__.py
index b31ad26a..62831e4b 100644
--- a/pyrogram/types/authorization/__init__.py
+++ b/pyrofork/types/authorization/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .sent_code import SentCode
 from .terms_of_service import TermsOfService
diff --git a/pyrogram/types/authorization/sent_code.py b/pyrofork/types/authorization/sent_code.py
similarity index 69%
rename from pyrogram/types/authorization/sent_code.py
rename to pyrofork/types/authorization/sent_code.py
index 2b29bb3a..8977f169 100644
--- a/pyrogram/types/authorization/sent_code.py
+++ b/pyrofork/types/authorization/sent_code.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw, enums
+from pyrofork import raw, enums
 from ..object import Object
 
 
@@ -24,18 +25,18 @@ class SentCode(Object):
     """Contains info on a sent confirmation code.
 
     Parameters:
-        type (:obj:`~pyrogram.enums.SentCodeType`):
+        type (:obj:`~pyrofork.enums.SentCodeType`):
             Type of the current sent code.
 
         phone_code_hash (``str``):
             Confirmation code identifier useful for the next authorization steps (either
-            :meth:`~pyrogram.Client.sign_in` or :meth:`~pyrogram.Client.sign_up`).
+            :meth:`~pyrofork.Client.sign_in` or :meth:`~pyrofork.Client.sign_up`).
 
-        next_type (:obj:`~pyrogram.enums.NextCodeType`, *optional*):
-            Type of the next code to be sent with :meth:`~pyrogram.Client.resend_code`.
+        next_type (:obj:`~pyrofork.enums.NextCodeType`, *optional*):
+            Type of the next code to be sent with :meth:`~pyrofork.Client.resend_code`.
 
         timeout (``int``, *optional*):
-            Delay in seconds before calling :meth:`~pyrogram.Client.resend_code`.
+            Delay in seconds before calling :meth:`~pyrofork.Client.resend_code`.
     """
 
     def __init__(
diff --git a/pyrogram/types/authorization/terms_of_service.py b/pyrofork/types/authorization/terms_of_service.py
similarity index 73%
rename from pyrogram/types/authorization/terms_of_service.py
rename to pyrofork/types/authorization/terms_of_service.py
index 3c5ffa6c..4a59f2ed 100644
--- a/pyrogram/types/authorization/terms_of_service.py
+++ b/pyrofork/types/authorization/terms_of_service.py
@@ -1,30 +1,31 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-from pyrogram import raw
-from pyrogram import types
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
 class TermsOfService(Object):
-    """Telegram's Terms of Service returned by :meth:`~pyrogram.Client.sign_in`.
+    """Telegram's Terms of Service returned by :meth:`~pyrofork.Client.sign_in`.
 
     Parameters:
         id (``str``):
@@ -33,7 +34,7 @@ class TermsOfService(Object):
         text (``str``):
             Terms of Service text.
 
-        entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        entities (List of :obj:`~pyrofork.types.MessageEntity`):
             Special entities like URLs that appear in the text.
     """
 
diff --git a/pyrogram/types/bots_and_keyboards/__init__.py b/pyrofork/types/bots_and_keyboards/__init__.py
similarity index 88%
rename from pyrogram/types/bots_and_keyboards/__init__.py
rename to pyrofork/types/bots_and_keyboards/__init__.py
index a689f97c..eefcf779 100644
--- a/pyrogram/types/bots_and_keyboards/__init__.py
+++ b/pyrofork/types/bots_and_keyboards/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .bot_command import BotCommand
 from .bot_command_scope import BotCommandScope
diff --git a/pyrogram/types/bots_and_keyboards/bot_command.py b/pyrofork/types/bots_and_keyboards/bot_command.py
similarity index 78%
rename from pyrogram/types/bots_and_keyboards/bot_command.py
rename to pyrofork/types/bots_and_keyboards/bot_command.py
index 88f459dc..d1be78a4 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 
 from ..object import Object
 
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope.py b/pyrofork/types/bots_and_keyboards/bot_command_scope.py
similarity index 69%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope.py
index 2db638e9..4ae1e200 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -26,13 +27,13 @@ class BotCommandScope(Object):
 
     Currently, the following 7 scopes are supported:
 
-    - :obj:`~pyrogram.types.BotCommandScopeDefault`
-    - :obj:`~pyrogram.types.BotCommandScopeAllPrivateChats`
-    - :obj:`~pyrogram.types.BotCommandScopeAllGroupChats`
-    - :obj:`~pyrogram.types.BotCommandScopeAllChatAdministrators`
-    - :obj:`~pyrogram.types.BotCommandScopeChat`
-    - :obj:`~pyrogram.types.BotCommandScopeChatAdministrators`
-    - :obj:`~pyrogram.types.BotCommandScopeChatMember`
+    - :obj:`~pyrofork.types.BotCommandScopeDefault`
+    - :obj:`~pyrofork.types.BotCommandScopeAllPrivateChats`
+    - :obj:`~pyrofork.types.BotCommandScopeAllGroupChats`
+    - :obj:`~pyrofork.types.BotCommandScopeAllChatAdministrators`
+    - :obj:`~pyrofork.types.BotCommandScopeChat`
+    - :obj:`~pyrofork.types.BotCommandScopeChatAdministrators`
+    - :obj:`~pyrofork.types.BotCommandScopeChatMember`
 
     **Determining list of commands**
 
@@ -69,5 +70,5 @@ class BotCommandScope(Object):
 
         self.type = type
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         raise NotImplementedError
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py
similarity index 65%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py
index 0cc6339c..9e1671ba 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_chat_administrators.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -28,5 +29,5 @@ class BotCommandScopeAllChatAdministrators(BotCommandScope):
     def __init__(self):
         super().__init__("all_chat_administrators")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopeChatAdmins()
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_group_chats.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_group_chats.py
similarity index 65%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_all_group_chats.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_all_group_chats.py
index 5f8457f6..51142fcf 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_group_chats.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_group_chats.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -28,5 +29,5 @@ class BotCommandScopeAllGroupChats(BotCommandScope):
     def __init__(self):
         super().__init__("all_group_chats")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopeChats()
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_private_chats.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_private_chats.py
similarity index 64%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_all_private_chats.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_all_private_chats.py
index 14b80f0d..c9b4993c 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_all_private_chats.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_all_private_chats.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -28,5 +29,5 @@ class BotCommandScopeAllPrivateChats(BotCommandScope):
     def __init__(self):
         super().__init__("all_private_chats")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopeUsers()
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat.py
similarity index 71%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_chat.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_chat.py
index 28912383..33c25768 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -37,7 +38,7 @@ class BotCommandScopeChat(BotCommandScope):
 
         self.chat_id = chat_id
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopePeer(
             peer=await client.resolve_peer(self.chat_id)
         )
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat_administrators.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat_administrators.py
similarity index 72%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_chat_administrators.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_chat_administrators.py
index 6f42a29f..26f1804e 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat_administrators.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat_administrators.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -37,7 +38,7 @@ class BotCommandScopeChatAdministrators(BotCommandScope):
 
         self.chat_id = chat_id
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopePeerAdmins(
             peer=await client.resolve_peer(self.chat_id)
         )
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat_member.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat_member.py
similarity index 75%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_chat_member.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_chat_member.py
index 8d91df14..34855df5 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_chat_member.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_chat_member.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -41,7 +42,7 @@ class BotCommandScopeChatMember(BotCommandScope):
         self.chat_id = chat_id
         self.user_id = user_id
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopePeerUser(
             peer=await client.resolve_peer(self.chat_id),
             user_id=await client.resolve_peer(self.user_id)
diff --git a/pyrogram/types/bots_and_keyboards/bot_command_scope_default.py b/pyrofork/types/bots_and_keyboards/bot_command_scope_default.py
similarity index 66%
rename from pyrogram/types/bots_and_keyboards/bot_command_scope_default.py
rename to pyrofork/types/bots_and_keyboards/bot_command_scope_default.py
index d11ab012..40cefc08 100644
--- a/pyrogram/types/bots_and_keyboards/bot_command_scope_default.py
+++ b/pyrofork/types/bots_and_keyboards/bot_command_scope_default.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .bot_command_scope import BotCommandScope
 
 
@@ -29,5 +30,5 @@ class BotCommandScopeDefault(BotCommandScope):
     def __init__(self):
         super().__init__("default")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotCommandScope":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotCommandScope":
         return raw.types.BotCommandScopeDefault()
diff --git a/pyrogram/types/bots_and_keyboards/bot_info.py b/pyrofork/types/bots_and_keyboards/bot_info.py
similarity index 98%
rename from pyrogram/types/bots_and_keyboards/bot_info.py
rename to pyrofork/types/bots_and_keyboards/bot_info.py
index c88bc92c..3a833b59 100644
--- a/pyrogram/types/bots_and_keyboards/bot_info.py
+++ b/pyrofork/types/bots_and_keyboards/bot_info.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 
 from ..object import Object
 
diff --git a/pyrogram/types/bots_and_keyboards/callback_game.py b/pyrofork/types/bots_and_keyboards/callback_game.py
similarity index 67%
rename from pyrogram/types/bots_and_keyboards/callback_game.py
rename to pyrofork/types/bots_and_keyboards/callback_game.py
index 3bd89270..67b098e3 100644
--- a/pyrogram/types/bots_and_keyboards/callback_game.py
+++ b/pyrofork/types/bots_and_keyboards/callback_game.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from ..object import Object
 
diff --git a/pyrogram/types/bots_and_keyboards/callback_query.py b/pyrofork/types/bots_and_keyboards/callback_query.py
similarity index 86%
rename from pyrogram/types/bots_and_keyboards/callback_query.py
rename to pyrofork/types/bots_and_keyboards/callback_query.py
index efdd14ca..ff66c249 100644
--- a/pyrogram/types/bots_and_keyboards/callback_query.py
+++ b/pyrofork/types/bots_and_keyboards/callback_query.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union, List, Match, Optional
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 from ... import utils
@@ -37,14 +38,14 @@ class CallbackQuery(Object, Update):
         id (``str``):
             Unique identifier for this query.
 
-        from_user (:obj:`~pyrogram.types.User`):
+        from_user (:obj:`~pyrofork.types.User`):
             Sender.
 
         chat_instance (``str``, *optional*):
             Global identifier, uniquely corresponding to the chat to which the message with the callback button was
             sent. Useful for high scores in games.
 
-        message (:obj:`~pyrogram.types.Message`, *optional*):
+        message (:obj:`~pyrofork.types.Message`, *optional*):
             Message with the callback button that originated the query. Note that message content and message date will
             not be available if the message is too old.
 
@@ -59,13 +60,13 @@ class CallbackQuery(Object, Update):
 
         matches (List of regex Matches, *optional*):
             A list containing all `Match Objects `_ that match
-            the data of this callback query. Only applicable when using :obj:`Filters.regex `.
+            the data of this callback query. Only applicable when using :obj:`Filters.regex `.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: str,
         from_user: "types.User",
         chat_instance: str,
@@ -87,7 +88,7 @@ class CallbackQuery(Object, Update):
         self.matches = matches
 
     @staticmethod
-    async def _parse(client: "pyrogram.Client", callback_query, users) -> "CallbackQuery":
+    async def _parse(client: "pyrofork.Client", callback_query, users) -> "CallbackQuery":
         message = None
         inline_message_id = None
 
@@ -121,7 +122,7 @@ class CallbackQuery(Object, Update):
         )
 
     async def answer(self, text: str = None, show_alert: bool = None, url: str = None, cache_time: int = 0):
-        """Bound method *answer* of :obj:`~pyrogram.types.CallbackQuery`.
+        """Bound method *answer* of :obj:`~pyrofork.types.CallbackQuery`.
 
         Use this method as a shortcut for:
 
@@ -173,24 +174,24 @@ class CallbackQuery(Object, Update):
     ) -> Union["types.Message", bool]:
         """Edit the text of messages attached to callback queries.
 
-        Bound method *edit_message_text* of :obj:`~pyrogram.types.CallbackQuery`.
+        Bound method *edit_message_text* of :obj:`~pyrofork.types.CallbackQuery`.
 
         Parameters:
             text (``str``):
                 New text of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
             disable_web_page_preview (``bool``, *optional*):
                 Disables link previews for links in this message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
             message is returned, otherwise True is returned (message sent via the bot, as inline query result).
 
         Raises:
@@ -222,21 +223,21 @@ class CallbackQuery(Object, Update):
     ) -> Union["types.Message", bool]:
         """Edit the caption of media messages attached to callback queries.
 
-        Bound method *edit_message_caption* of :obj:`~pyrogram.types.CallbackQuery`.
+        Bound method *edit_message_caption* of :obj:`~pyrofork.types.CallbackQuery`.
 
         Parameters:
             caption (``str``):
                 New caption of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
             message is returned, otherwise True is returned (message sent via the bot, as inline query result).
 
         Raises:
@@ -251,17 +252,17 @@ class CallbackQuery(Object, Update):
     ) -> Union["types.Message", bool]:
         """Edit animation, audio, document, photo or video messages attached to callback queries.
 
-        Bound method *edit_message_media* of :obj:`~pyrogram.types.CallbackQuery`.
+        Bound method *edit_message_media* of :obj:`~pyrofork.types.CallbackQuery`.
 
         Parameters:
-            media (:obj:`~pyrogram.types.InputMedia`):
+            media (:obj:`~pyrofork.types.InputMedia`):
                 One of the InputMedia objects describing an animation, audio, document, photo or video.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
             message is returned, otherwise True is returned (message sent via the bot, as inline query result).
 
         Raises:
@@ -287,14 +288,14 @@ class CallbackQuery(Object, Update):
     ) -> Union["types.Message", bool]:
         """Edit only the reply markup of messages attached to callback queries.
 
-        Bound method *edit_message_reply_markup* of :obj:`~pyrogram.types.CallbackQuery`.
+        Bound method *edit_message_reply_markup* of :obj:`~pyrofork.types.CallbackQuery`.
 
         Parameters:
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, if the edited message was sent by the bot, the edited
             message is returned, otherwise True is returned (message sent via the bot, as inline query result).
 
         Raises:
diff --git a/pyrogram/types/bots_and_keyboards/force_reply.py b/pyrofork/types/bots_and_keyboards/force_reply.py
similarity index 81%
rename from pyrogram/types/bots_and_keyboards/force_reply.py
rename to pyrofork/types/bots_and_keyboards/force_reply.py
index 4cb137d8..6f702446 100644
--- a/pyrogram/types/bots_and_keyboards/force_reply.py
+++ b/pyrofork/types/bots_and_keyboards/force_reply.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 
 from ..object import Object
 
@@ -58,7 +59,7 @@ class ForceReply(Object):
             placeholder=b.placeholder
         )
 
-    async def write(self, _: "pyrogram.Client"):
+    async def write(self, _: "pyrofork.Client"):
         return raw.types.ReplyKeyboardForceReply(
             single_use=True,
             selective=self.selective or None,
diff --git a/pyrogram/types/bots_and_keyboards/game_high_score.py b/pyrofork/types/bots_and_keyboards/game_high_score.py
similarity index 77%
rename from pyrogram/types/bots_and_keyboards/game_high_score.py
rename to pyrofork/types/bots_and_keyboards/game_high_score.py
index 295b83fb..3874f8e7 100644
--- a/pyrogram/types/bots_and_keyboards/game_high_score.py
+++ b/pyrofork/types/bots_and_keyboards/game_high_score.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 from ..object import Object
 
 
@@ -26,7 +27,7 @@ class GameHighScore(Object):
     """One row of the high scores table for a game.
 
     Parameters:
-        user (:obj:`~pyrogram.types.User`):
+        user (:obj:`~pyrofork.types.User`):
             User.
 
         score (``int``):
@@ -39,7 +40,7 @@ class GameHighScore(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         user: "types.User",
         score: int,
         position: int = None
diff --git a/pyrogram/types/bots_and_keyboards/inline_keyboard_button.py b/pyrofork/types/bots_and_keyboards/inline_keyboard_button.py
similarity index 90%
rename from pyrogram/types/bots_and_keyboards/inline_keyboard_button.py
rename to pyrofork/types/bots_and_keyboards/inline_keyboard_button.py
index a1d8a7ad..6e30822b 100644
--- a/pyrogram/types/bots_and_keyboards/inline_keyboard_button.py
+++ b/pyrofork/types/bots_and_keyboards/inline_keyboard_button.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -39,13 +40,13 @@ class InlineKeyboardButton(Object):
         url (``str``, *optional*):
             HTTP url to be opened when button is pressed.
 
-        web_app (:obj:`~pyrogram.types.WebAppInfo`, *optional*):
+        web_app (:obj:`~pyrofork.types.WebAppInfo`, *optional*):
             Description of the `Web App `_ that will be launched when the user
             presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the
-            method :meth:`~pyrogram.Client.answer_web_app_query`. Available only in private chats between a user and the
+            method :meth:`~pyrofork.Client.answer_web_app_query`. Available only in private chats between a user and the
             bot.
 
-        login_url (:obj:`~pyrogram.types.LoginUrl`, *optional*):
+        login_url (:obj:`~pyrofork.types.LoginUrl`, *optional*):
              An HTTP URL used to automatically authorize the user. Can be used as a replacement for
              the `Telegram Login Widget `_.
 
@@ -66,7 +67,7 @@ class InlineKeyboardButton(Object):
             quick way for the user to open your bot in inline mode in the same chat – good for selecting something
             from multiple options.
 
-        callback_game (:obj:`~pyrogram.types.CallbackGame`, *optional*):
+        callback_game (:obj:`~pyrofork.types.CallbackGame`, *optional*):
             Description of the game that will be launched when the user presses the button.
             **NOTE**: This type of button **must** always be the first button in the first row.
     """
@@ -155,7 +156,7 @@ class InlineKeyboardButton(Object):
                 )
             )
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         if self.callback_data is not None:
             # Telegram only wants bytes, but we are allowed to pass strings too, for convenience.
             data = bytes(self.callback_data, "utf-8") if isinstance(self.callback_data, str) else self.callback_data
diff --git a/pyrogram/types/bots_and_keyboards/inline_keyboard_markup.py b/pyrofork/types/bots_and_keyboards/inline_keyboard_markup.py
similarity index 78%
rename from pyrogram/types/bots_and_keyboards/inline_keyboard_markup.py
rename to pyrofork/types/bots_and_keyboards/inline_keyboard_markup.py
index e0fd3230..4efeeb17 100644
--- a/pyrogram/types/bots_and_keyboards/inline_keyboard_markup.py
+++ b/pyrofork/types/bots_and_keyboards/inline_keyboard_markup.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -28,7 +29,7 @@ class InlineKeyboardMarkup(Object):
     """An inline keyboard that appears right next to the message it belongs to.
 
     Parameters:
-        inline_keyboard (List of List of :obj:`~pyrogram.types.InlineKeyboardButton`):
+        inline_keyboard (List of List of :obj:`~pyrofork.types.InlineKeyboardButton`):
             List of button rows, each represented by a List of InlineKeyboardButton objects.
     """
 
@@ -53,7 +54,7 @@ class InlineKeyboardMarkup(Object):
             inline_keyboard=inline_keyboard
         )
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         rows = []
 
         for r in self.inline_keyboard:
diff --git a/pyrogram/types/bots_and_keyboards/keyboard_button.py b/pyrofork/types/bots_and_keyboards/keyboard_button.py
similarity index 91%
rename from pyrogram/types/bots_and_keyboards/keyboard_button.py
rename to pyrofork/types/bots_and_keyboards/keyboard_button.py
index 5c144e21..c21a813b 100644
--- a/pyrogram/types/bots_and_keyboards/keyboard_button.py
+++ b/pyrofork/types/bots_and_keyboards/keyboard_button.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 from ..object import Object
 from typing import Union
 
@@ -38,15 +39,15 @@ class KeyboardButton(Object):
             If True, the user's current location will be sent when the button is pressed.
             Available in private chats only.
 
-        request_chat (:obj:`~pyrogram.types.RequestPeerTypeChannel` | :obj:`~pyrogram.types.RequestPeerTypeChat`, *optional*):
+        request_chat (:obj:`~pyrofork.types.RequestPeerTypeChannel` | :obj:`~pyrofork.types.RequestPeerTypeChat`, *optional*):
             If specified, defines the criteria used to request a suitable chats/channels.
             The identifier of the selected chats will be shared with the bot when the corresponding button is pressed.
 
-        request_user (:obj:`~pyrogram.types.RequestPeerTypeUser`, *optional*):
+        request_user (:obj:`~pyrofork.types.RequestPeerTypeUser`, *optional*):
             If specified, defines the criteria used to request a suitable users.
             The identifier of the selected users will be shared with the bot when the corresponding button is pressed.
 
-        web_app (:obj:`~pyrogram.types.WebAppInfo`, *optional*):
+        web_app (:obj:`~pyrofork.types.WebAppInfo`, *optional*):
             If specified, the described `Web App `_ will be launched when the
             button is pressed. The Web App will be able to send a “web_app_data” service message. Available in private
             chats only.
diff --git a/pyrogram/types/bots_and_keyboards/login_url.py b/pyrofork/types/bots_and_keyboards/login_url.py
similarity index 89%
rename from pyrogram/types/bots_and_keyboards/login_url.py
rename to pyrofork/types/bots_and_keyboards/login_url.py
index a0af5a1a..0bcd18be 100644
--- a/pyrogram/types/bots_and_keyboards/login_url.py
+++ b/pyrofork/types/bots_and_keyboards/login_url.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 
 from ..object import Object
 
diff --git a/pyrogram/types/bots_and_keyboards/menu_button.py b/pyrofork/types/bots_and_keyboards/menu_button.py
similarity index 60%
rename from pyrogram/types/bots_and_keyboards/menu_button.py
rename to pyrofork/types/bots_and_keyboards/menu_button.py
index e61e7baa..1c0f6260 100644
--- a/pyrogram/types/bots_and_keyboards/menu_button.py
+++ b/pyrofork/types/bots_and_keyboards/menu_button.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -26,11 +27,11 @@ class MenuButton(Object):
 
     It should be one of:
 
-    - :obj:`~pyrogram.types.MenuButtonCommands`
-    - :obj:`~pyrogram.types.MenuButtonWebApp`
-    - :obj:`~pyrogram.types.MenuButtonDefault`
+    - :obj:`~pyrofork.types.MenuButtonCommands`
+    - :obj:`~pyrofork.types.MenuButtonWebApp`
+    - :obj:`~pyrofork.types.MenuButtonDefault`
 
-    If a menu button other than :obj:`~pyrogram.types.MenuButtonDefault` is set for a private chat, then it is applied
+    If a menu button other than :obj:`~pyrofork.types.MenuButtonDefault` is set for a private chat, then it is applied
     in the chat. Otherwise the default menu button is applied. By default, the menu button opens the list of bot
     commands.
     """
@@ -40,5 +41,5 @@ class MenuButton(Object):
 
         self.type = type
 
-    async def write(self, client: "pyrogram.Client") -> "raw.base.BotMenuButton":
+    async def write(self, client: "pyrofork.Client") -> "raw.base.BotMenuButton":
         raise NotImplementedError
diff --git a/pyrogram/types/bots_and_keyboards/menu_button_commands.py b/pyrofork/types/bots_and_keyboards/menu_button_commands.py
similarity index 63%
rename from pyrogram/types/bots_and_keyboards/menu_button_commands.py
rename to pyrofork/types/bots_and_keyboards/menu_button_commands.py
index b2ef77c9..f0e7eb17 100644
--- a/pyrogram/types/bots_and_keyboards/menu_button_commands.py
+++ b/pyrofork/types/bots_and_keyboards/menu_button_commands.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .menu_button import MenuButton
 
 
@@ -28,5 +29,5 @@ class MenuButtonCommands(MenuButton):
     def __init__(self):
         super().__init__("commands")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.types.BotMenuButtonCommands":
+    async def write(self, client: "pyrofork.Client") -> "raw.types.BotMenuButtonCommands":
         return raw.types.BotMenuButtonCommands()
diff --git a/pyrogram/types/bots_and_keyboards/menu_button_default.py b/pyrofork/types/bots_and_keyboards/menu_button_default.py
similarity index 63%
rename from pyrogram/types/bots_and_keyboards/menu_button_default.py
rename to pyrofork/types/bots_and_keyboards/menu_button_default.py
index a00e6763..44d59ab3 100644
--- a/pyrogram/types/bots_and_keyboards/menu_button_default.py
+++ b/pyrofork/types/bots_and_keyboards/menu_button_default.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from .menu_button import MenuButton
 
 
@@ -28,5 +29,5 @@ class MenuButtonDefault(MenuButton):
     def __init__(self):
         super().__init__("default")
 
-    async def write(self, client: "pyrogram.Client") -> "raw.types.BotMenuButtonDefault":
+    async def write(self, client: "pyrofork.Client") -> "raw.types.BotMenuButtonDefault":
         return raw.types.BotMenuButtonDefault()
diff --git a/pyrogram/types/bots_and_keyboards/menu_button_web_app.py b/pyrofork/types/bots_and_keyboards/menu_button_web_app.py
similarity index 68%
rename from pyrogram/types/bots_and_keyboards/menu_button_web_app.py
rename to pyrofork/types/bots_and_keyboards/menu_button_web_app.py
index 109088bb..0098dc73 100644
--- a/pyrogram/types/bots_and_keyboards/menu_button_web_app.py
+++ b/pyrofork/types/bots_and_keyboards/menu_button_web_app.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from .menu_button import MenuButton
 
 
@@ -28,10 +29,10 @@ class MenuButtonWebApp(MenuButton):
         text (``str``):
             Text on the button
 
-        web_app (:obj:`~pyrogram.types.WebAppInfo`):
+        web_app (:obj:`~pyrofork.types.WebAppInfo`):
             Description of the Web App that will be launched when the user presses the button.
             The Web App will be able to send an arbitrary message on behalf of the user using the method
-            :meth:`~pyrogram.Client.answer_web_app_query`.
+            :meth:`~pyrofork.Client.answer_web_app_query`.
     """
 
     def __init__(
@@ -44,7 +45,7 @@ class MenuButtonWebApp(MenuButton):
         self.text = text
         self.web_app = web_app
 
-    async def write(self, client: "pyrogram.Client") -> "raw.types.BotMenuButton":
+    async def write(self, client: "pyrofork.Client") -> "raw.types.BotMenuButton":
         return raw.types.BotMenuButton(
             text=self.text,
             url=self.web_app.url
diff --git a/pyrogram/types/bots_and_keyboards/reply_keyboard_markup.py b/pyrofork/types/bots_and_keyboards/reply_keyboard_markup.py
similarity index 88%
rename from pyrogram/types/bots_and_keyboards/reply_keyboard_markup.py
rename to pyrofork/types/bots_and_keyboards/reply_keyboard_markup.py
index 2949c3e2..67a33fda 100644
--- a/pyrogram/types/bots_and_keyboards/reply_keyboard_markup.py
+++ b/pyrofork/types/bots_and_keyboards/reply_keyboard_markup.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -28,7 +29,7 @@ class ReplyKeyboardMarkup(Object):
     """A custom keyboard with reply options.
 
     Parameters:
-        keyboard (List of List of :obj:`~pyrogram.types.KeyboardButton`):
+        keyboard (List of List of :obj:`~pyrofork.types.KeyboardButton`):
             List of button rows, each represented by a List of KeyboardButton objects.
 
         is_persistent (``bool``, *optional*):
@@ -95,7 +96,7 @@ class ReplyKeyboardMarkup(Object):
             placeholder=kb.placeholder
         )
 
-    async def write(self, _: "pyrogram.Client"):
+    async def write(self, _: "pyrofork.Client"):
         return raw.types.ReplyKeyboardMarkup(
             rows=[raw.types.KeyboardButtonRow(
                 buttons=[
diff --git a/pyrogram/types/bots_and_keyboards/reply_keyboard_remove.py b/pyrofork/types/bots_and_keyboards/reply_keyboard_remove.py
similarity index 81%
rename from pyrogram/types/bots_and_keyboards/reply_keyboard_remove.py
rename to pyrofork/types/bots_and_keyboards/reply_keyboard_remove.py
index 479efe90..9d13880c 100644
--- a/pyrogram/types/bots_and_keyboards/reply_keyboard_remove.py
+++ b/pyrofork/types/bots_and_keyboards/reply_keyboard_remove.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -52,7 +53,7 @@ class ReplyKeyboardRemove(Object):
             selective=b.selective
         )
 
-    async def write(self, _: "pyrogram.Client"):
+    async def write(self, _: "pyrofork.Client"):
         return raw.types.ReplyKeyboardHide(
             selective=self.selective or None
         )
diff --git a/pyrogram/types/bots_and_keyboards/request_peer_type_channel.py b/pyrofork/types/bots_and_keyboards/request_peer_type_channel.py
similarity index 100%
rename from pyrogram/types/bots_and_keyboards/request_peer_type_channel.py
rename to pyrofork/types/bots_and_keyboards/request_peer_type_channel.py
diff --git a/pyrogram/types/bots_and_keyboards/request_peer_type_chat.py b/pyrofork/types/bots_and_keyboards/request_peer_type_chat.py
similarity index 100%
rename from pyrogram/types/bots_and_keyboards/request_peer_type_chat.py
rename to pyrofork/types/bots_and_keyboards/request_peer_type_chat.py
diff --git a/pyrogram/types/bots_and_keyboards/request_peer_type_user.py b/pyrofork/types/bots_and_keyboards/request_peer_type_user.py
similarity index 100%
rename from pyrogram/types/bots_and_keyboards/request_peer_type_user.py
rename to pyrofork/types/bots_and_keyboards/request_peer_type_user.py
diff --git a/pyrogram/types/bots_and_keyboards/sent_web_app_message.py b/pyrofork/types/bots_and_keyboards/sent_web_app_message.py
similarity index 76%
rename from pyrogram/types/bots_and_keyboards/sent_web_app_message.py
rename to pyrofork/types/bots_and_keyboards/sent_web_app_message.py
index 8b1df197..bc72767e 100644
--- a/pyrogram/types/bots_and_keyboards/sent_web_app_message.py
+++ b/pyrofork/types/bots_and_keyboards/sent_web_app_message.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw, utils
+from pyrofork import raw, utils
 from ..object import Object
 
 
diff --git a/pyrogram/types/bots_and_keyboards/web_app_info.py b/pyrofork/types/bots_and_keyboards/web_app_info.py
similarity index 73%
rename from pyrogram/types/bots_and_keyboards/web_app_info.py
rename to pyrofork/types/bots_and_keyboards/web_app_info.py
index 1dbb0a78..b99a080a 100644
--- a/pyrogram/types/bots_and_keyboards/web_app_info.py
+++ b/pyrofork/types/bots_and_keyboards/web_app_info.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from ..object import Object
 
diff --git a/pyrogram/types/inline_mode/__init__.py b/pyrofork/types/inline_mode/__init__.py
similarity index 87%
rename from pyrogram/types/inline_mode/__init__.py
rename to pyrofork/types/inline_mode/__init__.py
index f7323abf..c0542678 100644
--- a/pyrogram/types/inline_mode/__init__.py
+++ b/pyrofork/types/inline_mode/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .chosen_inline_result import ChosenInlineResult
 from .inline_query import InlineQuery
diff --git a/pyrogram/types/inline_mode/chosen_inline_result.py b/pyrofork/types/inline_mode/chosen_inline_result.py
similarity index 84%
rename from pyrogram/types/inline_mode/chosen_inline_result.py
rename to pyrofork/types/inline_mode/chosen_inline_result.py
index 623d7379..1ae46eda 100644
--- a/pyrogram/types/inline_mode/chosen_inline_result.py
+++ b/pyrofork/types/inline_mode/chosen_inline_result.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from base64 import b64encode
 from struct import pack
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 
@@ -38,13 +39,13 @@ class ChosenInlineResult(Object, Update):
         result_id (``str``):
             The unique identifier for the result that was chosen.
 
-        from_user (:obj:`~pyrogram.types.User`):
+        from_user (:obj:`~pyrofork.types.User`):
             The user that chose the result.
 
         query (``str``):
             The query that was used to obtain the result.
 
-        location (:obj:`~pyrogram.types.Location`, *optional*):
+        location (:obj:`~pyrofork.types.Location`, *optional*):
             Sender location, only for bots that require user location.
 
         inline_message_id (``str``, *optional*):
@@ -56,7 +57,7 @@ class ChosenInlineResult(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         result_id: str,
         from_user: "types.User",
         query: str,
diff --git a/pyrogram/types/inline_mode/inline_query.py b/pyrofork/types/inline_mode/inline_query.py
similarity index 88%
rename from pyrogram/types/inline_mode/inline_query.py
rename to pyrofork/types/inline_mode/inline_query.py
index a5f0422e..77b88043 100644
--- a/pyrogram/types/inline_mode/inline_query.py
+++ b/pyrofork/types/inline_mode/inline_query.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Match
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types, enums
+import pyrofork
+from pyrofork import raw
+from pyrofork import types, enums
 from ..object import Object
 from ..update import Update
 
@@ -34,7 +35,7 @@ class InlineQuery(Object, Update):
         id (``str``):
             Unique identifier for this query.
 
-        from_user (:obj:`~pyrogram.types.User`):
+        from_user (:obj:`~pyrofork.types.User`):
             Sender.
 
         query (``str``):
@@ -43,21 +44,21 @@ class InlineQuery(Object, Update):
         offset (``str``):
             Offset of the results to be returned, can be controlled by the bot.
 
-        chat_type (:obj:`~pyrogram.enums.ChatType`, *optional*):
+        chat_type (:obj:`~pyrofork.enums.ChatType`, *optional*):
             Type of the chat, from which the inline query was sent.
 
-        location (:obj:`~pyrogram.types.Location`. *optional*):
+        location (:obj:`~pyrofork.types.Location`. *optional*):
             Sender location, only for bots that request user location.
 
         matches (List of regex Matches, *optional*):
             A list containing all `Match Objects `_ that match
-            the query of this inline query. Only applicable when using :obj:`Filters.regex `.
+            the query of this inline query. Only applicable when using :obj:`Filters.regex `.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: str,
         from_user: "types.User",
         query: str,
@@ -116,7 +117,7 @@ class InlineQuery(Object, Update):
         switch_pm_text: str = "",
         switch_pm_parameter: str = ""
     ):
-        """Bound method *answer* of :obj:`~pyrogram.types.InlineQuery`.
+        """Bound method *answer* of :obj:`~pyrofork.types.InlineQuery`.
 
         Use this method as a shortcut for:
 
@@ -133,7 +134,7 @@ class InlineQuery(Object, Update):
                 await inline_query.answer([...])
 
         Parameters:
-            results (List of :obj:`~pyrogram.types.InlineQueryResult`):
+            results (List of :obj:`~pyrofork.types.InlineQueryResult`):
                 A list of results for the inline query.
 
             cache_time (``int``, *optional*):
diff --git a/pyrofork/types/inline_mode/inline_query_result.py b/pyrofork/types/inline_mode/inline_query_result.py
new file mode 100644
index 00000000..914b3636
--- /dev/null
+++ b/pyrofork/types/inline_mode/inline_query_result.py
@@ -0,0 +1,64 @@
+#  Pyrofork - Telegram MTProto API Client Library for Python
+#  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
+#
+#  This file is part of Pyrofork.
+#
+#  Pyrofork is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU Lesser General Public License as published
+#  by the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  Pyrofork is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with Pyrofork.  If not, see .
+
+from uuid import uuid4
+
+import pyrofork
+from pyrofork import types
+from ..object import Object
+
+
+class InlineQueryResult(Object):
+    """One result of an inline query.
+
+    - :obj:`~pyrofork.types.InlineQueryResultCachedAudio`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedDocument`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedAnimation`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedPhoto`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedSticker`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedVideo`
+    - :obj:`~pyrofork.types.InlineQueryResultCachedVoice`
+    - :obj:`~pyrofork.types.InlineQueryResultArticle`
+    - :obj:`~pyrofork.types.InlineQueryResultAudio`
+    - :obj:`~pyrofork.types.InlineQueryResultContact`
+    - :obj:`~pyrofork.types.InlineQueryResultDocument`
+    - :obj:`~pyrofork.types.InlineQueryResultAnimation`
+    - :obj:`~pyrofork.types.InlineQueryResultLocation`
+    - :obj:`~pyrofork.types.InlineQueryResultPhoto`
+    - :obj:`~pyrofork.types.InlineQueryResultVenue`
+    - :obj:`~pyrofork.types.InlineQueryResultVideo`
+    - :obj:`~pyrofork.types.InlineQueryResultVoice`
+    """
+
+    def __init__(
+        self,
+        type: str,
+        id: str,
+        input_message_content: "types.InputMessageContent",
+        reply_markup: "types.InlineKeyboardMarkup"
+    ):
+        super().__init__()
+
+        self.type = type
+        self.id = str(uuid4()) if id is None else str(id)
+        self.input_message_content = input_message_content
+        self.reply_markup = reply_markup
+
+    async def write(self, client: "pyrofork.Client"):
+        pass
diff --git a/pyrogram/types/inline_mode/inline_query_result_animation.py b/pyrofork/types/inline_mode/inline_query_result_animation.py
similarity index 93%
rename from pyrogram/types/inline_mode/inline_query_result_animation.py
rename to pyrofork/types/inline_mode/inline_query_result_animation.py
index 58ec72a5..12644bd9 100644
--- a/pyrogram/types/inline_mode/inline_query_result_animation.py
+++ b/pyrofork/types/inline_mode/inline_query_result_animation.py
@@ -19,8 +19,8 @@
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -63,17 +63,17 @@ class InlineQueryResultAnimation(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the animation to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -110,7 +110,7 @@ class InlineQueryResultAnimation(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         animation = raw.types.InputWebDocument(
             url=self.animation_url,
             size=0,
diff --git a/pyrogram/types/inline_mode/inline_query_result_article.py b/pyrofork/types/inline_mode/inline_query_result_article.py
similarity index 81%
rename from pyrogram/types/inline_mode/inline_query_result_article.py
rename to pyrofork/types/inline_mode/inline_query_result_article.py
index 096273f1..dc43c2bf 100644
--- a/pyrogram/types/inline_mode/inline_query_result_article.py
+++ b/pyrofork/types/inline_mode/inline_query_result_article.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 
 from .inline_query_result import InlineQueryResult
 
@@ -30,7 +31,7 @@ class InlineQueryResultArticle(InlineQueryResult):
         title (``str``):
             Title for the result.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent.
 
         id (``str``, *optional*):
@@ -43,7 +44,7 @@ class InlineQueryResultArticle(InlineQueryResult):
         description (``str``, *optional*):
             Short description of the result.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
 
         thumb_url (``str``, *optional*):
@@ -77,7 +78,7 @@ class InlineQueryResultArticle(InlineQueryResult):
         self.thumb_width = thumb_width
         self.thumb_height = thumb_height
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         return raw.types.InputBotInlineResult(
             id=self.id,
             type=self.type,
diff --git a/pyrogram/types/inline_mode/inline_query_result_audio.py b/pyrofork/types/inline_mode/inline_query_result_audio.py
similarity index 85%
rename from pyrogram/types/inline_mode/inline_query_result_audio.py
rename to pyrofork/types/inline_mode/inline_query_result_audio.py
index 03e7b6da..bc0af3c4 100644
--- a/pyrogram/types/inline_mode/inline_query_result_audio.py
+++ b/pyrofork/types/inline_mode/inline_query_result_audio.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Optional
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -50,20 +51,20 @@ class InlineQueryResultAudio(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the audio to be sent, 0-1024 characters.
             
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         description (``str``, *optional*):
             Short description of the result.
             
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
             
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`, *optional*):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`, *optional*):
             Content of the message to be sent instead of the audio.
 
         thumb_url (``str``, *optional*):
@@ -97,7 +98,7 @@ class InlineQueryResultAudio(InlineQueryResult):
         self.description = description
         self.thumb_url = thumb_url
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         audio = raw.types.InputWebDocument(
             url=self.audio_url,
             size=0,
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_animation.py b/pyrofork/types/inline_mode/inline_query_result_cached_animation.py
similarity index 83%
rename from pyrogram/types/inline_mode/inline_query_result_cached_animation.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_animation.py
index 63e58ca0..12ea566e 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_animation.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_animation.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -45,17 +46,17 @@ class InlineQueryResultCachedAnimation(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -80,7 +81,7 @@ class InlineQueryResultCachedAnimation(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_audio.py b/pyrofork/types/inline_mode/inline_query_result_cached_audio.py
similarity index 82%
rename from pyrogram/types/inline_mode/inline_query_result_cached_audio.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_audio.py
index 9535f633..0e5d3630 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_audio.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_audio.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -41,17 +42,17 @@ class InlineQueryResultCachedAudio(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -74,7 +75,7 @@ class InlineQueryResultCachedAudio(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_document.py b/pyrofork/types/inline_mode/inline_query_result_cached_document.py
similarity index 83%
rename from pyrogram/types/inline_mode/inline_query_result_cached_document.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_document.py
index 2ab190e7..7913eb57 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_document.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_document.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -47,17 +48,17 @@ class InlineQueryResultCachedDocument(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -84,7 +85,7 @@ class InlineQueryResultCachedDocument(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_photo.py b/pyrofork/types/inline_mode/inline_query_result_cached_photo.py
similarity index 83%
rename from pyrogram/types/inline_mode/inline_query_result_cached_photo.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_photo.py
index 2e01d344..ed1bb530 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_photo.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_photo.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -47,17 +48,17 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -84,7 +85,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_sticker.py b/pyrofork/types/inline_mode/inline_query_result_cached_sticker.py
similarity index 80%
rename from pyrogram/types/inline_mode/inline_query_result_cached_sticker.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_sticker.py
index 06d012fb..bc4497ee 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_sticker.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_sticker.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -36,10 +37,10 @@ class InlineQueryResultCachedSticker(InlineQueryResult):
             Unique identifier for this result, 1-64 bytes.
             Defaults to a randomly generated UUID4.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -56,7 +57,7 @@ class InlineQueryResultCachedSticker(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         file_id = FileId.decode(self.sticker_file_id)
 
         return raw.types.InputBotInlineResultDocument(
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_video.py b/pyrofork/types/inline_mode/inline_query_result_cached_video.py
similarity index 83%
rename from pyrogram/types/inline_mode/inline_query_result_cached_video.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_video.py
index 00ea32ec..e597c027 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_video.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_video.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -48,17 +49,17 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -85,7 +86,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_cached_voice.py b/pyrofork/types/inline_mode/inline_query_result_cached_voice.py
similarity index 82%
rename from pyrogram/types/inline_mode/inline_query_result_cached_voice.py
rename to pyrofork/types/inline_mode/inline_query_result_cached_voice.py
index cc2bd768..ea55515d 100644
--- a/pyrogram/types/inline_mode/inline_query_result_cached_voice.py
+++ b/pyrofork/types/inline_mode/inline_query_result_cached_voice.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 from ...file_id import FileId
 
@@ -45,17 +46,17 @@ class InlineQueryResultCachedVoice(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -80,7 +81,7 @@ class InlineQueryResultCachedVoice(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         message, entities = (await utils.parse_text_entities(
             client, self.caption, self.parse_mode, self.caption_entities
         )).values()
diff --git a/pyrogram/types/inline_mode/inline_query_result_contact.py b/pyrofork/types/inline_mode/inline_query_result_contact.py
similarity index 85%
rename from pyrogram/types/inline_mode/inline_query_result_contact.py
rename to pyrofork/types/inline_mode/inline_query_result_contact.py
index d55a6244..df899b86 100644
--- a/pyrogram/types/inline_mode/inline_query_result_contact.py
+++ b/pyrofork/types/inline_mode/inline_query_result_contact.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from .inline_query_result import InlineQueryResult
 
 
@@ -45,10 +46,10 @@ class InlineQueryResultContact(InlineQueryResult):
             Unique identifier for this result, 1-64 bytes.
             Defaults to a randomly generated UUID4.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
             
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`, *optional*):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`, *optional*):
             Content of the message to be sent instead of the contact.
 
         thumb_url (``str``, *optional*):
@@ -84,7 +85,7 @@ class InlineQueryResultContact(InlineQueryResult):
         self.thumb_width = thumb_width
         self.thumb_height = thumb_height
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         return raw.types.InputBotInlineResult(
             id=self.id,
             type=self.type,
diff --git a/pyrogram/types/inline_mode/inline_query_result_document.py b/pyrofork/types/inline_mode/inline_query_result_document.py
similarity index 86%
rename from pyrogram/types/inline_mode/inline_query_result_document.py
rename to pyrofork/types/inline_mode/inline_query_result_document.py
index eac7901b..0fbc0667 100644
--- a/pyrogram/types/inline_mode/inline_query_result_document.py
+++ b/pyrofork/types/inline_mode/inline_query_result_document.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -47,20 +48,20 @@ class InlineQueryResultDocument(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the video to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         description (``str``, *optional*):
             Short description of the result.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the file.
 
         thumb_url (``str``, *optional*):
@@ -102,7 +103,7 @@ class InlineQueryResultDocument(InlineQueryResult):
         self.thumb_width = thumb_width
         self.thumb_height = thumb_height
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         document = raw.types.InputWebDocument(
             url=self.document_url,
             size=0,
diff --git a/pyrogram/types/inline_mode/inline_query_result_location.py b/pyrofork/types/inline_mode/inline_query_result_location.py
similarity index 87%
rename from pyrogram/types/inline_mode/inline_query_result_location.py
rename to pyrofork/types/inline_mode/inline_query_result_location.py
index 236f39a6..44dbb060 100644
--- a/pyrogram/types/inline_mode/inline_query_result_location.py
+++ b/pyrofork/types/inline_mode/inline_query_result_location.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from .inline_query_result import InlineQueryResult
 
 
@@ -55,10 +56,10 @@ class InlineQueryResultLocation(InlineQueryResult):
             For live locations, a maximum distance for proximity alerts about approaching another chat member,
             in meters. Must be between 1 and 100000 if specified.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the file.
 
         thumb_url (``str``, *optional*):
@@ -100,7 +101,7 @@ class InlineQueryResultLocation(InlineQueryResult):
         self.thumb_width = thumb_width
         self.thumb_height = thumb_height
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         return raw.types.InputBotInlineResult(
             id=self.id,
             type=self.type,
diff --git a/pyrogram/types/inline_mode/inline_query_result_photo.py b/pyrofork/types/inline_mode/inline_query_result_photo.py
similarity index 86%
rename from pyrogram/types/inline_mode/inline_query_result_photo.py
rename to pyrofork/types/inline_mode/inline_query_result_photo.py
index d75ccac2..e7a73ff2 100644
--- a/pyrogram/types/inline_mode/inline_query_result_photo.py
+++ b/pyrofork/types/inline_mode/inline_query_result_photo.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -58,17 +59,17 @@ class InlineQueryResultPhoto(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the photo to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             An InlineKeyboardMarkup object.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the photo.
     """
 
@@ -101,7 +102,7 @@ class InlineQueryResultPhoto(InlineQueryResult):
         self.reply_markup = reply_markup
         self.input_message_content = input_message_content
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         photo = raw.types.InputWebDocument(
             url=self.photo_url,
             size=0,
diff --git a/pyrogram/types/inline_mode/inline_query_result_venue.py b/pyrofork/types/inline_mode/inline_query_result_venue.py
similarity index 87%
rename from pyrogram/types/inline_mode/inline_query_result_venue.py
rename to pyrofork/types/inline_mode/inline_query_result_venue.py
index b3b513a5..eb577747 100644
--- a/pyrogram/types/inline_mode/inline_query_result_venue.py
+++ b/pyrofork/types/inline_mode/inline_query_result_venue.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from .inline_query_result import InlineQueryResult
 
 
@@ -56,10 +57,10 @@ class InlineQueryResultVenue(InlineQueryResult):
         google_place_type (``str``, *optional*):
             Google Places type of the venue.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the file.
 
         thumb_url (``str``, *optional*):
@@ -103,7 +104,7 @@ class InlineQueryResultVenue(InlineQueryResult):
         self.thumb_width = thumb_width
         self.thumb_height = thumb_height
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         return raw.types.InputBotInlineResult(
             id=self.id,
             type=self.type,
diff --git a/pyrogram/types/inline_mode/inline_query_result_video.py b/pyrofork/types/inline_mode/inline_query_result_video.py
similarity index 86%
rename from pyrogram/types/inline_mode/inline_query_result_video.py
rename to pyrofork/types/inline_mode/inline_query_result_video.py
index 5f71111f..dcd9cc0a 100644
--- a/pyrogram/types/inline_mode/inline_query_result_video.py
+++ b/pyrofork/types/inline_mode/inline_query_result_video.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -63,17 +64,17 @@ class InlineQueryResultVideo(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the video to be sent, 0-1024 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message
 
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`):
             Content of the message to be sent instead of the video. This field is required if InlineQueryResultVideo is
             used to send an HTML-page as a result (e.g., a YouTube video).
     """
@@ -109,7 +110,7 @@ class InlineQueryResultVideo(InlineQueryResult):
         self.caption_entities = caption_entities
         self.mime_type = mime_type
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         video = raw.types.InputWebDocument(
             url=self.video_url,
             size=0,
diff --git a/pyrogram/types/inline_mode/inline_query_result_voice.py b/pyrofork/types/inline_mode/inline_query_result_voice.py
similarity index 83%
rename from pyrogram/types/inline_mode/inline_query_result_voice.py
rename to pyrofork/types/inline_mode/inline_query_result_voice.py
index 31b422f8..05a69f50 100644
--- a/pyrogram/types/inline_mode/inline_query_result_voice.py
+++ b/pyrofork/types/inline_mode/inline_query_result_voice.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Optional
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .inline_query_result import InlineQueryResult
 
 
@@ -47,17 +48,17 @@ class InlineQueryResultVoice(InlineQueryResult):
         caption (``str``, *optional*):
             Caption of the audio to be sent, 0-1024 characters.
             
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
             
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
             Inline keyboard attached to the message.
             
-        input_message_content (:obj:`~pyrogram.types.InputMessageContent`, *optional*):
+        input_message_content (:obj:`~pyrofork.types.InputMessageContent`, *optional*):
             Content of the message to be sent instead of the audio.
     """
 
@@ -82,7 +83,7 @@ class InlineQueryResultVoice(InlineQueryResult):
         self.parse_mode = parse_mode
         self.caption_entities = caption_entities
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         audio = raw.types.InputWebDocument(
             url=self.voice_url,
             size=0,
diff --git a/pyrogram/types/input_media/__init__.py b/pyrofork/types/input_media/__init__.py
similarity index 76%
rename from pyrogram/types/input_media/__init__.py
rename to pyrofork/types/input_media/__init__.py
index 6f7447db..1aa05718 100644
--- a/pyrogram/types/input_media/__init__.py
+++ b/pyrofork/types/input_media/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .input_media import InputMedia
 from .input_media_animation import InputMediaAnimation
diff --git a/pyrogram/types/input_media/input_media.py b/pyrofork/types/input_media/input_media.py
similarity index 65%
rename from pyrogram/types/input_media/input_media.py
rename to pyrofork/types/input_media/input_media.py
index bd60aeb3..10cdfbff 100644
--- a/pyrogram/types/input_media/input_media.py
+++ b/pyrofork/types/input_media/input_media.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Union, BinaryIO
 
@@ -27,11 +28,11 @@ class InputMedia(Object):
 
     It should be one of:
 
-    - :obj:`~pyrogram.types.InputMediaAnimation`
-    - :obj:`~pyrogram.types.InputMediaDocument`
-    - :obj:`~pyrogram.types.InputMediaAudio`
-    - :obj:`~pyrogram.types.InputMediaPhoto`
-    - :obj:`~pyrogram.types.InputMediaVideo`
+    - :obj:`~pyrofork.types.InputMediaAnimation`
+    - :obj:`~pyrofork.types.InputMediaDocument`
+    - :obj:`~pyrofork.types.InputMediaAudio`
+    - :obj:`~pyrofork.types.InputMediaPhoto`
+    - :obj:`~pyrofork.types.InputMediaVideo`
     """
 
     def __init__(
diff --git a/pyrogram/types/input_media/input_media_animation.py b/pyrofork/types/input_media/input_media_animation.py
similarity index 86%
rename from pyrogram/types/input_media/input_media_animation.py
rename to pyrofork/types/input_media/input_media_animation.py
index 2e91a214..6474ccfa 100644
--- a/pyrogram/types/input_media/input_media_animation.py
+++ b/pyrofork/types/input_media/input_media_animation.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List, Union, BinaryIO
 
@@ -44,11 +45,11 @@ class InputMediaAnimation(InputMedia):
             Caption of the animation to be sent, 0-1024 characters.
             If not specified, the original caption is kept. Pass "" (empty string) to remove the caption.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         width (``int``, *optional*):
diff --git a/pyrogram/types/input_media/input_media_area.py b/pyrofork/types/input_media/input_media_area.py
similarity index 93%
rename from pyrogram/types/input_media/input_media_area.py
rename to pyrofork/types/input_media/input_media_area.py
index 48f5f963..486c5937 100644
--- a/pyrogram/types/input_media/input_media_area.py
+++ b/pyrofork/types/input_media/input_media_area.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import types
+from pyrofork import types
 
 from ..object import Object
 
@@ -26,7 +26,7 @@ class InputMediaArea(Object):
 
     Pyrofork currently supports the following types:
 
-    - :obj:`~pyrogram.types.InputMediaAreaChannelPost`
+    - :obj:`~pyrofork.types.InputMediaAreaChannelPost`
     """
 
     # TODO: InputMediaAreaVenue
diff --git a/pyrogram/types/input_media/input_media_area_channel_post.py b/pyrofork/types/input_media/input_media_area_channel_post.py
similarity index 91%
rename from pyrogram/types/input_media/input_media_area_channel_post.py
rename to pyrofork/types/input_media/input_media_area_channel_post.py
index 64eed277..709da46e 100644
--- a/pyrogram/types/input_media/input_media_area_channel_post.py
+++ b/pyrofork/types/input_media/input_media_area_channel_post.py
@@ -16,9 +16,9 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 
 from .input_media_area import InputMediaArea
 
@@ -28,7 +28,7 @@ class InputMediaAreaChannelPost(InputMediaArea):
     """A channel post media area.
 
     Parameters:
-        coordinates (:obj:`~pyrogram.types.MediaAreaCoordinates`):
+        coordinates (:obj:`~pyrofork.types.MediaAreaCoordinates`):
             Media area coordinates.
 
         chat_id (``int`` | ``str``):
@@ -50,7 +50,7 @@ class InputMediaAreaChannelPost(InputMediaArea):
         self.chat_id = chat_id
         self.message_id = message_id
 
-    async def write(self, client: "pyrogram.Client"):
+    async def write(self, client: "pyrofork.Client"):
         return raw.types.InputMediaAreaChannelPost(
             coordinates=self.coordinates,
             channel=await client.resolve_peer(self.chat_id),
diff --git a/pyrogram/types/input_media/input_media_audio.py b/pyrofork/types/input_media/input_media_audio.py
similarity index 83%
rename from pyrogram/types/input_media/input_media_audio.py
rename to pyrofork/types/input_media/input_media_audio.py
index cc91e7bd..79dc2eba 100644
--- a/pyrogram/types/input_media/input_media_audio.py
+++ b/pyrofork/types/input_media/input_media_audio.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List, BinaryIO, Union
 
@@ -26,7 +27,7 @@ from ... import enums
 class InputMediaAudio(InputMedia):
     """An audio to be sent inside an album.
 
-    It is intended to be used with :meth:`~pyrogram.Client.send_media_group`.
+    It is intended to be used with :meth:`~pyrofork.Client.send_media_group`.
 
     Parameters:
         media (``str`` | ``BinaryIO``):
@@ -46,11 +47,11 @@ class InputMediaAudio(InputMedia):
             Caption of the audio to be sent, 0-1024 characters.
             If not specified, the original caption is kept. Pass "" (empty string) to remove the caption.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         duration (``int``, *optional*):
diff --git a/pyrogram/types/input_media/input_media_document.py b/pyrofork/types/input_media/input_media_document.py
similarity index 82%
rename from pyrogram/types/input_media/input_media_document.py
rename to pyrofork/types/input_media/input_media_document.py
index 3e4d510b..84a6d156 100644
--- a/pyrogram/types/input_media/input_media_document.py
+++ b/pyrofork/types/input_media/input_media_document.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List, Union, BinaryIO
 
@@ -44,11 +45,11 @@ class InputMediaDocument(InputMedia):
             Caption of the document to be sent, 0-1024 characters.
             If not specified, the original caption is kept. Pass "" (empty string) to remove the caption.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
     """
 
diff --git a/pyrogram/types/input_media/input_media_photo.py b/pyrofork/types/input_media/input_media_photo.py
similarity index 79%
rename from pyrogram/types/input_media/input_media_photo.py
rename to pyrofork/types/input_media/input_media_photo.py
index f4fd0e03..ff45ee69 100644
--- a/pyrogram/types/input_media/input_media_photo.py
+++ b/pyrofork/types/input_media/input_media_photo.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List, Union, BinaryIO
 
@@ -25,7 +26,7 @@ from ... import enums
 
 class InputMediaPhoto(InputMedia):
     """A photo to be sent inside an album.
-    It is intended to be used with :obj:`~pyrogram.Client.send_media_group`.
+    It is intended to be used with :obj:`~pyrofork.Client.send_media_group`.
 
     Parameters:
         media (``str`` | ``BinaryIO``):
@@ -39,11 +40,11 @@ class InputMediaPhoto(InputMedia):
             Caption of the photo to be sent, 0-1024 characters.
             If not specified, the original caption is kept. Pass "" (empty string) to remove the caption.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         has_spoiler (``bool``, *optional*):
diff --git a/pyrogram/types/input_media/input_media_video.py b/pyrofork/types/input_media/input_media_video.py
similarity index 85%
rename from pyrogram/types/input_media/input_media_video.py
rename to pyrofork/types/input_media/input_media_video.py
index ab1823d3..cac0c485 100644
--- a/pyrogram/types/input_media/input_media_video.py
+++ b/pyrofork/types/input_media/input_media_video.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List, Union, BinaryIO
 
@@ -25,7 +26,7 @@ from ... import enums
 
 class InputMediaVideo(InputMedia):
     """A video to be sent inside an album.
-    It is intended to be used with :obj:`~pyrogram.Client.send_media_group`.
+    It is intended to be used with :obj:`~pyrofork.Client.send_media_group`.
 
     Parameters:
         media (``str`` | ``BinaryIO``):
@@ -45,11 +46,11 @@ class InputMediaVideo(InputMedia):
             Caption of the video to be sent, 0-1024 characters.
             If not specified, the original caption is kept. Pass "" (empty string) to remove the caption.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         width (``int``, *optional*):
diff --git a/pyrogram/types/input_media/input_phone_contact.py b/pyrofork/types/input_media/input_phone_contact.py
similarity index 72%
rename from pyrogram/types/input_media/input_phone_contact.py
rename to pyrofork/types/input_media/input_phone_contact.py
index 0608cf21..2fb526ed 100644
--- a/pyrogram/types/input_media/input_phone_contact.py
+++ b/pyrofork/types/input_media/input_phone_contact.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
-from pyrogram.session.internals import MsgId
+from pyrofork import raw
+from pyrofork.session.internals import MsgId
 from ..object import Object
 
 
 class InputPhoneContact(Object):
     """A Phone Contact to be added in your Telegram address book.
-    It is intended to be used with :meth:`~pyrogram.Client.add_contacts()`
+    It is intended to be used with :meth:`~pyrofork.Client.add_contacts()`
 
     Parameters:
         phone (``str``):
diff --git a/pyrogram/types/input_message_content/__init__.py b/pyrofork/types/input_message_content/__init__.py
similarity index 100%
rename from pyrogram/types/input_message_content/__init__.py
rename to pyrofork/types/input_message_content/__init__.py
diff --git a/pyrofork/types/input_message_content/input_message_content.py b/pyrofork/types/input_message_content/input_message_content.py
new file mode 100644
index 00000000..f0878cbf
--- /dev/null
+++ b/pyrofork/types/input_message_content/input_message_content.py
@@ -0,0 +1,41 @@
+#  Pyrofork - Telegram MTProto API Client Library for Python
+#  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
+#
+#  This file is part of Pyrofork.
+#
+#  Pyrofork is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU Lesser General Public License as published
+#  by the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  Pyrofork is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with Pyrofork.  If not, see .
+
+import pyrofork
+
+from ..object import Object
+
+"""- :obj:`~pyrofork.types.InputLocationMessageContent`
+    - :obj:`~pyrofork.types.InputVenueMessageContent`
+    - :obj:`~pyrofork.types.InputContactMessageContent`"""
+
+
+class InputMessageContent(Object):
+    """Content of a message to be sent as a result of an inline query.
+
+    Pyrofork currently supports the following types:
+
+    - :obj:`~pyrofork.types.InputTextMessageContent`
+    """
+
+    def __init__(self):
+        super().__init__()
+
+    async def write(self, client: "pyrofork.Client", reply_markup):
+        raise NotImplementedError
diff --git a/pyrogram/types/input_message_content/input_reply_to_message.py b/pyrofork/types/input_message_content/input_reply_to_message.py
similarity index 95%
rename from pyrogram/types/input_message_content/input_reply_to_message.py
rename to pyrofork/types/input_message_content/input_reply_to_message.py
index 8d0b5667..adeb3575 100644
--- a/pyrogram/types/input_message_content/input_reply_to_message.py
+++ b/pyrofork/types/input_message_content/input_reply_to_message.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 from typing import List, Union
 
@@ -33,7 +33,7 @@ class InputReplyToMessage(Object):
             Unique identifier for the target message thread (topic) of the forum.
             for forum supergroups only.
 
-        reply_to_chat (:obj:`~pyrogram.raw.InputPeer`, *optional*):
+        reply_to_chat (:obj:`~pyrofork.raw.InputPeer`, *optional*):
             Unique identifier for the origin chat.
             for reply to message from another chat.
 
@@ -41,7 +41,7 @@ class InputReplyToMessage(Object):
             Text to quote.
             for reply_to_message only.
 
-        quote_entities (List of :obj:`~pyrogram.raw.base.MessageEntity`):
+        quote_entities (List of :obj:`~pyrofork.raw.base.MessageEntity`):
             Entities to quote.
             for reply_to_message only.
     """
diff --git a/pyrogram/types/input_message_content/input_reply_to_story.py b/pyrofork/types/input_message_content/input_reply_to_story.py
similarity index 94%
rename from pyrogram/types/input_message_content/input_reply_to_story.py
rename to pyrofork/types/input_message_content/input_reply_to_story.py
index c521e4b0..be4c5901 100644
--- a/pyrogram/types/input_message_content/input_reply_to_story.py
+++ b/pyrofork/types/input_message_content/input_reply_to_story.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
@@ -25,7 +25,7 @@ class InputReplyToStory(Object):
 
 
     Parameters:
-        user_id (:obj:`~pyrogram.raw.types.InputUser`):
+        user_id (:obj:`~pyrofork.raw.types.InputUser`):
             An InputUser.
 
         story_id (``int``):
diff --git a/pyrogram/types/input_message_content/input_text_message_content.py b/pyrofork/types/input_message_content/input_text_message_content.py
similarity index 77%
rename from pyrogram/types/input_message_content/input_text_message_content.py
rename to pyrofork/types/input_message_content/input_text_message_content.py
index 7c88f996..3048b1f4 100644
--- a/pyrogram/types/input_message_content/input_text_message_content.py
+++ b/pyrofork/types/input_message_content/input_text_message_content.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from .input_message_content import InputMessageContent
 
 
@@ -30,11 +31,11 @@ class InputTextMessageContent(InputMessageContent):
         message_text (``str``):
             Text of the message to be sent, 1-4096 characters.
 
-        parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+        parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
             By default, texts are parsed using both Markdown and HTML styles.
             You can combine both syntaxes together.
 
-        entities (List of :obj:`~pyrogram.types.MessageEntity`):
+        entities (List of :obj:`~pyrofork.types.MessageEntity`):
             List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
         disable_web_page_preview (``bool``, *optional*):
@@ -55,7 +56,7 @@ class InputTextMessageContent(InputMessageContent):
         self.entities = entities
         self.disable_web_page_preview = disable_web_page_preview
 
-    async def write(self, client: "pyrogram.Client", reply_markup):
+    async def write(self, client: "pyrofork.Client", reply_markup):
         message, entities = (await utils.parse_text_entities(
             client, self.message_text, self.parse_mode, self.entities
         )).values()
diff --git a/pyrogram/types/list.py b/pyrofork/types/list.py
similarity index 63%
rename from pyrogram/types/list.py
rename to pyrofork/types/list.py
index da87d527..ba96440e 100644
--- a/pyrogram/types/list.py
+++ b/pyrofork/types/list.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .object import Object
 
@@ -27,4 +28,4 @@ class List(list):
         return Object.__str__(self)
 
     def __repr__(self):
-        return f"pyrogram.types.List([{','.join(Object.__repr__(i) for i in self)}])"
+        return f"pyrofork.types.List([{','.join(Object.__repr__(i) for i in self)}])"
diff --git a/pyrogram/types/messages_and_media/__init__.py b/pyrofork/types/messages_and_media/__init__.py
similarity index 91%
rename from pyrogram/types/messages_and_media/__init__.py
rename to pyrofork/types/messages_and_media/__init__.py
index 890a3fe5..e5db1e8c 100644
--- a/pyrogram/types/messages_and_media/__init__.py
+++ b/pyrofork/types/messages_and_media/__init__.py
@@ -1,21 +1,21 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from .animation import Animation
 from .audio import Audio
diff --git a/pyrogram/types/messages_and_media/animation.py b/pyrofork/types/messages_and_media/animation.py
similarity index 85%
rename from pyrogram/types/messages_and_media/animation.py
rename to pyrofork/types/messages_and_media/animation.py
index 1e7bf4cf..3c1cab72 100644
--- a/pyrogram/types/messages_and_media/animation.py
+++ b/pyrofork/types/messages_and_media/animation.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -58,14 +59,14 @@ class Animation(Object):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the animation was sent.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Animation thumbnails.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         width: int,
diff --git a/pyrogram/types/messages_and_media/audio.py b/pyrofork/types/messages_and_media/audio.py
similarity index 85%
rename from pyrogram/types/messages_and_media/audio.py
rename to pyrofork/types/messages_and_media/audio.py
index e474282f..22fd0ccb 100644
--- a/pyrogram/types/messages_and_media/audio.py
+++ b/pyrofork/types/messages_and_media/audio.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -58,14 +59,14 @@ class Audio(Object):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the audio was originally sent.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Thumbnails of the music file album cover.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         duration: int,
diff --git a/pyrogram/types/messages_and_media/contact.py b/pyrofork/types/messages_and_media/contact.py
similarity index 77%
rename from pyrogram/types/messages_and_media/contact.py
rename to pyrofork/types/messages_and_media/contact.py
index cec03329..ba372de8 100644
--- a/pyrogram/types/messages_and_media/contact.py
+++ b/pyrofork/types/messages_and_media/contact.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -44,7 +45,7 @@ class Contact(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         phone_number: str,
         first_name: str,
         last_name: str = None,
@@ -60,7 +61,7 @@ class Contact(Object):
         self.vcard = vcard
 
     @staticmethod
-    def _parse(client: "pyrogram.Client", contact: "raw.types.MessageMediaContact") -> "Contact":
+    def _parse(client: "pyrofork.Client", contact: "raw.types.MessageMediaContact") -> "Contact":
         return Contact(
             phone_number=contact.phone_number,
             first_name=contact.first_name,
diff --git a/pyrogram/types/messages_and_media/dice.py b/pyrofork/types/messages_and_media/dice.py
similarity index 71%
rename from pyrogram/types/messages_and_media/dice.py
rename to pyrofork/types/messages_and_media/dice.py
index 2c683ec8..846b97c4 100644
--- a/pyrogram/types/messages_and_media/dice.py
+++ b/pyrofork/types/messages_and_media/dice.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -32,7 +33,7 @@ class Dice(Object):
             Value of the dice, 1-6 for currently supported base emoji.
     """
 
-    def __init__(self, *, client: "pyrogram.Client" = None, emoji: str, value: int):
+    def __init__(self, *, client: "pyrofork.Client" = None, emoji: str, value: int):
         super().__init__(client)
 
         self.emoji = emoji
diff --git a/pyrogram/types/messages_and_media/document.py b/pyrofork/types/messages_and_media/document.py
similarity index 82%
rename from pyrogram/types/messages_and_media/document.py
rename to pyrofork/types/messages_and_media/document.py
index 95ebe3f2..81ebda50 100644
--- a/pyrogram/types/messages_and_media/document.py
+++ b/pyrofork/types/messages_and_media/document.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -49,14 +50,14 @@ class Document(Object):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the document was sent.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Document thumbnails as defined by sender.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         file_name: str = None,
diff --git a/pyrogram/types/messages_and_media/exported_story_link.py b/pyrofork/types/messages_and_media/exported_story_link.py
similarity index 98%
rename from pyrogram/types/messages_and_media/exported_story_link.py
rename to pyrofork/types/messages_and_media/exported_story_link.py
index 15287904..b567a72f 100644
--- a/pyrogram/types/messages_and_media/exported_story_link.py
+++ b/pyrofork/types/messages_and_media/exported_story_link.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from typing import List
 from ..object import Object
 
diff --git a/pyrogram/types/messages_and_media/game.py b/pyrofork/types/messages_and_media/game.py
similarity index 81%
rename from pyrogram/types/messages_and_media/game.py
rename to pyrofork/types/messages_and_media/game.py
index 1452d79e..49b13ee0 100644
--- a/pyrogram/types/messages_and_media/game.py
+++ b/pyrofork/types/messages_and_media/game.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -39,10 +40,10 @@ class Game(Object):
         description (``str``):
             Description of the game.
 
-        photo (:obj:`~pyrogram.types.Photo`):
+        photo (:obj:`~pyrofork.types.Photo`):
             Photo that will be displayed in the game message in chats.
 
-        animation (:obj:`~pyrogram.types.Animation`, *optional*):
+        animation (:obj:`~pyrofork.types.Animation`, *optional*):
             Animation that will be displayed in the game message in chats.
             Upload via BotFather.
     """
@@ -50,7 +51,7 @@ class Game(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         title: str,
         short_name: str,
diff --git a/pyrogram/types/messages_and_media/giveaway.py b/pyrofork/types/messages_and_media/giveaway.py
similarity index 94%
rename from pyrogram/types/messages_and_media/giveaway.py
rename to pyrofork/types/messages_and_media/giveaway.py
index 217da0b1..1abb9e82 100644
--- a/pyrogram/types/messages_and_media/giveaway.py
+++ b/pyrofork/types/messages_and_media/giveaway.py
@@ -17,11 +17,11 @@
 #  along with Pyrofork.  If not, see .
 
 import asyncio
-import pyrogram
+import pyrofork
 
 from datetime import datetime
-from pyrogram import raw, types, utils
-from pyrogram.errors import FloodWait
+from pyrofork import raw, types, utils
+from pyrofork.errors import FloodWait
 from ..object import Object
 from typing import List
 
@@ -30,7 +30,7 @@ class Giveaway(Object):
     """A giveaway.
 
     Parameters:
-        chats (List of :obj:`~pyrogram.types.Chat`):
+        chats (List of :obj:`~pyrofork.types.Chat`):
             List of channel(s) which host the giveaway.
 
         quantity (``int``):
@@ -55,7 +55,7 @@ class Giveaway(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chats: List["types.Chat"],
         quantity: int,
         months: int,
diff --git a/pyrogram/types/messages_and_media/giveaway_launched.py b/pyrofork/types/messages_and_media/giveaway_launched.py
similarity index 100%
rename from pyrogram/types/messages_and_media/giveaway_launched.py
rename to pyrofork/types/messages_and_media/giveaway_launched.py
diff --git a/pyrogram/types/messages_and_media/giveaway_result.py b/pyrofork/types/messages_and_media/giveaway_result.py
similarity index 93%
rename from pyrogram/types/messages_and_media/giveaway_result.py
rename to pyrofork/types/messages_and_media/giveaway_result.py
index 3e36539f..f5449af4 100644
--- a/pyrogram/types/messages_and_media/giveaway_result.py
+++ b/pyrofork/types/messages_and_media/giveaway_result.py
@@ -16,10 +16,10 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from datetime import datetime
-from pyrogram import raw, types, utils
+from pyrofork import raw, types, utils
 from ..object import Object
 from typing import List, Union
 
@@ -28,10 +28,10 @@ class GiveawayResult(Object):
     """A giveaway result.
 
     Parameters:
-        chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Channel which host the giveaway.
 
-        giveaway_message (:obj:`~pyrogram.types.Message`, *optional*):
+        giveaway_message (:obj:`~pyrofork.types.Message`, *optional*):
             The original giveaway message.
 
         quantity (``int``):
@@ -40,7 +40,7 @@ class GiveawayResult(Object):
         unclaimed_quantity (``int``):
             Quantity of unclaimed giveaway prize.
 
-        winners (List of :obj:`~pyrogram.types.User`, *optional*):
+        winners (List of :obj:`~pyrofork.types.User`, *optional*):
             The giveaway winners.
 
         months (``int``, *optional*):
@@ -62,7 +62,7 @@ class GiveawayResult(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chat: "types.Chat" = None,
         giveaway_message: "types.Message" = None,
         quantity: int,
diff --git a/pyrogram/types/messages_and_media/location.py b/pyrofork/types/messages_and_media/location.py
similarity index 74%
rename from pyrogram/types/messages_and_media/location.py
rename to pyrofork/types/messages_and_media/location.py
index 664890cb..b253ff36 100644
--- a/pyrogram/types/messages_and_media/location.py
+++ b/pyrofork/types/messages_and_media/location.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
@@ -36,7 +37,7 @@ class Location(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         longitude: float,
         latitude: float
     ):
diff --git a/pyrogram/types/messages_and_media/media_area.py b/pyrofork/types/messages_and_media/media_area.py
similarity index 91%
rename from pyrogram/types/messages_and_media/media_area.py
rename to pyrofork/types/messages_and_media/media_area.py
index 7b3b8ba5..52bd29bc 100644
--- a/pyrogram/types/messages_and_media/media_area.py
+++ b/pyrofork/types/messages_and_media/media_area.py
@@ -16,9 +16,9 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 from ..object import Object
 
 
@@ -27,7 +27,7 @@ class MediaArea(Object):
 
     It should be one of:
 
-    - :obj:`~pyrogram.types.MediaAreaChannelPost`
+    - :obj:`~pyrofork.types.MediaAreaChannelPost`
     """
 
     def __init__(
@@ -39,7 +39,7 @@ class MediaArea(Object):
         self.coordinates = coordinates
 
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         media_area: "raw.base.MediaArea"
     ) -> "MediaArea":
         if isinstance(media_area, raw.types.MediaAreaChannelPost):
diff --git a/pyrogram/types/messages_and_media/media_area_channel_post.py b/pyrofork/types/messages_and_media/media_area_channel_post.py
similarity index 91%
rename from pyrogram/types/messages_and_media/media_area_channel_post.py
rename to pyrofork/types/messages_and_media/media_area_channel_post.py
index 82ad9a7c..e00da0f4 100644
--- a/pyrogram/types/messages_and_media/media_area_channel_post.py
+++ b/pyrofork/types/messages_and_media/media_area_channel_post.py
@@ -16,9 +16,9 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw, types, utils
+from pyrofork import raw, types, utils
 
 from .media_area import MediaArea
 
@@ -26,10 +26,10 @@ class MediaAreaChannelPost(MediaArea):
     """A channel post media area.
 
     Parameters:
-        coordinates (:obj:`~pyrogram.types.MediaAreaCoordinates`):
+        coordinates (:obj:`~pyrofork.types.MediaAreaCoordinates`):
             Media area coordinates.
 
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             Information about origin channel.
 
         message_id (``int``):
@@ -49,7 +49,7 @@ class MediaAreaChannelPost(MediaArea):
         self.message_id = message_id
 
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         media_area: "raw.types.MediaAreaChannelPost"
     ) -> "MediaAreaChannelPost":
         channel_id = utils.get_channel_id(media_area.channel_id)
diff --git a/pyrogram/types/messages_and_media/media_area_coordinates.py b/pyrofork/types/messages_and_media/media_area_coordinates.py
similarity index 98%
rename from pyrogram/types/messages_and_media/media_area_coordinates.py
rename to pyrofork/types/messages_and_media/media_area_coordinates.py
index c20935ef..53be6c89 100644
--- a/pyrogram/types/messages_and_media/media_area_coordinates.py
+++ b/pyrofork/types/messages_and_media/media_area_coordinates.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import types, raw
+from pyrofork import types, raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/messages_and_media/message.py b/pyrofork/types/messages_and_media/message.py
similarity index 91%
rename from pyrogram/types/messages_and_media/message.py
rename to pyrofork/types/messages_and_media/message.py
index 0b6f169b..2f37a8ce 100644
--- a/pyrogram/types/messages_and_media/message.py
+++ b/pyrofork/types/messages_and_media/message.py
@@ -22,12 +22,12 @@ from datetime import datetime
 from functools import partial
 from typing import List, Match, Union, BinaryIO, Optional, Callable
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
-from pyrogram.errors import MessageIdsEmpty, PeerIdInvalid
-from pyrogram.parser import utils as parser_utils, Parser
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
+from pyrofork.errors import MessageIdsEmpty, PeerIdInvalid
+from pyrofork.parser import utils as parser_utils, Parser
 from ..object import Object
 from ..update import Update
 
@@ -68,10 +68,10 @@ class Message(Object, Update):
             Unique identifier of a message thread to which the message belongs.
             for supergroups only
 
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             Sender, empty for messages sent to channels.
 
-        sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        sender_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the message, sent on behalf of a chat.
             The channel itself for channel messages.
             The supergroup itself for messages from anonymous group administrators.
@@ -80,20 +80,20 @@ class Message(Object, Update):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the message was sent.
 
-        chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Conversation the message belongs to.
 
-        topics (:obj:`~pyrogram.types.ForumTopic`, *optional*):
+        topics (:obj:`~pyrofork.types.ForumTopic`, *optional*):
             Topic the message belongs to.
             only returned using when client.get_messages.
 
-        forward_from (:obj:`~pyrogram.types.User`, *optional*):
+        forward_from (:obj:`~pyrofork.types.User`, *optional*):
             For forwarded messages, sender of the original message.
 
         forward_sender_name (``str``, *optional*):
             For messages forwarded from users who have hidden their accounts, name of the user.
 
-        forward_from_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        forward_from_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             For messages forwarded from channels, information about the original channel. For messages forwarded from anonymous group administrators, information about the original supergroup.
 
         forward_from_message_id (``int``, *optional*):
@@ -120,11 +120,11 @@ class Message(Object, Update):
         reply_to_top_message_id (``int``, *optional*):
             The id of the first message which started this message thread.
 
-        reply_to_message (:obj:`~pyrogram.types.Message`, *optional*):
+        reply_to_message (:obj:`~pyrofork.types.Message`, *optional*):
             For replies, the original message. Note that the Message object in this field will not contain
             further reply_to_message fields even if it itself is a reply.
 
-        reply_to_story (:obj:`~pyrogram.types.Story`, *optional*):
+        reply_to_story (:obj:`~pyrofork.types.Story`, *optional*):
             For replies, the original story.
 
         mentioned (``bool``, *optional*):
@@ -134,12 +134,12 @@ class Message(Object, Update):
             The message is empty.
             A message can be empty in case it was deleted or you tried to retrieve a message that doesn't exist yet.
 
-        service (:obj:`~pyrogram.enums.MessageServiceType`, *optional*):
+        service (:obj:`~pyrofork.enums.MessageServiceType`, *optional*):
             The message is a service message.
             This field will contain the enumeration type of the service message.
             You can use ``service = getattr(message, message.service.value)`` to access the service message.
 
-        media (:obj:`~pyrogram.enums.MessageMediaType`, *optional*):
+        media (:obj:`~pyrofork.enums.MessageMediaType`, *optional*):
             The message is a media message.
             This field will contain the enumeration type of the media message.
             You can use ``media = getattr(message, message.media.value)`` to access the media message.
@@ -170,56 +170,56 @@ class Message(Object, Update):
             *text.html* to get the marked up message text. In case there is no entity, the fields
             will contain the same text as *text*.
 
-        entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+        entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
             For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the text.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
             For messages with a caption, special entities like usernames, URLs, bot commands, etc. that appear
             in the caption.
 
         quote_text (``str``, *optional*):
             Quoted reply text.
 
-        quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+        quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
             For quote text, special entities like usernames, URLs, bot commands, etc. that appear in the quote text.
 
-        audio (:obj:`~pyrogram.types.Audio`, *optional*):
+        audio (:obj:`~pyrofork.types.Audio`, *optional*):
             Message is an audio file, information about the file.
 
-        document (:obj:`~pyrogram.types.Document`, *optional*):
+        document (:obj:`~pyrofork.types.Document`, *optional*):
             Message is a general file, information about the file.
 
-        photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        photo (:obj:`~pyrofork.types.Photo`, *optional*):
             Message is a photo, information about the photo.
 
-        sticker (:obj:`~pyrogram.types.Sticker`, *optional*):
+        sticker (:obj:`~pyrofork.types.Sticker`, *optional*):
             Message is a sticker, information about the sticker.
 
-        animation (:obj:`~pyrogram.types.Animation`, *optional*):
+        animation (:obj:`~pyrofork.types.Animation`, *optional*):
             Message is an animation, information about the animation.
 
-        game (:obj:`~pyrogram.types.Game`, *optional*):
+        game (:obj:`~pyrofork.types.Game`, *optional*):
             Message is a game, information about the game.
 
-        giveaway (:obj:`~pyrogram.types.Giveaway`, *optional*):
+        giveaway (:obj:`~pyrofork.types.Giveaway`, *optional*):
             Message is a giveaway, information about the giveaway.
 
-        giveaway_result (:obj:`~pyrogram.types.GiveawayResult`, *optional*):
+        giveaway_result (:obj:`~pyrofork.types.GiveawayResult`, *optional*):
             Message is a giveaway result, information about the giveaway result.
 
-        story (:obj:`~pyrogram.types.MessageStory` | :obj:`~pyrogram.types.Story`, *optional*):
+        story (:obj:`~pyrofork.types.MessageStory` | :obj:`~pyrofork.types.Story`, *optional*):
             Message is a forwarded story, information about the forwarded story.
 
-        video (:obj:`~pyrogram.types.Video`, *optional*):
+        video (:obj:`~pyrofork.types.Video`, *optional*):
             Message is a video, information about the video.
 
-        voice (:obj:`~pyrogram.types.Voice`, *optional*):
+        voice (:obj:`~pyrofork.types.Voice`, *optional*):
             Message is a voice message, information about the file.
 
-        video_note (:obj:`~pyrogram.types.VideoNote`, *optional*):
+        video_note (:obj:`~pyrofork.types.VideoNote`, *optional*):
             Message is a video note, information about the video message.
 
-        web_page_preview (:obj:`~pyrogram.types.WebPagePreview`, *optional*):
+        web_page_preview (:obj:`~pyrofork.types.WebPagePreview`, *optional*):
             Message is a web page preview, information about the web page preview message.
 
         caption (``str``, *optional*):
@@ -228,35 +228,35 @@ class Message(Object, Update):
             *caption.html* to get the marked up caption text. In case there is no caption entity, the fields
             will contain the same text as *caption*.
 
-        contact (:obj:`~pyrogram.types.Contact`, *optional*):
+        contact (:obj:`~pyrofork.types.Contact`, *optional*):
             Message is a shared contact, information about the contact.
 
-        location (:obj:`~pyrogram.types.Location`, *optional*):
+        location (:obj:`~pyrofork.types.Location`, *optional*):
             Message is a shared location, information about the location.
 
-        venue (:obj:`~pyrogram.types.Venue`, *optional*):
+        venue (:obj:`~pyrofork.types.Venue`, *optional*):
             Message is a venue, information about the venue.
 
-        poll (:obj:`~pyrogram.types.Poll`, *optional*):
+        poll (:obj:`~pyrofork.types.Poll`, *optional*):
             Message is a native poll, information about the poll.
 
-        dice (:obj:`~pyrogram.types.Dice`, *optional*):
+        dice (:obj:`~pyrofork.types.Dice`, *optional*):
             A dice containing a value that is randomly generated by Telegram.
 
-        new_chat_members (List of :obj:`~pyrogram.types.User`, *optional*):
+        new_chat_members (List of :obj:`~pyrofork.types.User`, *optional*):
             New members that were added to the group or supergroup and information about them
             (the bot itself may be one of these members).
 
-        chat_joined_by_request (:obj:`~pyrogram.types.ChatJoinedByRequest`, *optional*):
+        chat_joined_by_request (:obj:`~pyrofork.types.ChatJoinedByRequest`, *optional*):
             New members chat join request has been approved in group or supergroup.
 
-        left_chat_member (:obj:`~pyrogram.types.User`, *optional*):
+        left_chat_member (:obj:`~pyrofork.types.User`, *optional*):
             A member was removed from the group, information about them (this member may be the bot itself).
 
         new_chat_title (``str``, *optional*):
             A chat title was changed to this value.
 
-        new_chat_photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        new_chat_photo (:obj:`~pyrofork.types.Photo`, *optional*):
             A chat photo was change to this value.
 
         delete_chat_photo (``bool``, *optional*):
@@ -289,12 +289,12 @@ class Message(Object, Update):
             in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float
             type are safe for storing this identifier.
 
-        pinned_message (:obj:`~pyrogram.types.Message`, *optional*):
+        pinned_message (:obj:`~pyrofork.types.Message`, *optional*):
             Specified message was pinned.
             Note that the Message object in this field will not contain further reply_to_message fields even if it
             is itself a reply.
 
-        game_high_score (:obj:`~pyrogram.types.GameHighScore`, *optional*):
+        game_high_score (:obj:`~pyrofork.types.GameHighScore`, *optional*):
             The game score for a user.
             The reply_to_message field will contain the game Message.
 
@@ -304,7 +304,7 @@ class Message(Object, Update):
         forwards (``int``, *optional*):
             Channel post forwards.
 
-        via_bot (:obj:`~pyrogram.types.User`):
+        via_bot (:obj:`~pyrofork.types.User`):
             The information of the bot that generated the message from an inline query of a user.
 
         outgoing (``bool``, *optional*):
@@ -315,12 +315,12 @@ class Message(Object, Update):
 
         matches (List of regex Matches, *optional*):
             A list containing all `Match Objects `_ that match
-            the text of this message. Only applicable when using :obj:`Filters.regex `.
+            the text of this message. Only applicable when using :obj:`Filters.regex `.
 
         command (List of ``str``, *optional*):
             A list containing the command and its arguments, if any.
             E.g.: "/start 1 2 3" would produce ["start", "1", "2", "3"].
-            Only applicable when using :obj:`~pyrogram.filters.command`.
+            Only applicable when using :obj:`~pyrofork.filters.command`.
 
         chat_shared (List of ``int``, *optional*):
             Service message: chat/channel shared
@@ -328,47 +328,47 @@ class Message(Object, Update):
         user_shared (List of ``int``, *optional*):
             Service message: user shared
 
-        forum_topic_created (:obj:`~pyrogram.types.ForumTopicCreated`, *optional*):
+        forum_topic_created (:obj:`~pyrofork.types.ForumTopicCreated`, *optional*):
             Service message: forum topic created
 
-        forum_topic_closed (:obj:`~pyrogram.types.ForumTopicClosed`, *optional*):
+        forum_topic_closed (:obj:`~pyrofork.types.ForumTopicClosed`, *optional*):
             Service message: forum topic closed
 
-        forum_topic_reopened (:obj:`~pyrogram.types.ForumTopicReopened`, *optional*):
+        forum_topic_reopened (:obj:`~pyrofork.types.ForumTopicReopened`, *optional*):
             Service message: forum topic reopened
 
-        forum_topic_edited (:obj:`~pyrogram.types.ForumTopicEdited`, *optional*):
+        forum_topic_edited (:obj:`~pyrofork.types.ForumTopicEdited`, *optional*):
             Service message: forum topic edited
 
-        general_topic_hidden (:obj:`~pyrogram.types.GeneralTopicHidden`, *optional*):
+        general_topic_hidden (:obj:`~pyrofork.types.GeneralTopicHidden`, *optional*):
             Service message: forum general topic hidden
 
-        general_topic_unhidden (:obj:`~pyrogram.types.GeneralTopicUnhidden`, *optional*):
+        general_topic_unhidden (:obj:`~pyrofork.types.GeneralTopicUnhidden`, *optional*):
             Service message: forum general topic unhidden
 
-        giveaway_launcheded (:obj:`~pyrogram.types.GiveawayLaunched`, *optional*):
+        giveaway_launcheded (:obj:`~pyrofork.types.GiveawayLaunched`, *optional*):
             Service message: giveaway launched.
 
-        video_chat_scheduled (:obj:`~pyrogram.types.VideoChatScheduled`, *optional*):
+        video_chat_scheduled (:obj:`~pyrofork.types.VideoChatScheduled`, *optional*):
             Service message: voice chat scheduled.
 
-        video_chat_started (:obj:`~pyrogram.types.VideoChatStarted`, *optional*):
+        video_chat_started (:obj:`~pyrofork.types.VideoChatStarted`, *optional*):
             Service message: the voice chat started.
 
-        video_chat_ended (:obj:`~pyrogram.types.VideoChatEnded`, *optional*):
+        video_chat_ended (:obj:`~pyrofork.types.VideoChatEnded`, *optional*):
             Service message: the voice chat has ended.
 
-        video_chat_members_invited (:obj:`~pyrogram.types.VoiceChatParticipantsInvited`, *optional*):
+        video_chat_members_invited (:obj:`~pyrofork.types.VoiceChatParticipantsInvited`, *optional*):
             Service message: new members were invited to the voice chat.
 
-        web_app_data (:obj:`~pyrogram.types.WebAppData`, *optional*):
+        web_app_data (:obj:`~pyrofork.types.WebAppData`, *optional*):
             Service message: web app data sent to the bot.
 
-        reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+        reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
             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.
 
-        reactions (List of :obj:`~pyrogram.types.Reaction`):
+        reactions (List of :obj:`~pyrofork.types.Reaction`):
             List of the reactions to this message.
 
         link (``str``, *property*):
@@ -386,7 +386,7 @@ class Message(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         message_thread_id: int = None,
         from_user: "types.User" = None,
@@ -594,21 +594,21 @@ class Message(Object, Update):
             timeout (``int``, *optional*):
                 The maximum amount of time to wait for a message.
 
-            filters (:obj:`~pyrogram.filters`, *optional*):
+            filters (:obj:`~pyrofork.filters`, *optional*):
                 A filter to check the incoming message against.
 
             alert (``str`` | ``bool``):
                 The alert to show when the button is clicked by users that are not allowed in from_user_id.
 
         Returns:
-            :obj:`~pyrogram.types.CallbackQuery`: The callback query that was clicked.
+            :obj:`~pyrofork.types.CallbackQuery`: The callback query that was clicked.
         """
         message_id = getattr(self, "id", getattr(self, "message_id", None))
 
         return await self._client.listen(
             filters=filters,
             timeout=timeout,
-            listener_type=pyrogram.enums.ListenerTypes.CALLBACK_QUERY,
+            listener_type=pyrofork.enums.ListenerTypes.CALLBACK_QUERY,
             unallowed_click_alert=alert,
             chat_id=self.chat.id,
             user_id=from_user_id,
@@ -617,7 +617,7 @@ class Message(Object, Update):
 
     @staticmethod
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         message: raw.base.Message,
         users: dict,
         chats: dict,
@@ -1158,7 +1158,7 @@ class Message(Object, Update):
             return f"https://t.me/c/{utils.get_channel_id(self.chat.id)}/{self.id}"
 
     async def get_media_group(self) -> List["types.Message"]:
-        """Bound method *get_media_group* of :obj:`~pyrogram.types.Message`.
+        """Bound method *get_media_group* of :obj:`~pyrofork.types.Message`.
         
         Use as a shortcut for:
         
@@ -1175,7 +1175,7 @@ class Message(Object, Update):
                 await message.get_media_group()
                 
         Returns:
-            List of :obj:`~pyrogram.types.Message`: On success, a list of messages of the media group is returned.
+            List of :obj:`~pyrofork.types.Message`: On success, a list of messages of the media group is returned.
             
         Raises:
             ValueError: In case the passed message id doesn't belong to a media group.
@@ -1203,7 +1203,7 @@ class Message(Object, Update):
         invert_media: bool = None,
         reply_markup=None
     ) -> "Message":
-        """Bound method *reply_text* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_text* of :obj:`~pyrofork.types.Message`.
 
         An alias exists as *reply*.
 
@@ -1231,11 +1231,11 @@ class Message(Object, Update):
                 If *reply_to_message_id* is passed, this parameter will be ignored.
                 Defaults to ``True`` in group chats and ``False`` in private chats.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
@@ -1257,7 +1257,7 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -1270,7 +1270,7 @@ class Message(Object, Update):
             invert_media (``bool``, *optional*):
                 Move web page preview to above the message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1344,7 +1344,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_animation* :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_animation* :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -1375,11 +1375,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Animation caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -1420,11 +1420,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1451,8 +1451,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1523,7 +1523,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_audio* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_audio* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -1554,11 +1554,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Audio caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -1595,11 +1595,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1626,8 +1626,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1690,7 +1690,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_cached_media* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_cached_media* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -1719,11 +1719,11 @@ class Message(Object, Update):
             caption (``bool``, *optional*):
                 Media caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             disable_notification (``bool``, *optional*):
@@ -1741,16 +1741,16 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1787,13 +1787,13 @@ class Message(Object, Update):
         )
 
     async def reply_chat_action(self, action: "enums.ChatAction") -> bool:
-        """Bound method *reply_chat_action* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_chat_action* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
         .. code-block:: python
 
-            from pyrogram import enums
+            from pyrofork import enums
 
             await client.send_chat_action(
                 chat_id=message.chat.id,
@@ -1803,12 +1803,12 @@ class Message(Object, Update):
         Example:
             .. code-block:: python
 
-                from pyrogram import enums
+                from pyrofork import enums
 
                 await message.reply_chat_action(enums.ChatAction.TYPING)
 
         Parameters:
-            action (:obj:`~pyrogram.enums.ChatAction`):
+            action (:obj:`~pyrofork.enums.ChatAction`):
                 Type of action to broadcast.
 
         Returns:
@@ -1843,7 +1843,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_contact* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_contact* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -1893,21 +1893,21 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1969,7 +1969,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_document* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_document* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2006,11 +2006,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Document caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             file_name (``str``, *optional*):
@@ -2037,14 +2037,14 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
             
             schedule_date (:py:obj:`~datetime.datetime`, *optional*):
                 Date when the message will be automatically sent.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -2071,8 +2071,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -2128,7 +2128,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_game* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_game* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2160,12 +2160,12 @@ class Message(Object, Update):
             reply_to_message_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An object for an inline keyboard. If empty, one ‘Play game_title’ button will be shown automatically.
                 If not empty, the first button must launch the game.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -2200,7 +2200,7 @@ class Message(Object, Update):
         quote_entities: List["types.MessageEntity"] = None,
         parse_mode: Optional["enums.ParseMode"] = None
     ) -> "Message":
-        """Bound method *reply_inline_bot_result* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_inline_bot_result* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2240,7 +2240,7 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -2288,7 +2288,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_location* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_location* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2332,21 +2332,21 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -2397,7 +2397,7 @@ class Message(Object, Update):
         quote_entities: List["types.MessageEntity"] = None,
         parse_mode: Optional["enums.ParseMode"] = None
     ) -> List["types.Message"]:
-        """Bound method *reply_media_group* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_media_group* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2415,8 +2415,8 @@ class Message(Object, Update):
 
         Parameters:
             media (``list``):
-                A list containing either :obj:`~pyrogram.types.InputMediaPhoto` or
-                :obj:`~pyrogram.types.InputMediaVideo` objects
+                A list containing either :obj:`~pyrofork.types.InputMediaPhoto` or
+                :obj:`~pyrofork.types.InputMediaVideo` objects
                 describing photos and videos to be sent, must include 2–10 items.
 
             quote (``bool``, *optional*):
@@ -2439,12 +2439,12 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
         Returns:
-            On success, a :obj:`~pyrogram.types.Messages` object is returned containing all the
+            On success, a :obj:`~pyrofork.types.Messages` object is returned containing all the
             single messages sent.
 
         Raises:
@@ -2499,7 +2499,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_photo* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_photo* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2530,11 +2530,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Photo caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -2560,11 +2560,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -2591,8 +2591,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -2663,7 +2663,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_poll* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_poll* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2691,9 +2691,9 @@ class Message(Object, Update):
                 True, if the poll needs to be anonymous.
                 Defaults to True.
 
-            type (:obj`~pyrogram.enums.PollType`, *optional*):
-                Poll type, :obj:`~pyrogram.enums.PollType.QUIZ` or :obj:`~pyrogram.enums.PollType.REGULAR`.
-                Defaults to :obj:`~pyrogram.enums.PollType.REGULAR`.
+            type (:obj`~pyrofork.enums.PollType`, *optional*):
+                Poll type, :obj:`~pyrofork.enums.PollType.QUIZ` or :obj:`~pyrofork.enums.PollType.REGULAR`.
+                Defaults to :obj:`~pyrofork.enums.PollType.REGULAR`.
 
             allows_multiple_answers (``bool``, *optional*):
                 True, if the poll allows multiple answers, ignored for polls in quiz mode.
@@ -2706,11 +2706,11 @@ class Message(Object, Update):
                 Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style
                 poll, 0-200 characters with at most 2 line feeds after entities parsing.
 
-            explanation_parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            explanation_parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            explanation_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            explanation_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the poll explanation, which can be specified instead of
                 *parse_mode*.
 
@@ -2750,11 +2750,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
@@ -2762,12 +2762,12 @@ class Message(Object, Update):
             schedule_date (:py:obj:`~datetime.datetime`, *optional*):
                 Date when the message will be automatically sent.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -2833,7 +2833,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_sticker* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_sticker* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -2876,16 +2876,16 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -2912,8 +2912,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -2972,7 +2972,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "Message":
-        """Bound method *reply_venue* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_venue* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3031,21 +3031,21 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, quote_text are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 For quote_text.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -3113,7 +3113,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_video* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_video* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3144,11 +3144,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Video caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -3196,11 +3196,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -3227,8 +3227,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -3297,7 +3297,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_video_note* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_video_note* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3352,11 +3352,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -3383,8 +3383,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -3446,7 +3446,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "Message":
-        """Bound method *reply_voice* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_voice* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3477,11 +3477,11 @@ class Message(Object, Update):
             caption (``str``, *optional*):
                 Voice message caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -3502,11 +3502,11 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -3533,8 +3533,8 @@ class Message(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -3591,7 +3591,7 @@ class Message(Object, Update):
         protect_content: bool = None,
         reply_markup=None
     ) -> "Message":
-        """Bound method *reply_web_page* of :obj:`~pyrogram.types.Message`.
+        """Bound method *reply_web_page* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3620,11 +3620,11 @@ class Message(Object, Update):
                 If *reply_to_message_id* is passed, this parameter will be ignored.
                 Defaults to ``True`` in group chats and ``False`` in private chats.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             large_media (``bool``, *optional*):
@@ -3648,7 +3648,7 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -3658,7 +3658,7 @@ class Message(Object, Update):
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -3712,7 +3712,7 @@ class Message(Object, Update):
         disable_web_page_preview: bool = None,
         reply_markup: "types.InlineKeyboardMarkup" = None
     ) -> "Message":
-        """Bound method *edit_text* of :obj:`~pyrogram.types.Message`.
+        """Bound method *edit_text* of :obj:`~pyrofork.types.Message`.
 
         An alias exists as *edit*.
 
@@ -3735,21 +3735,21 @@ class Message(Object, Update):
             text (``str``):
                 New text of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
                 Disables link previews for links in this message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Message` is returned.
+            On success, the edited :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -3773,7 +3773,7 @@ class Message(Object, Update):
         caption_entities: List["types.MessageEntity"] = None,
         reply_markup: "types.InlineKeyboardMarkup" = None
     ) -> "Message":
-        """Bound method *edit_caption* of :obj:`~pyrogram.types.Message`.
+        """Bound method *edit_caption* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3794,18 +3794,18 @@ class Message(Object, Update):
             caption (``str``):
                 New caption of the message.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Message` is returned.
+            On success, the edited :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -3824,7 +3824,7 @@ class Message(Object, Update):
         media: "types.InputMedia",
         reply_markup: "types.InlineKeyboardMarkup" = None
     ) -> "Message":
-        """Bound method *edit_media* of :obj:`~pyrogram.types.Message`.
+        """Bound method *edit_media* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3842,14 +3842,14 @@ class Message(Object, Update):
                 await message.edit_media(media)
 
         Parameters:
-            media (:obj:`~pyrogram.types.InputMedia`):
+            media (:obj:`~pyrofork.types.InputMedia`):
                 One of the InputMedia objects describing an animation, audio, document, photo or video.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Message` is returned.
+            On success, the edited :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -3862,7 +3862,7 @@ class Message(Object, Update):
         )
 
     async def edit_reply_markup(self, reply_markup: "types.InlineKeyboardMarkup" = None) -> "Message":
-        """Bound method *edit_reply_markup* of :obj:`~pyrogram.types.Message`.
+        """Bound method *edit_reply_markup* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3880,12 +3880,12 @@ class Message(Object, Update):
                 await message.edit_reply_markup(inline_reply_markup)
 
         Parameters:
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`):
                 An InlineKeyboardMarkup object.
 
         Returns:
             On success, if edited message is sent by the bot, the edited
-            :obj:`~pyrogram.types.Message` is returned, otherwise True is returned.
+            :obj:`~pyrofork.types.Message` is returned, otherwise True is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -3905,7 +3905,7 @@ class Message(Object, Update):
         protect_content: bool = None,
         drop_author: bool = None
     ) -> Union["types.Message", List["types.Message"]]:
-        """Bound method *forward* of :obj:`~pyrogram.types.Message`.
+        """Bound method *forward* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -3983,7 +3983,7 @@ class Message(Object, Update):
             "types.ForceReply"
         ] = object
     ) -> Union["types.Message", List["types.Message"]]:
-        """Bound method *copy* of :obj:`~pyrogram.types.Message`.
+        """Bound method *copy* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4012,11 +4012,11 @@ class Message(Object, Update):
                 If not specified, the original caption is kept.
                 Pass "" (empty string) to remove the caption.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the new caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -4034,7 +4034,7 @@ class Message(Object, Update):
                 Text to quote.
                 for reply_to_message only.
 
-            quote_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+            quote_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
                 List of special entities that appear in quote_text, which can be specified instead of *parse_mode*.
                 for reply_to_message only.
 
@@ -4047,14 +4047,14 @@ class Message(Object, Update):
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
                 If not specified, the original reply markup is kept.
                 Pass None to remove the reply markup.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the copied message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the copied message is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -4204,7 +4204,7 @@ class Message(Object, Update):
             raise ValueError("Can't copy this message")
 
     async def delete(self, revoke: bool = True):
-        """Bound method *delete* of :obj:`~pyrogram.types.Message`.
+        """Bound method *delete* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4240,7 +4240,7 @@ class Message(Object, Update):
         )
 
     async def click(self, x: Union[int, str] = 0, y: int = None, quote: bool = None, timeout: int = 10):
-        """Bound method *click* of :obj:`~pyrogram.types.Message`.
+        """Bound method *click* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for clicking a button attached to the message instead of:
 
@@ -4292,7 +4292,7 @@ class Message(Object, Update):
                 Timeout in seconds.
 
         Returns:
-            -   The result of :meth:`~pyrogram.Client.request_callback_answer` in case of inline callback button clicks.
+            -   The result of :meth:`~pyrofork.Client.request_callback_answer` in case of inline callback button clicks.
             -   The result of :meth:`~Message.reply()` in case of normal button clicks.
             -   A string in case the inline button is a URL, a *switch_inline_query* or a
                 *switch_inline_query_current_chat* button.
@@ -4361,7 +4361,7 @@ class Message(Object, Update):
             await self.reply(button, quote=quote)
 
     async def react(self, emoji: str = "", big: bool = False, add_to_recent: bool = True) -> "types.MessageReactions":
-        """Bound method *react* of :obj:`~pyrogram.types.Message`.
+        """Bound method *react* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4392,7 +4392,7 @@ class Message(Object, Update):
                 This option is applicable only for users.
 
         Returns:
-            :obj: `~pyrogram.types.MessageReactions`: On success, True is returned.
+            :obj: `~pyrofork.types.MessageReactions`: On success, True is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -4408,7 +4408,7 @@ class Message(Object, Update):
     async def retract_vote(
         self,
     ) -> "types.Poll":
-        """Bound method *retract_vote* of :obj:`~pyrogram.types.Message`.
+        """Bound method *retract_vote* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4425,7 +4425,7 @@ class Message(Object, Update):
                 message.retract_vote()
 
         Returns:
-            :obj:`~pyrogram.types.Poll`: On success, the poll with the retracted vote is returned.
+            :obj:`~pyrofork.types.Poll`: On success, the poll with the retracted vote is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -4444,7 +4444,7 @@ class Message(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> str:
-        """Bound method *download* of :obj:`~pyrogram.types.Message`.
+        """Bound method *download* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4515,7 +4515,7 @@ class Message(Object, Update):
         self,
         option: int,
     ) -> "types.Poll":
-        """Bound method *vote* of :obj:`~pyrogram.types.Message`.
+        """Bound method *vote* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4537,7 +4537,7 @@ class Message(Object, Update):
                 Index of the poll option you want to vote for (0 to 9).
 
         Returns:
-            :obj:`~pyrogram.types.Poll`: On success, the poll with the chosen option is returned.
+            :obj:`~pyrofork.types.Poll`: On success, the poll with the chosen option is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -4550,7 +4550,7 @@ class Message(Object, Update):
         )
 
     async def pin(self, disable_notification: bool = False, both_sides: bool = False) -> "types.Message":
-        """Bound method *pin* of :obj:`~pyrogram.types.Message`.
+        """Bound method *pin* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4576,7 +4576,7 @@ class Message(Object, Update):
                 Applicable to private chats only. Defaults to False.
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the service message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the service message is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -4589,7 +4589,7 @@ class Message(Object, Update):
         )
 
     async def unpin(self) -> bool:
-        """Bound method *unpin* of :obj:`~pyrogram.types.Message`.
+        """Bound method *unpin* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -4629,7 +4629,7 @@ class Message(Object, Update):
         filters=None,
         timeout: int = None
     ) -> "Message":
-        """Bound method *ask* of :obj:`~pyrogram.types.Message`.
+        """Bound method *ask* of :obj:`~pyrofork.types.Message`.
         
         Use as a shortcut for:
 
@@ -4648,14 +4648,14 @@ class Message(Object, Update):
                 If *reply_to_message_id* is passed, this parameter will be ignored.
                 Defaults to ``True`` in group chats and ``False`` in private chats.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
                 Pass "markdown" or "md" to enable Markdown-style parsing only.
                 Pass "html" to enable HTML-style parsing only.
                 Pass None to completely disable style parsing.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
@@ -4668,7 +4668,7 @@ class Message(Object, Update):
             reply_to_message_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -4685,7 +4685,7 @@ class Message(Object, Update):
                 message.ask("What is your name?")
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
diff --git a/pyrogram/types/messages_and_media/message_entity.py b/pyrofork/types/messages_and_media/message_entity.py
similarity index 80%
rename from pyrogram/types/messages_and_media/message_entity.py
rename to pyrofork/types/messages_and_media/message_entity.py
index d2bf654d..08f403ee 100644
--- a/pyrogram/types/messages_and_media/message_entity.py
+++ b/pyrofork/types/messages_and_media/message_entity.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
 from ..object import Object
 
 
@@ -30,7 +31,7 @@ class MessageEntity(Object):
     For example, hashtags, usernames, URLs, etc.
 
     Parameters:
-        type (:obj:`~pyrogram.enums.MessageEntityType`):
+        type (:obj:`~pyrofork.enums.MessageEntityType`):
             Type of the entity.
 
         offset (``int``):
@@ -40,23 +41,23 @@ class MessageEntity(Object):
             Length of the entity in UTF-16 code units.
 
         url (``str``, *optional*):
-            For :obj:`~pyrogram.enums.MessageEntityType.TEXT_LINK` only, url that will be opened after user taps on the text.
+            For :obj:`~pyrofork.enums.MessageEntityType.TEXT_LINK` only, url that will be opened after user taps on the text.
 
-        user (:obj:`~pyrogram.types.User`, *optional*):
-            For :obj:`~pyrogram.enums.MessageEntityType.TEXT_MENTION` only, the mentioned user.
+        user (:obj:`~pyrofork.types.User`, *optional*):
+            For :obj:`~pyrofork.enums.MessageEntityType.TEXT_MENTION` only, the mentioned user.
 
         language (``str``, *optional*):
             For "pre" only, the programming language of the entity text.
 
         custom_emoji_id (``int``, *optional*):
-            For :obj:`~pyrogram.enums.MessageEntityType.CUSTOM_EMOJI` only, unique identifier of the custom emoji.
-            Use :meth:`~pyrogram.Client.get_custom_emoji_stickers` to get full information about the sticker.
+            For :obj:`~pyrofork.enums.MessageEntityType.CUSTOM_EMOJI` only, unique identifier of the custom emoji.
+            Use :meth:`~pyrofork.Client.get_custom_emoji_stickers` to get full information about the sticker.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         type: "enums.MessageEntityType",
         offset: int,
         length: int,
diff --git a/pyrogram/types/messages_and_media/message_reaction_count_updated.py b/pyrofork/types/messages_and_media/message_reaction_count_updated.py
similarity index 82%
rename from pyrogram/types/messages_and_media/message_reaction_count_updated.py
rename to pyrofork/types/messages_and_media/message_reaction_count_updated.py
index 9f923a4a..7e847d87 100644
--- a/pyrogram/types/messages_and_media/message_reaction_count_updated.py
+++ b/pyrofork/types/messages_and_media/message_reaction_count_updated.py
@@ -1,26 +1,26 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict, List
 
-import pyrogram
-from pyrogram import raw, types, utils
+import pyrofork
+from pyrofork import raw, types, utils
 from ..object import Object
 from ..update import Update
 
@@ -31,7 +31,7 @@ class MessageReactionCountUpdated(Object, Update):
     These updates are heavy and their changes may be delayed by a few minutes.
 
     Parameters:
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             The chat containing the message the user reacted to
 
         message_id (``int``):
@@ -40,14 +40,14 @@ class MessageReactionCountUpdated(Object, Update):
         date (:py:obj:`~datetime.datetime`):
             Date of change of the reaction
 
-        reactions (:obj:`~pyrogram.types.ReactionCount`):
+        reactions (:obj:`~pyrofork.types.ReactionCount`):
             List of reactions that are present on the message
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chat: "types.Chat",
         message_id: int,
         date: datetime,
@@ -62,7 +62,7 @@ class MessageReactionCountUpdated(Object, Update):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         update: "raw.types.UpdateBotMessageReactions",
         users: Dict[int, "raw.types.User"],
         chats: Dict[int, "raw.types.Chat"]
diff --git a/pyrogram/types/messages_and_media/message_reaction_updated.py b/pyrofork/types/messages_and_media/message_reaction_updated.py
similarity index 83%
rename from pyrogram/types/messages_and_media/message_reaction_updated.py
rename to pyrofork/types/messages_and_media/message_reaction_updated.py
index aa4eb387..2a4d03fc 100644
--- a/pyrogram/types/messages_and_media/message_reaction_updated.py
+++ b/pyrofork/types/messages_and_media/message_reaction_updated.py
@@ -1,26 +1,26 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict, List
 
-import pyrogram
-from pyrogram import raw, types, utils
+import pyrofork
+from pyrofork import raw, types, utils
 from ..object import Object
 from ..update import Update
 
@@ -36,22 +36,22 @@ class MessageReactionUpdated(Object, Update):
         id (``int``):
             Unique identifier of the message inside the chat
             
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             The chat containing the message the user reacted to
 
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             The user that changed the reaction, if the user isn't anonymous
 
-        actor_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        actor_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             The chat on behalf of which the reaction was changed, if the user is anonymous
 
         date (:py:obj:`~datetime.datetime`):
             Date of change of the reaction
 
-        old_reaction (:obj:`~pyrogram.types.ReactionType`):
+        old_reaction (:obj:`~pyrofork.types.ReactionType`):
             Previous list of reaction types that were set by the user
 
-        new_reaction (:obj:`~pyrogram.types.ReactionType`):
+        new_reaction (:obj:`~pyrofork.types.ReactionType`):
             New list of reaction types that have been set by the user
 
     """
@@ -59,7 +59,7 @@ class MessageReactionUpdated(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         from_user: "types.User",
         actor_chat: "types.Chat",
@@ -80,7 +80,7 @@ class MessageReactionUpdated(Object, Update):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         update: "raw.types.UpdateBotMessageReaction",
         users: Dict[int, "raw.types.User"],
         chats: Dict[int, "raw.types.Chat"]
diff --git a/pyrogram/types/messages_and_media/message_reactions.py b/pyrofork/types/messages_and_media/message_reactions.py
similarity index 71%
rename from pyrogram/types/messages_and_media/message_reactions.py
rename to pyrofork/types/messages_and_media/message_reactions.py
index b2b27789..20fab807 100644
--- a/pyrogram/types/messages_and_media/message_reactions.py
+++ b/pyrofork/types/messages_and_media/message_reactions.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from ..object import Object
 
 
@@ -27,14 +28,14 @@ class MessageReactions(Object):
     """Contains information about a message reactions.
 
     Parameters:
-        reactions (List of :obj:`~pyrogram.types.Reaction`):
+        reactions (List of :obj:`~pyrofork.types.Reaction`):
             Reactions list.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         reactions: Optional[List["types.Reaction"]] = None,
     ):
         super().__init__(client)
@@ -43,7 +44,7 @@ class MessageReactions(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         message_reactions: Optional["raw.base.MessageReactions"] = None
     ) -> Optional["MessageReactions"]:
         if not message_reactions:
diff --git a/pyrogram/types/messages_and_media/message_story.py b/pyrofork/types/messages_and_media/message_story.py
similarity index 91%
rename from pyrogram/types/messages_and_media/message_story.py
rename to pyrofork/types/messages_and_media/message_story.py
index 693fb15d..46dd5d02 100644
--- a/pyrogram/types/messages_and_media/message_story.py
+++ b/pyrofork/types/messages_and_media/message_story.py
@@ -16,9 +16,9 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw, types, utils
+from pyrofork import raw, types, utils
 from ..object import Object
 
 
@@ -26,10 +26,10 @@ class MessageStory(Object):
     """Contains information about a forwarded story.
 
     Parameters:
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             Sender of the story.
         
-        sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        sender_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the story. If the story is from channel.
 
         story_id (``int``):
@@ -51,7 +51,7 @@ class MessageStory(Object):
 
     @staticmethod
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         message_story: "raw.types.MessageMediaStory"
     ) -> "MessageStory":
         from_user = None
diff --git a/pyrogram/types/messages_and_media/photo.py b/pyrofork/types/messages_and_media/photo.py
similarity index 86%
rename from pyrogram/types/messages_and_media/photo.py
rename to pyrofork/types/messages_and_media/photo.py
index d6ad9226..b2c32d40 100644
--- a/pyrogram/types/messages_and_media/photo.py
+++ b/pyrofork/types/messages_and_media/photo.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
 from ..object import Object
 
 
@@ -52,14 +53,14 @@ class Photo(Object):
         ttl_seconds (``int``, *optional*):
             Time-to-live seconds, for secret photos.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Available thumbnails of this photo.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         width: int,
diff --git a/pyrogram/types/messages_and_media/poll.py b/pyrofork/types/messages_and_media/poll.py
similarity index 93%
rename from pyrogram/types/messages_and_media/poll.py
rename to pyrofork/types/messages_and_media/poll.py
index fe996027..3799b714 100644
--- a/pyrogram/types/messages_and_media/poll.py
+++ b/pyrofork/types/messages_and_media/poll.py
@@ -20,9 +20,9 @@
 from datetime import datetime
 from typing import List, Union, Optional
 
-import pyrogram
-from pyrogram import raw, enums, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, enums, utils
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 
@@ -37,7 +37,7 @@ class Poll(Object, Update):
         question (``str``):
             Poll question, 1-255 characters.
 
-        options (List of :obj:`~pyrogram.types.PollOption`):
+        options (List of :obj:`~pyrofork.types.PollOption`):
             List of poll options.
 
         total_voter_count (``int``):
@@ -49,7 +49,7 @@ class Poll(Object, Update):
         is_anonymous (``bool``, *optional*):
             True, if the poll is anonymous
 
-        type (:obj:`~pyrogram.enums.PollType`, *optional*):
+        type (:obj:`~pyrofork.enums.PollType`, *optional*):
             Poll type.
 
         allows_multiple_answers (``bool``, *optional*):
@@ -67,7 +67,7 @@ class Poll(Object, Update):
             Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll,
             0-200 characters.
 
-        explanation_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+        explanation_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
             Special entities like usernames, URLs, bot commands, etc. that appear in the explanation.
 
         open_period (``int``, *optional*):
@@ -80,7 +80,7 @@ class Poll(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: str,
         question: str,
         options: List["types.PollOption"],
@@ -207,7 +207,7 @@ class Poll(Object, Update):
         self,
         reply_markup: "types.InlineKeyboardMarkup" = None
     ) -> "types.Poll":
-        """Bound method *stop* of :obj:`~pyrogram.types.Poll`.
+        """Bound method *stop* of :obj:`~pyrofork.types.Poll`.
 
         Use as a shortcut for:
 
@@ -219,7 +219,7 @@ class Poll(Object, Update):
             )
 
         Parameters:
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup`, *optional*):
                 An InlineKeyboardMarkup object.
 
         Example:
@@ -228,7 +228,7 @@ class Poll(Object, Update):
                 message.poll.stop()
 
         Returns:
-            :obj:`~pyrogram.types.Poll`: On success, the stopped poll with the final results is returned.
+            :obj:`~pyrofork.types.Poll`: On success, the stopped poll with the final results is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
diff --git a/pyrogram/types/messages_and_media/poll_option.py b/pyrofork/types/messages_and_media/poll_option.py
similarity index 73%
rename from pyrogram/types/messages_and_media/poll_option.py
rename to pyrofork/types/messages_and_media/poll_option.py
index a40926b0..380ade25 100644
--- a/pyrogram/types/messages_and_media/poll_option.py
+++ b/pyrofork/types/messages_and_media/poll_option.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 from ..object import Object
 
 
@@ -38,7 +39,7 @@ class PollOption(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         text: str,
         voter_count: int,
         data: bytes
diff --git a/pyrogram/types/messages_and_media/reaction.py b/pyrofork/types/messages_and_media/reaction.py
similarity index 83%
rename from pyrogram/types/messages_and_media/reaction.py
rename to pyrofork/types/messages_and_media/reaction.py
index 1295571e..1816d07b 100644
--- a/pyrogram/types/messages_and_media/reaction.py
+++ b/pyrofork/types/messages_and_media/reaction.py
@@ -1,26 +1,26 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -45,7 +45,7 @@ class Reaction(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         emoji: Optional[str] = None,
         custom_emoji_id: Optional[int] = None,
         count: Optional[int] = None,
@@ -60,7 +60,7 @@ class Reaction(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         reaction: "raw.base.Reaction"
     ) -> "Reaction":
         if isinstance(reaction, raw.types.ReactionEmoji):
@@ -77,7 +77,7 @@ class Reaction(Object):
 
     @staticmethod
     def _parse_count(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         reaction_count: "raw.base.ReactionCount"
     ) -> "Reaction":
         reaction = Reaction._parse(client, reaction_count.reaction)
diff --git a/pyrogram/types/messages_and_media/reaction_count.py b/pyrofork/types/messages_and_media/reaction_count.py
similarity index 81%
rename from pyrogram/types/messages_and_media/reaction_count.py
rename to pyrofork/types/messages_and_media/reaction_count.py
index fa46cb08..1edc54bd 100644
--- a/pyrogram/types/messages_and_media/reaction_count.py
+++ b/pyrofork/types/messages_and_media/reaction_count.py
@@ -1,24 +1,24 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-from pyrogram import raw
+from pyrofork import raw
 from .reaction_type import ReactionType
 from ..object import Object
 
@@ -27,7 +27,7 @@ class ReactionCount(Object):
 
     Parameters:
 
-        type (:obj:`~pyrogram.types.ReactionType`):
+        type (:obj:`~pyrofork.types.ReactionType`):
             Reaction type.
 
         total_count (``int``):
diff --git a/pyrogram/types/messages_and_media/reaction_type.py b/pyrofork/types/messages_and_media/reaction_type.py
similarity index 87%
rename from pyrogram/types/messages_and_media/reaction_type.py
rename to pyrofork/types/messages_and_media/reaction_type.py
index a0a9cbf4..9cd27884 100644
--- a/pyrogram/types/messages_and_media/reaction_type.py
+++ b/pyrofork/types/messages_and_media/reaction_type.py
@@ -1,24 +1,24 @@
-#  PyroFork - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of PyroFork.
+#  This file is part of Pyrofork.
 #
-#  PyroFork is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  PyroFork is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with PyroFork.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional
 
-from pyrogram import enums, raw
+from pyrofork import enums, raw
 from ..object import Object
 
 class ReactionType(Object):
diff --git a/pyrogram/types/messages_and_media/sticker.py b/pyrofork/types/messages_and_media/sticker.py
similarity index 90%
rename from pyrogram/types/messages_and_media/sticker.py
rename to pyrofork/types/messages_and_media/sticker.py
index de266b2f..204b0e48 100644
--- a/pyrogram/types/messages_and_media/sticker.py
+++ b/pyrofork/types/messages_and_media/sticker.py
@@ -1,29 +1,30 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List, Dict, Type
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.errors import StickersetInvalid
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.errors import StickersetInvalid
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -68,7 +69,7 @@ class Sticker(Object):
         set_name (``str``, *optional*):
             Name of the sticker set to which the sticker belongs.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Sticker thumbnails in the .webp or .jpg format.
     """
 
@@ -77,7 +78,7 @@ class Sticker(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         width: int,
diff --git a/pyrogram/types/messages_and_media/stickerset.py b/pyrofork/types/messages_and_media/stickerset.py
similarity index 96%
rename from pyrogram/types/messages_and_media/stickerset.py
rename to pyrofork/types/messages_and_media/stickerset.py
index 385b1fe5..88edc54c 100644
--- a/pyrogram/types/messages_and_media/stickerset.py
+++ b/pyrofork/types/messages_and_media/stickerset.py
@@ -18,9 +18,9 @@
 
 from typing import List, Optional, Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
+import pyrofork
+from pyrofork import raw
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
 from ..object import Object
 
 
diff --git a/pyrogram/types/messages_and_media/stories_privacy_rules.py b/pyrofork/types/messages_and_media/stories_privacy_rules.py
similarity index 95%
rename from pyrogram/types/messages_and_media/stories_privacy_rules.py
rename to pyrofork/types/messages_and_media/stories_privacy_rules.py
index a709c598..1bf21e38 100644
--- a/pyrogram/types/messages_and_media/stories_privacy_rules.py
+++ b/pyrofork/types/messages_and_media/stories_privacy_rules.py
@@ -16,14 +16,14 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import enums, raw
+from pyrofork import enums, raw
 from ..object import Object
 
 class StoriesPrivacyRules(Object):
     """A story privacy.
 
     Parameters:
-        type (:obj:`~pyrogram.enums.StoriesPrivacyRules`):
+        type (:obj:`~pyrofork.enums.StoriesPrivacyRules`):
             Story privacy type.
     """
 
diff --git a/pyrogram/types/messages_and_media/story.py b/pyrofork/types/messages_and_media/story.py
similarity index 90%
rename from pyrogram/types/messages_and_media/story.py
rename to pyrofork/types/messages_and_media/story.py
index ea994063..3a36eee8 100644
--- a/pyrogram/types/messages_and_media/story.py
+++ b/pyrofork/types/messages_and_media/story.py
@@ -16,10 +16,10 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from datetime import datetime
-from pyrogram import enums, raw, types, utils
+from pyrofork import enums, raw, types, utils
 from typing import BinaryIO, Callable, List, Optional, Union
 from ..object import Object
 from ..update import Update
@@ -31,10 +31,10 @@ class Story(Object, Update):
         id (``int``):
             Unique story identifier.
 
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             Sender of the story.
         
-        sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        sender_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the story. If the story is from channel.
 
         date (:py:obj:`~datetime.datetime`, *optional*):
@@ -43,7 +43,7 @@ class Story(Object, Update):
         expire_date (:py:obj:`~datetime.datetime`, *optional*):
             Date the story will be expired.
 
-        media (:obj:`~pyrogram.enums.MessageMediaType`, *optional*):
+        media (:obj:`~pyrofork.enums.MessageMediaType`, *optional*):
             The media type of the Story.
             This field will contain the enumeration type of the media message.
             You can use ``media = getattr(message, message.media.value)`` to access the media message.
@@ -51,13 +51,13 @@ class Story(Object, Update):
         has_protected_content (``bool``, *optional*):
             True, if the story can't be forwarded.
 
-        animation (:obj:`~pyrogram.types.Animation`, *optional*):
+        animation (:obj:`~pyrofork.types.Animation`, *optional*):
             Story is an animation, information about the animation.
 
-        photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        photo (:obj:`~pyrofork.types.Photo`, *optional*):
             Story is a photo, information about the photo.
 
-        video (:obj:`~pyrogram.types.Video`, *optional*):
+        video (:obj:`~pyrofork.types.Video`, *optional*):
             Story is a video, information about the video.
         
         edited (``bool``, *optional*):
@@ -81,17 +81,17 @@ class Story(Object, Update):
         caption (``str``, *optional*):
             Caption for the Story, 0-1024 characters.
 
-        caption_entities (List of :obj:`~pyrogram.types.MessageEntity`, *optional*):
+        caption_entities (List of :obj:`~pyrofork.types.MessageEntity`, *optional*):
             For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the caption.
 
-        views (:obj:`~pyrogram.types.StoryViews`, *optional*):
+        views (:obj:`~pyrofork.types.StoryViews`, *optional*):
             Stories views.
 
-        forward_from (:obj:`~pyrogram.types.StoryForwardHeader`, *optional*):
+        forward_from (:obj:`~pyrofork.types.StoryForwardHeader`, *optional*):
             Story is a forwarded story.
             Information about the original story.
 
-        privacy (:obj:`~pyrogram.enums.StoryPrivacy`, *optional*):
+        privacy (:obj:`~pyrofork.enums.StoryPrivacy`, *optional*):
             Story privacy.
 
         allowed_users (List of ``int``, *optional*):
@@ -100,8 +100,8 @@ class Story(Object, Update):
         denied_users (List of ``int``, *optional*):
             List of user_id whos denied to view the story.
 
-        media_areas (List of :obj:`~pyrogram.types.MediaArea`, *optional*):
-            List of :obj:`~pyrogram.types.MediaArea` object in story.
+        media_areas (List of :obj:`~pyrofork.types.MediaArea`, *optional*):
+            List of :obj:`~pyrofork.types.MediaArea` object in story.
     """
 
     # TODO: fix Allowed Chats
@@ -109,7 +109,7 @@ class Story(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         from_user: "types.User" = None,
         sender_chat: "types.Chat" = None,
@@ -168,7 +168,7 @@ class Story(Object, Update):
 
     @staticmethod
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         stories: raw.base.StoryItem,
         peer: Union["raw.types.PeerChannel", "raw.types.PeerUser"]
     ) -> "Story":
@@ -301,7 +301,7 @@ class Story(Object, Update):
         protect_content: bool = None,
         reply_markup=None
     ) -> "types.Message":
-        """Bound method *reply_text* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_text* of :obj:`~pyrofork.types.Story`.
 
         An alias exists as *reply*.
 
@@ -324,11 +324,11 @@ class Story(Object, Update):
             text (``str``):
                 Text of the message to be sent.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in message text, which can be specified instead of *parse_mode*.
 
             disable_web_page_preview (``bool``, *optional*):
@@ -347,7 +347,7 @@ class Story(Object, Update):
             protect_content (``bool``, *optional*):
                 Protects the contents of the sent message from forwarding and saving.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -399,7 +399,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_animation* :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_animation* :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -426,11 +426,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Animation caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -462,7 +462,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -489,8 +489,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -541,7 +541,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_audio* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_audio* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -568,11 +568,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Audio caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -601,7 +601,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -628,8 +628,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -672,7 +672,7 @@ class Story(Object, Update):
             "types.ForceReply"
         ] = None
     ) -> "types.Message":
-        """Bound method *reply_cached_media* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_cached_media* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -697,11 +697,11 @@ class Story(Object, Update):
             caption (``bool``, *optional*):
                 Media caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             disable_notification (``bool``, *optional*):
@@ -711,12 +711,12 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -746,7 +746,7 @@ class Story(Object, Update):
         disable_notification: bool = None,
         reply_to_story_id: int = None
     ) -> List["types.Message"]:
-        """Bound method *reply_media_group* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_media_group* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -765,8 +765,8 @@ class Story(Object, Update):
 
         Parameters:
             media (``list``):
-                A list containing either :obj:`~pyrogram.types.InputMediaPhoto` or
-                :obj:`~pyrogram.types.InputMediaVideo` objects
+                A list containing either :obj:`~pyrofork.types.InputMediaPhoto` or
+                :obj:`~pyrofork.types.InputMediaVideo` objects
                 describing photos and videos to be sent, must include 2–10 items.
 
             disable_notification (``bool``, *optional*):
@@ -777,7 +777,7 @@ class Story(Object, Update):
                 If the message is a reply, ID of the original message.
 
         Returns:
-            On success, a :obj:`~pyrogram.types.Messages` object is returned containing all the
+            On success, a :obj:`~pyrofork.types.Messages` object is returned containing all the
             single messages sent.
 
         Raises:
@@ -812,7 +812,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_photo* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_photo* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -839,11 +839,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Photo caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -861,7 +861,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -888,8 +888,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -927,7 +927,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_sticker* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_sticker* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -958,7 +958,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -985,8 +985,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1031,7 +1031,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_video* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_video* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1058,11 +1058,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Video caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             has_spoiler (``bool``, *optional*):
@@ -1102,7 +1102,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message.
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1129,8 +1129,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1177,7 +1177,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_video_note* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_video_note* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1220,7 +1220,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1247,8 +1247,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1288,7 +1288,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> "types.Message":
-        """Bound method *reply_voice* of :obj:`~pyrogram.types.Story`.
+        """Bound method *reply_voice* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1315,11 +1315,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Voice message caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             duration (``int``, *optional*):
@@ -1332,7 +1332,7 @@ class Story(Object, Update):
             reply_to_story_id (``int``, *optional*):
                 If the message is a reply, ID of the original message
 
-            reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
+            reply_markup (:obj:`~pyrofork.types.InlineKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardMarkup` | :obj:`~pyrofork.types.ReplyKeyboardRemove` | :obj:`~pyrofork.types.ForceReply`, *optional*):
                 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.
 
@@ -1359,8 +1359,8 @@ class Story(Object, Update):
                 You can either keep ``*args`` or add every single extra argument in your function signature.
 
         Returns:
-            On success, the sent :obj:`~pyrogram.types.Message` is returned.
-            In case the upload is deliberately stopped with :meth:`~pyrogram.Client.stop_transmission`, None is returned
+            On success, the sent :obj:`~pyrofork.types.Message` is returned.
+            In case the upload is deliberately stopped with :meth:`~pyrofork.Client.stop_transmission`, None is returned
             instead.
 
         Raises:
@@ -1384,7 +1384,7 @@ class Story(Object, Update):
         )
 
     async def delete(self):
-        """Bound method *delete* of :obj:`~pyrogram.types.Story`.
+        """Bound method *delete* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1414,7 +1414,7 @@ class Story(Object, Update):
         self,
         animation: Union[str, BinaryIO]
     ) -> "types.Story":
-        """Bound method *edit_animation* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit_animation* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1435,7 +1435,7 @@ class Story(Object, Update):
                 New animation of the story.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1461,7 +1461,7 @@ class Story(Object, Update):
         caption_entities: List["types.MessageEntity"] = None,
         media_areas: List["types.InputMediaArea"] = None
     ) -> "types.Story":
-        """Bound method *edit* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1502,7 +1502,7 @@ class Story(Object, Update):
                 pass a file path as string to upload a new video that exists on your local machine, or
                 pass a binary file-like object with its attribute ".name" set for in-memory uploads.
 
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
 
             allowed_users (List of ``int``, *optional*):
@@ -1514,18 +1514,18 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Story caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
-            media_areas (List of :obj:`~pyrogram.types.InputMediaArea`):
+            media_areas (List of :obj:`~pyrofork.types.InputMediaArea`):
                 List of media area object to be included in story.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1553,7 +1553,7 @@ class Story(Object, Update):
         parse_mode: Optional["enums.ParseMode"] = None,
         caption_entities: List["types.MessageEntity"] = None
     ) -> "types.Story":
-        """Bound method *edit_caption* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit_caption* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1573,15 +1573,15 @@ class Story(Object, Update):
             caption (``str``):
                 New caption of the story.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1598,7 +1598,7 @@ class Story(Object, Update):
         self,
         photo: Union[str, BinaryIO]
     ) -> "types.Story":
-        """Bound method *edit_photo* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit_photo* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1619,7 +1619,7 @@ class Story(Object, Update):
                 New photo of the story.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1638,7 +1638,7 @@ class Story(Object, Update):
         #allowed_chats: List[int] = None,
         #denied_chats: List[int] = None
     ) -> "types.Story":
-        """Bound method *edit_privacy* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit_privacy* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1655,7 +1655,7 @@ class Story(Object, Update):
                 await story.edit_privacy(enums.StoriesPrivacyRules.PUBLIC)
 
         Parameters:
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
 
             allowed_users (List of ``int``, *optional*):
@@ -1665,7 +1665,7 @@ class Story(Object, Update):
                 List of user_id whos denied to view the story.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1684,7 +1684,7 @@ class Story(Object, Update):
         self,
         video: Union[str, BinaryIO]
     ) -> "types.Story":
-        """Bound method *edit_video* of :obj:`~pyrogram.types.Story`.
+        """Bound method *edit_video* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1705,7 +1705,7 @@ class Story(Object, Update):
                 New video of the story.
 
         Returns:
-            On success, the edited :obj:`~pyrogram.types.Story` is returned.
+            On success, the edited :obj:`~pyrofork.types.Story` is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1717,7 +1717,7 @@ class Story(Object, Update):
         )
 
     async def export_link(self) -> "types.ExportedStoryLink":
-        """Bound method *export_link* of :obj:`~pyrogram.types.Story`.
+        """Bound method *export_link* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
@@ -1734,7 +1734,7 @@ class Story(Object, Update):
                 await story.export_link()
 
         Returns:
-            :obj:`~pyrogram.types.ExportedStoryLink`: a single story link is returned.
+            :obj:`~pyrofork.types.ExportedStoryLink`: a single story link is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -1756,7 +1756,7 @@ class Story(Object, Update):
         caption_entities: List["types.MessageEntity"] = None,
         period: int = None
     ):
-        """Bound method *forward* of :obj:`~pyrogram.types.Message`.
+        """Bound method *forward* of :obj:`~pyrofork.types.Message`.
 
         Use as a shortcut for:
 
@@ -1773,9 +1773,9 @@ class Story(Object, Update):
                 Unique identifier (int) of the target channel.
                 If you want to forward story to a channel.
 
-            privacy (:obj:`~pyrogram.enums.StoriesPrivacyRules`, *optional*):
+            privacy (:obj:`~pyrofork.enums.StoriesPrivacyRules`, *optional*):
                 Story privacy.
-                Defaults to :obj:`~pyrogram.enums.StoriesPrivacyRules.PUBLIC`
+                Defaults to :obj:`~pyrofork.enums.StoriesPrivacyRules.PUBLIC`
 
             allowed_users (List of ``int``, *optional*):
                 List of user_id whos allowed to view the story.
@@ -1794,11 +1794,11 @@ class Story(Object, Update):
             caption (``str``, *optional*):
                 Story caption, 0-1024 characters.
 
-            parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
+            parse_mode (:obj:`~pyrofork.enums.ParseMode`, *optional*):
                 By default, texts are parsed using both Markdown and HTML styles.
                 You can combine both syntaxes together.
 
-            caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
+            caption_entities (List of :obj:`~pyrofork.types.MessageEntity`):
                 List of special entities that appear in the caption, which can be specified instead of *parse_mode*.
 
             period (``int``, *optional*):
@@ -1806,7 +1806,7 @@ class Story(Object, Update):
                 only for premium users.
 
         Returns:
-            :obj:`~pyrogram.types.Story` a single story is returned.
+            :obj:`~pyrofork.types.Story` a single story is returned.
 
         Raises:
             ValueError: In case of invalid arguments.
@@ -1834,7 +1834,7 @@ class Story(Object, Update):
         progress: Callable = None,
         progress_args: tuple = ()
     ) -> str:
-        """Bound method *download* of :obj:`~pyrogram.types.Story`.
+        """Bound method *download* of :obj:`~pyrofork.types.Story`.
 
         Use as a shortcut for:
 
diff --git a/pyrogram/types/messages_and_media/story_deleted.py b/pyrofork/types/messages_and_media/story_deleted.py
similarity index 89%
rename from pyrogram/types/messages_and_media/story_deleted.py
rename to pyrofork/types/messages_and_media/story_deleted.py
index afe79d5d..e52eb8fb 100644
--- a/pyrogram/types/messages_and_media/story_deleted.py
+++ b/pyrofork/types/messages_and_media/story_deleted.py
@@ -16,9 +16,9 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 from typing import Union
 from ..object import Object
 from ..update import Update
@@ -30,17 +30,17 @@ class StoryDeleted(Object, Update):
         id (``int``):
             Unique story identifier.
 
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             Sender of the story.
         
-        sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        sender_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the story. If the story is from channel.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         from_user: "types.User" = None,
         sender_chat: "types.Chat" = None
@@ -52,7 +52,7 @@ class StoryDeleted(Object, Update):
         self.sender_chat = sender_chat
 
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         stories: raw.base.StoryItem,
         peer: Union["raw.types.PeerChannel", "raw.types.PeerUser"]
     ) -> "StoryDeleted":
diff --git a/pyrogram/types/messages_and_media/story_forward_header.py b/pyrofork/types/messages_and_media/story_forward_header.py
similarity index 92%
rename from pyrogram/types/messages_and_media/story_forward_header.py
rename to pyrofork/types/messages_and_media/story_forward_header.py
index 2f6b5c85..ffec2a1a 100644
--- a/pyrogram/types/messages_and_media/story_forward_header.py
+++ b/pyrofork/types/messages_and_media/story_forward_header.py
@@ -16,8 +16,8 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw, types, utils
+import pyrofork
+from pyrofork import raw, types, utils
 from ..object import Object
 
 
@@ -26,13 +26,13 @@ class StoryForwardHeader(Object):
 
 
     Parameters:
-        user (:obj:`~pyrogram.types.User`, *optional*):
+        user (:obj:`~pyrofork.types.User`, *optional*):
             Sender of the story.
 
         sender_name (``str``, *optional*):
             For stories forwarded from users who have hidden their accounts, name of the user.
         
-        chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the story. If the story is from channel.
 
         story_id (``int``):
@@ -59,7 +59,7 @@ class StoryForwardHeader(Object):
         self.is_modified = is_modified
 
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         fwd_header: "raw.types.StoryFwdHeader"
     ) -> "StoryForwardHeader":
         user = None
diff --git a/pyrogram/types/messages_and_media/story_skipped.py b/pyrofork/types/messages_and_media/story_skipped.py
similarity index 91%
rename from pyrogram/types/messages_and_media/story_skipped.py
rename to pyrofork/types/messages_and_media/story_skipped.py
index 788c1fc5..60bd0b32 100644
--- a/pyrogram/types/messages_and_media/story_skipped.py
+++ b/pyrofork/types/messages_and_media/story_skipped.py
@@ -16,10 +16,10 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 from datetime import datetime
-from pyrogram import raw, types, utils
+from pyrofork import raw, types, utils
 from typing import Union
 from ..object import Object
 from ..update import Update
@@ -31,10 +31,10 @@ class StorySkipped(Object, Update):
         id (``int``):
             Unique story identifier.
 
-        from_user (:obj:`~pyrogram.types.User`, *optional*):
+        from_user (:obj:`~pyrofork.types.User`, *optional*):
             Sender of the story.
         
-        sender_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        sender_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Sender of the story. If the story is from channel.
 
         date (:py:obj:`~datetime.datetime`, *optional*):
@@ -50,7 +50,7 @@ class StorySkipped(Object, Update):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         from_user: "types.User" = None,
         sender_chat: "types.Chat" = None,
@@ -68,7 +68,7 @@ class StorySkipped(Object, Update):
         self.close_friends = close_friends
 
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         stories: raw.base.StoryItem,
         peer: Union["raw.types.PeerChannel", "raw.types.PeerUser"]
     ) -> "StorySkipped":
diff --git a/pyrogram/types/messages_and_media/story_views.py b/pyrofork/types/messages_and_media/story_views.py
similarity index 98%
rename from pyrogram/types/messages_and_media/story_views.py
rename to pyrofork/types/messages_and_media/story_views.py
index 662636a9..332f30d8 100644
--- a/pyrogram/types/messages_and_media/story_views.py
+++ b/pyrofork/types/messages_and_media/story_views.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from typing import List
 from ..object import Object
 
diff --git a/pyrogram/types/messages_and_media/stripped_thumbnail.py b/pyrofork/types/messages_and_media/stripped_thumbnail.py
similarity index 70%
rename from pyrogram/types/messages_and_media/stripped_thumbnail.py
rename to pyrofork/types/messages_and_media/stripped_thumbnail.py
index e9756607..7b120f9a 100644
--- a/pyrogram/types/messages_and_media/stripped_thumbnail.py
+++ b/pyrofork/types/messages_and_media/stripped_thumbnail.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
+import pyrofork
+from pyrofork import raw
 from ..object import Object
 
 
@@ -32,7 +33,7 @@ class StrippedThumbnail(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         data: bytes
     ):
         super().__init__(client)
diff --git a/pyrogram/types/messages_and_media/thumbnail.py b/pyrofork/types/messages_and_media/thumbnail.py
similarity index 86%
rename from pyrogram/types/messages_and_media/thumbnail.py
rename to pyrofork/types/messages_and_media/thumbnail.py
index b9cb93e1..5889e9df 100644
--- a/pyrogram/types/messages_and_media/thumbnail.py
+++ b/pyrofork/types/messages_and_media/thumbnail.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Optional, Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
+import pyrofork
+from pyrofork import raw
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
 from ..object import Object
 
 
@@ -48,7 +49,7 @@ class Thumbnail(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         width: int,
diff --git a/pyrogram/types/messages_and_media/venue.py b/pyrofork/types/messages_and_media/venue.py
similarity index 77%
rename from pyrogram/types/messages_and_media/venue.py
rename to pyrofork/types/messages_and_media/venue.py
index 8a26f600..a09e8892 100644
--- a/pyrogram/types/messages_and_media/venue.py
+++ b/pyrofork/types/messages_and_media/venue.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -26,7 +27,7 @@ class Venue(Object):
     """A venue.
 
     Parameters:
-        location (:obj:`~pyrogram.types.Location`):
+        location (:obj:`~pyrofork.types.Location`):
             Venue location.
 
         title (``str``):
@@ -47,7 +48,7 @@ class Venue(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         location: "types.Location",
         title: str,
         address: str,
diff --git a/pyrogram/types/messages_and_media/video.py b/pyrofork/types/messages_and_media/video.py
similarity index 86%
rename from pyrogram/types/messages_and_media/video.py
rename to pyrofork/types/messages_and_media/video.py
index b50f9fca..2a21824b 100644
--- a/pyrogram/types/messages_and_media/video.py
+++ b/pyrofork/types/messages_and_media/video.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -64,14 +65,14 @@ class Video(Object):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the video was sent.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Video thumbnails.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         width: int,
diff --git a/pyrogram/types/messages_and_media/video_note.py b/pyrofork/types/messages_and_media/video_note.py
similarity index 83%
rename from pyrogram/types/messages_and_media/video_note.py
rename to pyrofork/types/messages_and_media/video_note.py
index 3e6b40d0..023774b9 100644
--- a/pyrogram/types/messages_and_media/video_note.py
+++ b/pyrofork/types/messages_and_media/video_note.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import List
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -52,14 +53,14 @@ class VideoNote(Object):
         date (:py:obj:`~datetime.datetime`, *optional*):
             Date the video note was sent.
 
-        thumbs (List of :obj:`~pyrogram.types.Thumbnail`, *optional*):
+        thumbs (List of :obj:`~pyrofork.types.Thumbnail`, *optional*):
             Video thumbnails.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         length: int,
diff --git a/pyrogram/types/messages_and_media/voice.py b/pyrofork/types/messages_and_media/voice.py
similarity index 84%
rename from pyrogram/types/messages_and_media/voice.py
rename to pyrofork/types/messages_and_media/voice.py
index 8d1c15f6..f654bbbb 100644
--- a/pyrogram/types/messages_and_media/voice.py
+++ b/pyrofork/types/messages_and_media/voice.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType
 from ..object import Object
 
 
@@ -54,7 +55,7 @@ class Voice(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         file_id: str,
         file_unique_id: str,
         duration: int,
diff --git a/pyrogram/types/messages_and_media/web_app_data.py b/pyrofork/types/messages_and_media/web_app_data.py
similarity index 76%
rename from pyrogram/types/messages_and_media/web_app_data.py
rename to pyrofork/types/messages_and_media/web_app_data.py
index b9a471fd..32746afa 100644
--- a/pyrogram/types/messages_and_media/web_app_data.py
+++ b/pyrofork/types/messages_and_media/web_app_data.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/messages_and_media/web_page.py b/pyrofork/types/messages_and_media/web_page.py
similarity index 87%
rename from pyrogram/types/messages_and_media/web_page.py
rename to pyrofork/types/messages_and_media/web_page.py
index 34e51d88..1e24ae05 100644
--- a/pyrogram/types/messages_and_media/web_page.py
+++ b/pyrofork/types/messages_and_media/web_page.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -50,19 +51,19 @@ class WebPage(Object):
         description (``str``, *optional*):
             Description of this webpage.
 
-        audio (:obj:`~pyrogram.types.Audio`, *optional*):
+        audio (:obj:`~pyrofork.types.Audio`, *optional*):
             Webpage preview is an audio file, information about the file.
 
-        document (:obj:`~pyrogram.types.Document`, *optional*):
+        document (:obj:`~pyrofork.types.Document`, *optional*):
             Webpage preview is a general file, information about the file.
 
-        photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        photo (:obj:`~pyrofork.types.Photo`, *optional*):
             Webpage preview is a photo, information about the photo.
 
-        animation (:obj:`~pyrogram.types.Animation`, *optional*):
+        animation (:obj:`~pyrofork.types.Animation`, *optional*):
             Webpage preview is an animation, information about the animation.
 
-        video (:obj:`~pyrogram.types.Video`, *optional*):
+        video (:obj:`~pyrofork.types.Video`, *optional*):
             Webpage preview is a video, information about the video.
 
         embed_url (``str``, *optional*):
@@ -87,7 +88,7 @@ class WebPage(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: str,
         url: str,
         display_url: str,
diff --git a/pyrogram/types/messages_and_media/web_page_empty.py b/pyrofork/types/messages_and_media/web_page_empty.py
similarity index 72%
rename from pyrogram/types/messages_and_media/web_page_empty.py
rename to pyrofork/types/messages_and_media/web_page_empty.py
index 69ecb8ef..cd67cb7c 100644
--- a/pyrogram/types/messages_and_media/web_page_empty.py
+++ b/pyrofork/types/messages_and_media/web_page_empty.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
diff --git a/pyrogram/types/messages_and_media/web_page_preview.py b/pyrofork/types/messages_and_media/web_page_preview.py
similarity index 81%
rename from pyrogram/types/messages_and_media/web_page_preview.py
rename to pyrofork/types/messages_and_media/web_page_preview.py
index a178a199..35b71bf4 100644
--- a/pyrogram/types/messages_and_media/web_page_preview.py
+++ b/pyrofork/types/messages_and_media/web_page_preview.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 from typing import Union
 
@@ -27,7 +28,7 @@ class WebPagePreview(Object):
     """A web page preview.
 
     Parameters:
-        webpage (:obj:`~pyrogram.types.WebPageEmpty` | :obj:`~pyrogram.types.WebPage`):
+        webpage (:obj:`~pyrofork.types.WebPageEmpty` | :obj:`~pyrofork.types.WebPage`):
             Web Page Information.
 
         force_large_media (``bool``, *optional*):
diff --git a/pyrogram/types/object.py b/pyrofork/types/object.py
similarity index 82%
rename from pyrogram/types/object.py
rename to pyrofork/types/object.py
index 3253c8ec..b4f29b1b 100644
--- a/pyrogram/types/object.py
+++ b/pyrofork/types/object.py
@@ -1,40 +1,41 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import typing
 from datetime import datetime
 from enum import Enum
 from json import dumps
 
-import pyrogram
+import pyrofork
 
 
 class Object:
-    def __init__(self, client: "pyrogram.Client" = None):
+    def __init__(self, client: "pyrofork.Client" = None):
         self._client = client
 
-    def bind(self, client: "pyrogram.Client"):
-        """Bind a Client instance to this and to all nested Pyrogram objects.
+    def bind(self, client: "pyrofork.Client"):
+        """Bind a Client instance to this and to all nested Pyrofork objects.
 
         Parameters:
-            client (:obj:`~pyrogram.types.Client`):
+            client (:obj:`~pyrofork.types.Client`):
                 The Client instance to bind this object with. Useful to re-enable bound methods after serializing and
-                deserializing Pyrogram objects with ``repr`` and ``eval``.
+                deserializing Pyrofork objects with ``repr`` and ``eval``.
         """
         self._client = client
 
@@ -49,7 +50,7 @@ class Object:
         if isinstance(obj, bytes):
             return repr(obj)
 
-        # https://t.me/pyrogramchat/167281
+        # https://t.me/pyroforkchat/167281
         # Instead of re.Match, which breaks for python <=3.6
         if isinstance(obj, typing.Match):
             return repr(obj)
@@ -76,7 +77,7 @@ class Object:
         return dumps(self, indent=4, default=Object.default, ensure_ascii=False)
 
     def __repr__(self) -> str:
-        return "pyrogram.types.{}({})".format(
+        return "pyrofork.types.{}({})".format(
             self.__class__.__name__,
             ", ".join(
                 f"{attr}={repr(getattr(self, attr))}"
diff --git a/pyrogram/types/pyromod/__init__.py b/pyrofork/types/pyromod/__init__.py
similarity index 100%
rename from pyrogram/types/pyromod/__init__.py
rename to pyrofork/types/pyromod/__init__.py
diff --git a/pyrogram/types/pyromod/identifier.py b/pyrofork/types/pyromod/identifier.py
similarity index 100%
rename from pyrogram/types/pyromod/identifier.py
rename to pyrofork/types/pyromod/identifier.py
diff --git a/pyrogram/types/pyromod/listener.py b/pyrofork/types/pyromod/listener.py
similarity index 88%
rename from pyrogram/types/pyromod/listener.py
rename to pyrofork/types/pyromod/listener.py
index 81c335d6..0ef8f979 100644
--- a/pyrogram/types/pyromod/listener.py
+++ b/pyrofork/types/pyromod/listener.py
@@ -21,7 +21,7 @@ from asyncio import Future
 from dataclasses import dataclass
 from typing import Callable
 
-import pyrogram
+import pyrofork
 
 from .identifier import Identifier
 
@@ -31,19 +31,19 @@ class Listener:
     It enables you to wait for specific events like messages or callback queries and provides mechanisms for defining the conditions and filters that trigger these listeners.
 
     Parameters:
-        listener_type (:obj:`~pyrogram.enums.ListenerTypes`):
+        listener_type (:obj:`~pyrofork.enums.ListenerTypes`):
             The type of listener that specifies the event you want to listen for.
             It can be either a “message” or a “callback_query.”
 
-        filters (:meth:`~pyrogram.filters.Filter`):
+        filters (:meth:`~pyrofork.filters.Filter`):
             The chat ID to match. If None, it is not considered for matching.
 
         unallowed_click_alert (``bool``):
             A flag that determines whether to send an alert if a button click event doesn’t match the filter conditions.
             Setting this to True will send an alert message to the user in such cases.
 
-        identifier (:obj:`~pyrogram.types.Identifier`):
-            An :obj:`~pyrogram.types.Identifier` instance that defines the criteria for the event.
+        identifier (:obj:`~pyrofork.types.Identifier`):
+            An :obj:`~pyrofork.types.Identifier` instance that defines the criteria for the event.
             It includes properties like chat_id, message_id, from_user_id, and inline_message_id that you want to match against the incoming event.
 
         future (:obj:`~asyncio.Future`, *optional*):
@@ -53,8 +53,8 @@ class Listener:
         callback (``Callable``, *optional*):
             The callback to call when the listener is fulfilled.
     """
-    listener_type: pyrogram.enums.ListenerTypes
-    filters: "pyrogram.filters.Filter"
+    listener_type: pyrofork.enums.ListenerTypes
+    filters: "pyrofork.filters.Filter"
     unallowed_click_alert: bool
     identifier: Identifier
     future: Future = None
diff --git a/pyrogram/types/update.py b/pyrofork/types/update.py
similarity index 91%
rename from pyrogram/types/update.py
rename to pyrofork/types/update.py
index 1f304704..09001f7a 100644
--- a/pyrogram/types/update.py
+++ b/pyrofork/types/update.py
@@ -17,14 +17,14 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-import pyrogram
+import pyrofork
 
 
 class Update:
     @staticmethod
     def stop_propagation():
-        raise pyrogram.StopPropagation
+        raise pyrofork.StopPropagation
 
     @staticmethod
     def continue_propagation():
-        raise pyrogram.ContinuePropagation
+        raise pyrofork.ContinuePropagation
diff --git a/pyrogram/types/user_and_chats/__init__.py b/pyrofork/types/user_and_chats/__init__.py
similarity index 100%
rename from pyrogram/types/user_and_chats/__init__.py
rename to pyrofork/types/user_and_chats/__init__.py
diff --git a/pyrogram/types/user_and_chats/chat.py b/pyrofork/types/user_and_chats/chat.py
similarity index 89%
rename from pyrogram/types/user_and_chats/chat.py
rename to pyrofork/types/user_and_chats/chat.py
index e5c538a7..e1c6a864 100644
--- a/pyrogram/types/user_and_chats/chat.py
+++ b/pyrofork/types/user_and_chats/chat.py
@@ -20,10 +20,10 @@
 from datetime import datetime
 from typing import Union, List, Optional, AsyncGenerator, BinaryIO
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork import utils
 from ..object import Object
 
 
@@ -34,7 +34,7 @@ class Chat(Object):
         id (``int``):
             Unique identifier for this chat.
 
-        type (:obj:`~pyrogram.enums.ChatType`):
+        type (:obj:`~pyrofork.enums.ChatType`):
             Type of chat.
 
         is_verified (``bool``, *optional*):
@@ -61,7 +61,7 @@ class Chat(Object):
 
         is_participants_hidden (``bool``, *optional*):
             True, if the chat members are hidden.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         is_join_request (``bool``, *optional*):
             True, if the admin need to approve member(s) join request.
@@ -74,7 +74,7 @@ class Chat(Object):
 
         is_antispam (``bool``, *optional*):
             True, if Aggressive Anti-Spam is enabled in chat.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         title (``str``, *optional*):
             Title, for supergroups, channels and basic group chats.
@@ -88,22 +88,22 @@ class Chat(Object):
         last_name (``str``, *optional*):
             Last name of the other party in a private chat, for private chats.
 
-        photo (:obj:`~pyrogram.types.ChatPhoto`, *optional*):
+        photo (:obj:`~pyrofork.types.ChatPhoto`, *optional*):
             Chat photo. Suitable for downloads only.
 
-        stories (List of :obj:`~pyrogram.types.Story`, *optional*):
+        stories (List of :obj:`~pyrofork.types.Story`, *optional*):
             The list of chat's stories if available.
 
-        wallpaper (:obj:`~pyrogram.types.Document`, *optional*):
+        wallpaper (:obj:`~pyrofork.types.Document`, *optional*):
             Chat wallpaper.
 
         bio (``str``, *optional*):
             Bio of the other party in a private chat.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         description (``str``, *optional*):
             Description, for groups, supergroups and channel chats.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         dc_id (``int``, *optional*):
             The chat assigned DC (data center). Available only in case the chat has a photo.
@@ -119,73 +119,73 @@ class Chat(Object):
 
         invite_link (``str``, *optional*):
             Chat invite link, for groups, supergroups and channels.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
-        pinned_message (:obj:`~pyrogram.types.Message`, *optional*):
+        pinned_message (:obj:`~pyrofork.types.Message`, *optional*):
             Pinned message, for groups, supergroups channels and own chat.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         sticker_set_name (``str``, *optional*):
             For supergroups, name of group sticker set.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         can_set_sticker_set (``bool``, *optional*):
             True, if the group sticker set can be changed by you.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         members_count (``int``, *optional*):
             Chat members count, for groups, supergroups and channels only.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         slow_mode_delay (``int``, *optional*):
             For supergroups, the minimum allowed delay between consecutive messages sent by each unpriviledged user in seconds.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
-        restrictions (List of :obj:`~pyrogram.types.Restriction`, *optional*):
+        restrictions (List of :obj:`~pyrofork.types.Restriction`, *optional*):
             The list of reasons why this chat might be unavailable to some users.
             This field is available only in case *is_restricted* is True.
 
-        permissions (:obj:`~pyrogram.types.ChatPermissions` *optional*):
+        permissions (:obj:`~pyrofork.types.ChatPermissions` *optional*):
             Default chat member permissions, for groups and supergroups.
 
         distance (``int``, *optional*):
             Distance in meters of this group chat from your location.
-            Returned only in :meth:`~pyrogram.Client.get_nearby_chats`.
+            Returned only in :meth:`~pyrofork.Client.get_nearby_chats`.
 
-        linked_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        linked_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             The linked discussion group (in case of channels) or the linked channel (in case of supergroups).
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
-        send_as_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        send_as_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             The default "send_as" chat.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
-        available_reactions (:obj:`~pyrogram.types.ChatReactions`, *optional*):
+        available_reactions (:obj:`~pyrofork.types.ChatReactions`, *optional*):
             Available reactions in the chat.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         full_name (``str``, *property*):
             Full name of the other party in a private chat, for private chats and bots.
 
-        usernames (List of :obj:`~pyrogram.types.Username`, *optional*):
+        usernames (List of :obj:`~pyrofork.types.Username`, *optional*):
             List of all chat (fragment) usernames; for private chats, supergroups and channels.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         level (``int``, *optional*):
             Channel boosts level.
             For channel only.
 
-        reply_color (:obj:`~pyrogram.types.ChatColor`, *optional*):
+        reply_color (:obj:`~pyrofork.types.ChatColor`, *optional*):
             Chat reply color.
 
-        profile_color (:obj:`~pyrogram.types.ChatColor`, *optional*):
+        profile_color (:obj:`~pyrofork.types.ChatColor`, *optional*):
             Chat profile color.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         type: "enums.ChatType",
         is_verified: bool = None,
@@ -504,7 +504,7 @@ class Chat(Object):
             return Chat._parse_channel_chat(client, chat)
 
     def listen(self, *args, **kwargs):
-        """Bound method *listen* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *listen* of :obj:`~pyrofork.types.Chat`.
         
         Use as a shortcut for:
 
@@ -514,10 +514,10 @@ class Chat(Object):
 
         Parameters:
             args (*optional*):
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs (*optional*):
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -525,7 +525,7 @@ class Chat(Object):
                 chat.listen()
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
         Raises:
             RPCError: In case of a Telegram RPC error.
             asyncio.TimeoutError: In case reply not received within the timeout.
@@ -533,7 +533,7 @@ class Chat(Object):
         return self._client.listen(*args, chat_id=self.id, **kwargs)
 
     def ask(self, text, *args, **kwargs):
-        """Bound method *ask* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *ask* of :obj:`~pyrofork.types.Chat`.
         
         Use as a shortcut for:
 
@@ -548,10 +548,10 @@ class Chat(Object):
                 Text of the message to be sent.
 
             args:
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs:
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -559,7 +559,7 @@ class Chat(Object):
                 chat.ask("What is your name?")
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
         Raises:
             RPCError: In case of a Telegram RPC error.
             asyncio.TimeoutError: In case reply not received within the timeout.
@@ -567,7 +567,7 @@ class Chat(Object):
         return self._client.ask(self.id, text, *args, **kwargs)
 
     def stop_listening(self, *args, **kwargs):
-        """Bound method *stop_listening* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *stop_listening* of :obj:`~pyrofork.types.Chat`.
         
         Use as a shortcut for:
 
@@ -577,10 +577,10 @@ class Chat(Object):
 
         Parameters:
             args (*optional*):
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs (*optional*):
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -591,7 +591,7 @@ class Chat(Object):
         return self._client.stop_listening(*args, chat_id=self.id, **kwargs)
 
     async def archive(self):
-        """Bound method *archive* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *archive* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -614,7 +614,7 @@ class Chat(Object):
         return await self._client.archive_chats(self.id)
 
     async def unarchive(self):
-        """Bound method *unarchive* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *unarchive* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -638,7 +638,7 @@ class Chat(Object):
 
     # TODO: Remove notes about "All Members Are Admins" for basic groups, the attribute doesn't exist anymore
     async def set_title(self, title: str) -> bool:
-        """Bound method *set_title* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *set_title* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -676,7 +676,7 @@ class Chat(Object):
         )
 
     async def set_description(self, description: str) -> bool:
-        """Bound method *set_description* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *set_description* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -716,7 +716,7 @@ class Chat(Object):
         video: Union[str, BinaryIO] = None,
         video_start_ts: float = None,
     ) -> bool:
-        """Bound method *set_photo* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *set_photo* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -745,12 +745,12 @@ class Chat(Object):
 
         Parameters:
             photo (``str`` | ``BinaryIO``, *optional*):
-                New chat photo. You can pass a :obj:`~pyrogram.types.Photo` file_id, a file path to upload a new photo
+                New chat photo. You can pass a :obj:`~pyrofork.types.Photo` file_id, a file path to upload a new photo
                 from your local machine or a binary file-like object with its attribute
                 ".name" set for in-memory uploads.
 
             video (``str`` | ``BinaryIO``, *optional*):
-                New chat video. You can pass a :obj:`~pyrogram.types.Video` file_id, a file path to upload a new video
+                New chat video. You can pass a :obj:`~pyrofork.types.Video` file_id, a file path to upload a new video
                 from your local machine or a binary file-like object with its attribute
                 ".name" set for in-memory uploads.
 
@@ -777,7 +777,7 @@ class Chat(Object):
         user_id: Union[int, str],
         until_date: datetime = utils.zero_datetime()
     ) -> Union["types.Message", bool]:
-        """Bound method *ban_member* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *ban_member* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -809,7 +809,7 @@ class Chat(Object):
                 considered to be banned forever. Defaults to epoch (ban forever).
 
         Returns:
-            :obj:`~pyrogram.types.Message` | ``bool``: On success, a service message will be returned (when applicable), otherwise, in
+            :obj:`~pyrofork.types.Message` | ``bool``: On success, a service message will be returned (when applicable), otherwise, in
             case a message object couldn't be returned, True is returned.
 
         Raises:
@@ -826,7 +826,7 @@ class Chat(Object):
         self,
         user_id: Union[int, str]
     ) -> bool:
-        """Bound method *unban_member* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *unban_member* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -865,7 +865,7 @@ class Chat(Object):
         permissions: "types.ChatPermissions",
         until_date: datetime = utils.zero_datetime(),
     ) -> "types.Chat":
-        """Bound method *unban_member* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *unban_member* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -887,7 +887,7 @@ class Chat(Object):
                 Unique identifier (int) or username (str) of the target user.
                 For a contact that exists in your Telegram address book you can use his phone number (str).
 
-            permissions (:obj:`~pyrogram.types.ChatPermissions`):
+            permissions (:obj:`~pyrofork.types.ChatPermissions`):
                 New user permissions.
 
             until_date (:py:obj:`~datetime.datetime`, *optional*):
@@ -896,7 +896,7 @@ class Chat(Object):
                 considered to be banned forever. Defaults to epoch (ban forever).
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -916,7 +916,7 @@ class Chat(Object):
         user_id: Union[int, str],
         privileges: "types.ChatPrivileges" = None
     ) -> bool:
-        """Bound method *promote_member* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *promote_member* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -938,7 +938,7 @@ class Chat(Object):
                 Unique identifier (int) or username (str) of the target user.
                 For a contact that exists in your Telegram address book you can use his phone number (str).
 
-            privileges (:obj:`~pyrogram.types.ChatPrivileges`, *optional*):
+            privileges (:obj:`~pyrofork.types.ChatPrivileges`, *optional*):
                 New user privileges.
 
         Returns:
@@ -955,7 +955,7 @@ class Chat(Object):
         )
 
     async def join(self):
-        """Bound method *join* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *join* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -972,7 +972,7 @@ class Chat(Object):
             This only works for public groups, channels that have set a username or linked chats.
 
         Returns:
-            :obj:`~pyrogram.types.Chat`: On success, a chat object is returned.
+            :obj:`~pyrofork.types.Chat`: On success, a chat object is returned.
 
         Raises:
             RPCError: In case of a Telegram RPC error.
@@ -981,7 +981,7 @@ class Chat(Object):
         return await self._client.join_chat(self.username or self.id)
 
     async def leave(self):
-        """Bound method *leave* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *leave* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1001,7 +1001,7 @@ class Chat(Object):
         return await self._client.leave_chat(self.id)
 
     async def export_invite_link(self):
-        """Bound method *export_invite_link* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *export_invite_link* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1027,7 +1027,7 @@ class Chat(Object):
         self,
         user_id: Union[int, str],
     ) -> "types.ChatMember":
-        """Bound method *get_member* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *get_member* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1044,7 +1044,7 @@ class Chat(Object):
                 await chat.get_member(user_id)
 
         Returns:
-            :obj:`~pyrogram.types.ChatMember`: On success, a chat member is returned.
+            :obj:`~pyrofork.types.ChatMember`: On success, a chat member is returned.
         """
 
         return await self._client.get_chat_member(
@@ -1058,7 +1058,7 @@ class Chat(Object):
         limit: int = 0,
         filter: "enums.ChatMembersFilter" = enums.ChatMembersFilter.SEARCH
     ) -> Optional[AsyncGenerator["types.ChatMember", None]]:
-        """Bound method *get_members* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *get_members* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1077,19 +1077,19 @@ class Chat(Object):
             query (``str``, *optional*):
                 Query string to filter members based on their display names and usernames.
                 Only applicable to supergroups and channels. Defaults to "" (empty string).
-                A query string is applicable only for :obj:`~pyrogram.enums.ChatMembersFilter.SEARCH`,
-                :obj:`~pyrogram.enums.ChatMembersFilter.BANNED` and :obj:`~pyrogram.enums.ChatMembersFilter.RESTRICTED`
+                A query string is applicable only for :obj:`~pyrofork.enums.ChatMembersFilter.SEARCH`,
+                :obj:`~pyrofork.enums.ChatMembersFilter.BANNED` and :obj:`~pyrofork.enums.ChatMembersFilter.RESTRICTED`
                 filters only.
 
             limit (``int``, *optional*):
                 Limits the number of members to be retrieved.
 
-            filter (:obj:`~pyrogram.enums.ChatMembersFilter`, *optional*):
+            filter (:obj:`~pyrofork.enums.ChatMembersFilter`, *optional*):
                 Filter used to select the kind of members you want to retrieve. Only applicable for supergroups
                 and channels.
 
         Returns:
-            ``Generator``: On success, a generator yielding :obj:`~pyrogram.types.ChatMember` objects is returned.
+            ``Generator``: On success, a generator yielding :obj:`~pyrofork.types.ChatMember` objects is returned.
         """
 
         return self._client.get_chat_members(
@@ -1104,7 +1104,7 @@ class Chat(Object):
         user_ids: Union[Union[int, str], List[Union[int, str]]],
         forward_limit: int = 100
     ) -> bool:
-        """Bound method *add_members* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *add_members* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1128,7 +1128,7 @@ class Chat(Object):
         )
 
     async def mark_unread(self, ) -> bool:
-        """Bound method *mark_unread* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *mark_unread* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1148,7 +1148,7 @@ class Chat(Object):
         return await self._client.mark_chat_unread(self.id)
 
     async def set_protected_content(self, enabled: bool) -> bool:
-        """Bound method *set_protected_content* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *set_protected_content* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
@@ -1175,7 +1175,7 @@ class Chat(Object):
         )
 
     async def unpin_all_messages(self) -> bool:
-        """Bound method *unpin_all_messages* of :obj:`~pyrogram.types.Chat`.
+        """Bound method *unpin_all_messages* of :obj:`~pyrofork.types.Chat`.
 
         Use as a shortcut for:
 
diff --git a/pyrogram/types/user_and_chats/chat_admin_with_invite_links.py b/pyrofork/types/user_and_chats/chat_admin_with_invite_links.py
similarity index 77%
rename from pyrogram/types/user_and_chats/chat_admin_with_invite_links.py
rename to pyrofork/types/user_and_chats/chat_admin_with_invite_links.py
index 385a38da..cd48a2ba 100644
--- a/pyrogram/types/user_and_chats/chat_admin_with_invite_links.py
+++ b/pyrofork/types/user_and_chats/chat_admin_with_invite_links.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Dict
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -28,7 +29,7 @@ class ChatAdminWithInviteLinks(Object):
     """Represents a chat administrator that has created invite links in a chat.
 
     Parameters:
-        admin (:obj:`~pyrogram.types.User`):
+        admin (:obj:`~pyrofork.types.User`):
             The administrator.
 
         chat_invite_links_count (``int``):
@@ -52,7 +53,7 @@ class ChatAdminWithInviteLinks(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         admin: "raw.types.ChatAdminWithInvites",
         users: Dict[int, "raw.types.User"] = None
     ) -> "ChatAdminWithInviteLinks":
diff --git a/pyrogram/types/user_and_chats/chat_color.py b/pyrofork/types/user_and_chats/chat_color.py
similarity index 93%
rename from pyrogram/types/user_and_chats/chat_color.py
rename to pyrofork/types/user_and_chats/chat_color.py
index 88a59eec..612c576e 100644
--- a/pyrogram/types/user_and_chats/chat_color.py
+++ b/pyrofork/types/user_and_chats/chat_color.py
@@ -18,8 +18,8 @@
 
 from typing import Optional, Union
 
-from pyrogram import raw
-from pyrogram import enums
+from pyrofork import raw
+from pyrofork import enums
 from ..object import Object
 
 
@@ -27,7 +27,7 @@ class ChatColor(Object):
     """Reply or profile color status.
 
     Parameters:
-        color (:obj:`~pyrogram.enums.ReplyColor` | :obj:`~pyrogram.enums.ProfileColor`, *optional*):
+        color (:obj:`~pyrofork.enums.ReplyColor` | :obj:`~pyrofork.enums.ProfileColor`, *optional*):
             Color type.
 
         background_emoji_id (``int``, *optional*):
diff --git a/pyrogram/types/user_and_chats/chat_event.py b/pyrofork/types/user_and_chats/chat_event.py
similarity index 86%
rename from pyrogram/types/user_and_chats/chat_event.py
rename to pyrofork/types/user_and_chats/chat_event.py
index 987e76bd..effc4b45 100644
--- a/pyrogram/types/user_and_chats/chat_event.py
+++ b/pyrofork/types/user_and_chats/chat_event.py
@@ -20,9 +20,9 @@
 from datetime import datetime
 from typing import List, Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types, utils, enums
+import pyrofork
+from pyrofork import raw
+from pyrofork import types, utils, enums
 from ..object import Object
 
 
@@ -38,111 +38,111 @@ class ChatEvent(Object):
         date (:py:obj:`~datetime.datetime`):
             Date of the event.
 
-        action (:obj:`~pyrogram.enums.ChatEventAction`):
+        action (:obj:`~pyrofork.enums.ChatEventAction`):
             Event action.
 
-        user (:obj:`~pyrogram.types.User`):
+        user (:obj:`~pyrofork.types.User`):
             User that triggered the event.
 
         old_description, new_description (``str``, *optional*):
             Previous and new chat description.
-            For :obj:`~pyrogram.enums.ChatEventAction.DESCRIPTION_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.DESCRIPTION_CHANGED` action only.
 
         old_history_ttl, new_history_ttl (``int``, *optional*):
             Previous and new chat history TTL.
-            For :obj:`~pyrogram.enums.ChatEventAction.HISTORY_TTL_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.HISTORY_TTL_CHANGED` action only.
 
-        old_linked_chat, new_linked_chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        old_linked_chat, new_linked_chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Previous and new linked chat.
-            For :obj:`~pyrogram.enums.ChatEventAction.LINKED_CHAT_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.LINKED_CHAT_CHANGED` action only.
 
-        old_photo, new_photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        old_photo, new_photo (:obj:`~pyrofork.types.Photo`, *optional*):
             Previous and new chat photo.
-            For :obj:`~pyrogram.enums.ChatEventAction.PHOTO_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.PHOTO_CHANGED` action only.
 
         old_title, new_title (``str``, *optional*):
             Previous and new chat title.
-            For :obj:`~pyrogram.enums.ChatEventAction.TITLE_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.TITLE_CHANGED` action only.
 
         old_username, new_username (``str``, *optional*):
             Previous and new chat username.
-            For :obj:`~pyrogram.enums.ChatEventAction.USERNAME_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.USERNAME_CHANGED` action only.
 
-        old_chat_permissions, new_chat_permissions (:obj:`~pyrogram.types.ChatPermissions`, *optional*):
+        old_chat_permissions, new_chat_permissions (:obj:`~pyrofork.types.ChatPermissions`, *optional*):
             Previous and new default chat permissions.
-            For :obj:`~pyrogram.enums.ChatEventAction.CHAT_PERMISSIONS_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.CHAT_PERMISSIONS_CHANGED` action only.
 
-        deleted_message (:obj:`~pyrogram.types.Message`, *optional*):
+        deleted_message (:obj:`~pyrofork.types.Message`, *optional*):
             Deleted message.
-            For :obj:`~pyrogram.enums.ChatEventAction.MESSAGE_DELETED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MESSAGE_DELETED` action only.
 
-        old_message, new_message (:obj:`~pyrogram.types.Message`, *optional*):
+        old_message, new_message (:obj:`~pyrofork.types.Message`, *optional*):
             Previous and new message before it has been edited.
-            For :obj:`~pyrogram.enums.ChatEventAction.MESSAGE_EDITED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MESSAGE_EDITED` action only.
 
-        invited_member (:obj:`~pyrogram.types.ChatMember`, *optional*):
+        invited_member (:obj:`~pyrofork.types.ChatMember`, *optional*):
             New invited chat member.
-            For :obj:`~pyrogram.enums.ChatEventAction.MEMBER_INVITED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MEMBER_INVITED` action only.
 
-        old_administrator_privileges, new_administrator_privileges (:obj:`~pyrogram.types.ChatMember`, *optional*):
+        old_administrator_privileges, new_administrator_privileges (:obj:`~pyrofork.types.ChatMember`, *optional*):
             Previous and new administrator privileges.
-            For :obj:`~pyrogram.enums.ChatEventAction.ADMINISTRATOR_PRIVILEGES_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.ADMINISTRATOR_PRIVILEGES_CHANGED` action only.
 
-        old_member_permissions, new_member_permissions (:obj:`~pyrogram.types.ChatMember`, *optional*):
+        old_member_permissions, new_member_permissions (:obj:`~pyrofork.types.ChatMember`, *optional*):
             Previous and new member permissions.
-            For :obj:`~pyrogram.enums.ChatEventAction.MEMBER_PERMISSIONS_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MEMBER_PERMISSIONS_CHANGED` action only.
 
-        stopped_poll (:obj:`~pyrogram.types.Message`, *optional*):
+        stopped_poll (:obj:`~pyrofork.types.Message`, *optional*):
             Message containing the stopped poll.
-            For :obj:`~pyrogram.enums.ChatEventAction.POLL_STOPPED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.POLL_STOPPED` action only.
 
         invites_enabled (``bool``, *optional*):
             If chat invites were enabled (True) or disabled (False).
-            For :obj:`~pyrogram.enums.ChatEventAction.INVITES_ENABLED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.INVITES_ENABLED` action only.
 
         history_hidden (``bool``, *optional*):
             If chat history has been hidden (True) or unhidden (False).
-            For :obj:`~pyrogram.enums.ChatEventAction.HISTORY_HIDDEN` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.HISTORY_HIDDEN` action only.
 
         signatures_enabled (``bool``, *optional*):
             If message signatures were enabled (True) or disabled (False).
-            For :obj:`~pyrogram.enums.ChatEventAction.SIGNATURES_ENABLED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.SIGNATURES_ENABLED` action only.
 
         old_slow_mode, new_slow_mode (``int``, *optional*):
             Previous and new slow mode value in seconds.
-            For :obj:`~pyrogram.enums.ChatEventAction.SLOW_MODE_CHANGED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.SLOW_MODE_CHANGED` action only.
 
-        pinned_message (:obj:`~pyrogram.types.Message`, *optional*):
+        pinned_message (:obj:`~pyrofork.types.Message`, *optional*):
             Pinned message.
-            For :obj:`~pyrogram.enums.ChatEventAction.MESSAGE_PINNED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MESSAGE_PINNED` action only.
 
-        unpinned_message (:obj:`~pyrogram.types.Message`, *optional*):
+        unpinned_message (:obj:`~pyrofork.types.Message`, *optional*):
             Unpinned message.
-            For :obj:`~pyrogram.enums.ChatEventAction.MESSAGE_UNPINNED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.MESSAGE_UNPINNED` action only.
 
-        old_invite_link, new_invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
+        old_invite_link, new_invite_link (:obj:`~pyrofork.types.ChatInviteLink`, *optional*):
             Previous and new edited invite link.
-            For :obj:`~pyrogram.enums.ChatEventAction.INVITE_LINK_EDITED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.INVITE_LINK_EDITED` action only.
 
-        revoked_invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
+        revoked_invite_link (:obj:`~pyrofork.types.ChatInviteLink`, *optional*):
             Revoked invite link.
-            For :obj:`~pyrogram.enums.ChatEventAction.INVITE_LINK_REVOKED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.INVITE_LINK_REVOKED` action only.
 
-        deleted_invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
+        deleted_invite_link (:obj:`~pyrofork.types.ChatInviteLink`, *optional*):
             Deleted invite link.
-            For :obj:`~pyrogram.enums.ChatEventAction.INVITE_LINK_DELETED` action only.
+            For :obj:`~pyrofork.enums.ChatEventAction.INVITE_LINK_DELETED` action only.
 
-        created_forum_topic (:obj:`~pyrogram.types.ForumTopic`, *optional*):
+        created_forum_topic (:obj:`~pyrofork.types.ForumTopic`, *optional*):
             New forum topic.
-            For :obj:`~pyrogram.enums.ChatEvenAction.CREATED_FORUM_TOPIC` action only.
+            For :obj:`~pyrofork.enums.ChatEvenAction.CREATED_FORUM_TOPIC` action only.
 
-        old_forum_topic, new_forum_topic (:obj:`~pyrogram.types.ForumTopic`, *optional*):
+        old_forum_topic, new_forum_topic (:obj:`~pyrofork.types.ForumTopic`, *optional*):
             Edited forum topic.
-            For :obj:`~pyrogram.enums.ChatEvenAction.EDITED_FORUM_TOPIC` action only.
+            For :obj:`~pyrofork.enums.ChatEvenAction.EDITED_FORUM_TOPIC` action only.
 
-        deleted_forum_topic (:obj:`~pyrogram.types.ForumTopic`, *optional*):
+        deleted_forum_topic (:obj:`~pyrofork.types.ForumTopic`, *optional*):
             Deleted forum topic.
-            For :obj:`~pyrogram.enums.ChatEvenAction.DELETED_FORUM_TOPIC` action only.
+            For :obj:`~pyrofork.enums.ChatEvenAction.DELETED_FORUM_TOPIC` action only.
     """
 
     def __init__(
@@ -277,7 +277,7 @@ class ChatEvent(Object):
 
     @staticmethod
     async def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         event: "raw.base.ChannelAdminLogEvent",
         users: List["raw.base.User"],
         chats: List["raw.base.Chat"]
diff --git a/pyrogram/types/user_and_chats/chat_event_filter.py b/pyrofork/types/user_and_chats/chat_event_filter.py
similarity index 93%
rename from pyrogram/types/user_and_chats/chat_event_filter.py
rename to pyrofork/types/user_and_chats/chat_event_filter.py
index 92298ea3..dfbbf89f 100644
--- a/pyrogram/types/user_and_chats/chat_event_filter.py
+++ b/pyrofork/types/user_and_chats/chat_event_filter.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/chat_invite_link.py b/pyrofork/types/user_and_chats/chat_invite_link.py
similarity index 88%
rename from pyrogram/types/user_and_chats/chat_invite_link.py
rename to pyrofork/types/user_and_chats/chat_invite_link.py
index 59f6315b..e0406844 100644
--- a/pyrogram/types/user_and_chats/chat_invite_link.py
+++ b/pyrofork/types/user_and_chats/chat_invite_link.py
@@ -1,28 +1,29 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 from ..object import Object
 
 
@@ -43,7 +44,7 @@ class ChatInviteLink(Object):
         is_revoked (``bool``):
             True, if the link is revoked.
 
-        creator (:obj:`~pyrogram.types.User`, *optional*):
+        creator (:obj:`~pyrofork.types.User`, *optional*):
             Creator of the link.
 
         name (``str``, *optional*):
@@ -101,7 +102,7 @@ class ChatInviteLink(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         invite: "raw.base.ExportedChatInvite",
         users: Dict[int, "raw.types.User"] = None
     ) -> Optional["ChatInviteLink"]:
diff --git a/pyrogram/types/user_and_chats/chat_join_request.py b/pyrofork/types/user_and_chats/chat_join_request.py
similarity index 81%
rename from pyrogram/types/user_and_chats/chat_join_request.py
rename to pyrofork/types/user_and_chats/chat_join_request.py
index b810640b..f97ec703 100644
--- a/pyrogram/types/user_and_chats/chat_join_request.py
+++ b/pyrofork/types/user_and_chats/chat_join_request.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 
@@ -30,10 +31,10 @@ class ChatJoinRequest(Object, Update):
     """Represents a join request sent to a chat.
 
     Parameters:
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             Chat to which the request was sent.
 
-        from_user (:obj:`~pyrogram.types.User`):
+        from_user (:obj:`~pyrofork.types.User`):
             User that sent the join request.
 
         date (:py:obj:`~datetime.datetime`):
@@ -42,14 +43,14 @@ class ChatJoinRequest(Object, Update):
         bio (``str``, *optional*):
             Bio of the user.
 
-        invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
+        invite_link (:obj:`~pyrofork.types.ChatInviteLink`, *optional*):
             Chat invite link that was used by the user to send the join request.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chat: "types.Chat",
         from_user: "types.User",
         date: datetime,
@@ -66,7 +67,7 @@ class ChatJoinRequest(Object, Update):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         update: "raw.types.UpdateBotChatInviteRequester",
         users: Dict[int, "raw.types.User"],
         chats: Dict[int, "raw.types.Chat"]
@@ -83,7 +84,7 @@ class ChatJoinRequest(Object, Update):
         )
 
     async def approve(self) -> bool:
-        """Bound method *approve* of :obj:`~pyrogram.types.ChatJoinRequest`.
+        """Bound method *approve* of :obj:`~pyrofork.types.ChatJoinRequest`.
         
         Use as a shortcut for:
         
@@ -111,7 +112,7 @@ class ChatJoinRequest(Object, Update):
         )
 
     async def decline(self) -> bool:
-        """Bound method *decline* of :obj:`~pyrogram.types.ChatJoinRequest`.
+        """Bound method *decline* of :obj:`~pyrofork.types.ChatJoinRequest`.
         
         Use as a shortcut for:
         
diff --git a/pyrogram/types/user_and_chats/chat_joined_by_request.py b/pyrofork/types/user_and_chats/chat_joined_by_request.py
similarity index 100%
rename from pyrogram/types/user_and_chats/chat_joined_by_request.py
rename to pyrofork/types/user_and_chats/chat_joined_by_request.py
diff --git a/pyrogram/types/user_and_chats/chat_joiner.py b/pyrofork/types/user_and_chats/chat_joiner.py
similarity index 77%
rename from pyrogram/types/user_and_chats/chat_joiner.py
rename to pyrofork/types/user_and_chats/chat_joiner.py
index 024f88ea..b3f26670 100644
--- a/pyrogram/types/user_and_chats/chat_joiner.py
+++ b/pyrofork/types/user_and_chats/chat_joiner.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict
 
-import pyrogram
-from pyrogram import raw, types, utils
+import pyrofork
+from pyrofork import raw, types, utils
 from ..object import Object
 
 
@@ -28,7 +29,7 @@ class ChatJoiner(Object):
     """Contains information about a joiner member of a chat.
 
     Parameters:
-        user (:obj:`~pyrogram.types.User`):
+        user (:obj:`~pyrofork.types.User`):
             Information about the user.
 
         date (:py:obj:`~datetime.datetime`):
@@ -40,14 +41,14 @@ class ChatJoiner(Object):
         pending (``bool``, *optional*):
             True in case the chat joiner has a pending request.
 
-        approved_by (:obj:`~pyrogram.types.User`, *optional*):
+        approved_by (:obj:`~pyrofork.types.User`, *optional*):
             Administrator who approved this chat joiner.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         user: "types.User",
         date: datetime = None,
         bio: str = None,
@@ -64,7 +65,7 @@ class ChatJoiner(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         joiner: "raw.base.ChatInviteImporter",
         users: Dict[int, "raw.base.User"],
     ) -> "ChatJoiner":
diff --git a/pyrogram/types/user_and_chats/chat_member.py b/pyrofork/types/user_and_chats/chat_member.py
similarity index 89%
rename from pyrogram/types/user_and_chats/chat_member.py
rename to pyrofork/types/user_and_chats/chat_member.py
index 4459a8d1..2b582d5b 100644
--- a/pyrogram/types/user_and_chats/chat_member.py
+++ b/pyrofork/types/user_and_chats/chat_member.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Union, Dict
 
-import pyrogram
-from pyrogram import raw, types, utils, enums
+import pyrofork
+from pyrofork import raw, types, utils, enums
 from ..object import Object
 
 
@@ -28,13 +29,13 @@ class ChatMember(Object):
     """Contains information about one member of a chat.
 
     Parameters:
-        status (:obj:`~pyrogram.enums.ChatMemberStatus`):
+        status (:obj:`~pyrofork.enums.ChatMemberStatus`):
             The member's status in the chat.
 
-        user (:obj:`~pyrogram.types.User`, *optional*):
+        user (:obj:`~pyrofork.types.User`, *optional*):
             Information about the user.
 
-        chat (:obj:`~pyrogram.types.Chat`, *optional*):
+        chat (:obj:`~pyrofork.types.Chat`, *optional*):
             Information about the chat (useful in case of banned channel senders).
 
         joined_date (:py:obj:`~datetime.datetime`, *optional*):
@@ -49,14 +50,14 @@ class ChatMember(Object):
             Restricted and banned only.
             Date when restrictions will be lifted for this user.
 
-        invited_by (:obj:`~pyrogram.types.User`, *optional*):
+        invited_by (:obj:`~pyrofork.types.User`, *optional*):
             Administrators and self member only. Information about the user who invited this member.
             In case the user joined by himself this will be the same as "user".
 
-        promoted_by (:obj:`~pyrogram.types.User`, *optional*):
+        promoted_by (:obj:`~pyrofork.types.User`, *optional*):
             Administrators only. Information about the user who promoted this member as administrator.
 
-        restricted_by (:obj:`~pyrogram.types.User`, *optional*):
+        restricted_by (:obj:`~pyrofork.types.User`, *optional*):
             Restricted and banned only. Information about the user who restricted or banned this member.
 
         is_member (``bool``, *optional*):
@@ -65,17 +66,17 @@ class ChatMember(Object):
         can_be_edited (``bool``, *optional*):
             True, if the you are allowed to edit administrator privileges of the user.
 
-        permissions (:obj:`~pyrogram.types.ChatPermissions`, *optional*):
+        permissions (:obj:`~pyrofork.types.ChatPermissions`, *optional*):
             Restricted only. Restricted actions that a non-administrator user is allowed to take.
 
-        privileges (:obj:`~pyrogram.types.ChatPrivileges`, *optional*):
+        privileges (:obj:`~pyrofork.types.ChatPrivileges`, *optional*):
             Administrators only. Privileged actions that an administrator is able to take.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         status: "enums.ChatMemberStatus",
         user: "types.User" = None,
         chat: "types.Chat" = None,
@@ -108,7 +109,7 @@ class ChatMember(Object):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         member: Union["raw.base.ChatParticipant", "raw.base.ChannelParticipant"],
         users: Dict[int, "raw.base.User"],
         chats: Dict[int, "raw.base.Chat"]
diff --git a/pyrogram/types/user_and_chats/chat_member_updated.py b/pyrofork/types/user_and_chats/chat_member_updated.py
similarity index 78%
rename from pyrogram/types/user_and_chats/chat_member_updated.py
rename to pyrofork/types/user_and_chats/chat_member_updated.py
index f8b6638d..9abe5b9f 100644
--- a/pyrogram/types/user_and_chats/chat_member_updated.py
+++ b/pyrofork/types/user_and_chats/chat_member_updated.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Dict, Union
 
-import pyrogram
-from pyrogram import raw, utils
-from pyrogram import types
+import pyrofork
+from pyrofork import raw, utils
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 
@@ -30,29 +31,29 @@ class ChatMemberUpdated(Object, Update):
     """Represents changes in the status of a chat member.
 
     Parameters:
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             Chat the user belongs to.
 
-        from_user (:obj:`~pyrogram.types.User`):
+        from_user (:obj:`~pyrofork.types.User`):
             Performer of the action, which resulted in the change.
 
         date (:py:obj:`~datetime.datetime`):
             Date the change was done.
 
-        old_chat_member (:obj:`~pyrogram.types.ChatMember`, *optional*):
+        old_chat_member (:obj:`~pyrofork.types.ChatMember`, *optional*):
             Previous information about the chat member.
 
-        new_chat_member (:obj:`~pyrogram.types.ChatMember`, *optional*):
+        new_chat_member (:obj:`~pyrofork.types.ChatMember`, *optional*):
             New information about the chat member.
 
-        invite_link (:obj:`~pyrogram.types.ChatInviteLink`, *optional*):
+        invite_link (:obj:`~pyrofork.types.ChatInviteLink`, *optional*):
             Chat invite link, which was used by the user to join the chat; for joining by invite link events only.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chat: "types.Chat",
         from_user: "types.User",
         date: datetime,
@@ -71,7 +72,7 @@ class ChatMemberUpdated(Object, Update):
 
     @staticmethod
     def _parse(
-        client: "pyrogram.Client",
+        client: "pyrofork.Client",
         update: Union["raw.types.UpdateChatParticipant", "raw.types.UpdateChannelParticipant"],
         users: Dict[int, "raw.types.User"],
         chats: Dict[int, "raw.types.Chat"]
diff --git a/pyrogram/types/user_and_chats/chat_permissions.py b/pyrofork/types/user_and_chats/chat_permissions.py
similarity index 99%
rename from pyrogram/types/user_and_chats/chat_permissions.py
rename to pyrofork/types/user_and_chats/chat_permissions.py
index 1484e871..f4b2d044 100644
--- a/pyrogram/types/user_and_chats/chat_permissions.py
+++ b/pyrofork/types/user_and_chats/chat_permissions.py
@@ -17,7 +17,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/chat_photo.py b/pyrofork/types/user_and_chats/chat_photo.py
similarity index 87%
rename from pyrogram/types/user_and_chats/chat_photo.py
rename to pyrofork/types/user_and_chats/chat_photo.py
index b3aba61d..907dda0e 100644
--- a/pyrogram/types/user_and_chats/chat_photo.py
+++ b/pyrofork/types/user_and_chats/chat_photo.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Union
 
-import pyrogram
-from pyrogram import raw
-from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
+import pyrofork
+from pyrofork import raw
+from pyrofork.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
 from ..object import Object
 
 
@@ -48,7 +49,7 @@ class ChatPhoto(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         small_file_id: str,
         small_photo_unique_id: str,
         big_file_id: str,
diff --git a/pyrogram/types/user_and_chats/chat_preview.py b/pyrofork/types/user_and_chats/chat_preview.py
similarity index 77%
rename from pyrogram/types/user_and_chats/chat_preview.py
rename to pyrofork/types/user_and_chats/chat_preview.py
index e251c865..745734af 100644
--- a/pyrogram/types/user_and_chats/chat_preview.py
+++ b/pyrofork/types/user_and_chats/chat_preview.py
@@ -1,26 +1,27 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 
 
@@ -37,17 +38,17 @@ class ChatPreview(Object):
         members_count (``int``):
             Chat members count.
 
-        photo (:obj:`~pyrogram.types.Photo`, *optional*):
+        photo (:obj:`~pyrofork.types.Photo`, *optional*):
             Chat photo.
 
-        members (List of :obj:`~pyrogram.types.User`, *optional*):
+        members (List of :obj:`~pyrofork.types.User`, *optional*):
             Preview of some of the chat members.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         title: str,
         type: str,
         members_count: int,
diff --git a/pyrogram/types/user_and_chats/chat_privileges.py b/pyrofork/types/user_and_chats/chat_privileges.py
similarity index 99%
rename from pyrogram/types/user_and_chats/chat_privileges.py
rename to pyrofork/types/user_and_chats/chat_privileges.py
index 0e8be3b1..b09c3aae 100644
--- a/pyrogram/types/user_and_chats/chat_privileges.py
+++ b/pyrofork/types/user_and_chats/chat_privileges.py
@@ -17,7 +17,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/chat_reactions.py b/pyrofork/types/user_and_chats/chat_reactions.py
similarity index 79%
rename from pyrogram/types/user_and_chats/chat_reactions.py
rename to pyrofork/types/user_and_chats/chat_reactions.py
index 0252029b..f17dd031 100644
--- a/pyrogram/types/user_and_chats/chat_reactions.py
+++ b/pyrofork/types/user_and_chats/chat_reactions.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import Optional, List
 
-import pyrogram
-from pyrogram import raw, types
+import pyrofork
+from pyrofork import raw, types
 from ..object import Object
 
 
@@ -32,14 +33,14 @@ class ChatReactions(Object):
         allow_custom_emoji (``bool``, *optional*):
             Whether custom emoji are allowed or not.
 
-        reactions (List of :obj:`~pyrogram.types.Reaction`, *optional*):
+        reactions (List of :obj:`~pyrofork.types.Reaction`, *optional*):
             Reactions available.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         all_are_enabled: Optional[bool] = None,
         allow_custom_emoji: Optional[bool] = None,
         reactions: Optional[List["types.Reaction"]] = None,
diff --git a/pyrogram/types/user_and_chats/dialog.py b/pyrofork/types/user_and_chats/dialog.py
similarity index 79%
rename from pyrogram/types/user_and_chats/dialog.py
rename to pyrofork/types/user_and_chats/dialog.py
index 7259a89a..fc93e63b 100644
--- a/pyrogram/types/user_and_chats/dialog.py
+++ b/pyrofork/types/user_and_chats/dialog.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 from ... import utils
 
@@ -27,10 +28,10 @@ class Dialog(Object):
     """A user's dialog.
 
     Parameters:
-        chat (:obj:`~pyrogram.types.Chat`):
+        chat (:obj:`~pyrofork.types.Chat`):
             Conversation the dialog belongs to.
 
-        top_message (:obj:`~pyrogram.types.Message`):
+        top_message (:obj:`~pyrofork.types.Message`):
             The last message sent in the dialog at this time.
 
         unread_messages_count (``int``):
@@ -49,7 +50,7 @@ class Dialog(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         chat: "types.Chat",
         top_message: "types.Message",
         unread_messages_count: int,
diff --git a/pyrogram/types/user_and_chats/emoji_status.py b/pyrofork/types/user_and_chats/emoji_status.py
similarity index 81%
rename from pyrogram/types/user_and_chats/emoji_status.py
rename to pyrofork/types/user_and_chats/emoji_status.py
index 50b46bfa..bb9c2b8b 100644
--- a/pyrogram/types/user_and_chats/emoji_status.py
+++ b/pyrofork/types/user_and_chats/emoji_status.py
@@ -1,27 +1,28 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 from typing import Optional
 
-import pyrogram
-from pyrogram import raw
-from pyrogram import utils
+import pyrofork
+from pyrofork import raw
+from pyrofork import utils
 from ..object import Object
 
 
@@ -39,7 +40,7 @@ class EmojiStatus(Object):
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         custom_emoji_id: int,
         until_date: Optional[datetime] = None
     ):
diff --git a/pyrogram/types/user_and_chats/forum_topic.py b/pyrofork/types/user_and_chats/forum_topic.py
similarity index 95%
rename from pyrogram/types/user_and_chats/forum_topic.py
rename to pyrofork/types/user_and_chats/forum_topic.py
index e8f01958..2dc1e569 100644
--- a/pyrogram/types/user_and_chats/forum_topic.py
+++ b/pyrofork/types/user_and_chats/forum_topic.py
@@ -16,15 +16,15 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 from typing import Union
 from ..object import Object
 
 
 class ForumTopic(Object):
     # todo
-    # notify_settings: `~pyrogram.types.PeerNotifySettings`
-    # draft: `~pyrogram.types.DraftMessage`
+    # notify_settings: `~pyrofork.types.PeerNotifySettings`
+    # draft: `~pyrofork.types.DraftMessage`
     """A forum topic.
 
 
@@ -59,7 +59,7 @@ class ForumTopic(Object):
         unread_reactions_count (``Integer``):
             N/A
 
-        from_id (:obj:`~pyrogram.types.PeerChannel` | :obj:`~pyrogram.types.PeerUser`):
+        from_id (:obj:`~pyrofork.types.PeerChannel` | :obj:`~pyrofork.types.PeerUser`):
             Topic creator.
 
         my (``Boolean``, *optional*):
diff --git a/pyrogram/types/user_and_chats/forum_topic_closed.py b/pyrofork/types/user_and_chats/forum_topic_closed.py
similarity index 100%
rename from pyrogram/types/user_and_chats/forum_topic_closed.py
rename to pyrofork/types/user_and_chats/forum_topic_closed.py
diff --git a/pyrogram/types/user_and_chats/forum_topic_created.py b/pyrofork/types/user_and_chats/forum_topic_created.py
similarity index 98%
rename from pyrogram/types/user_and_chats/forum_topic_created.py
rename to pyrofork/types/user_and_chats/forum_topic_created.py
index da7daacc..fc1995d5 100644
--- a/pyrogram/types/user_and_chats/forum_topic_created.py
+++ b/pyrofork/types/user_and_chats/forum_topic_created.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/forum_topic_edited.py b/pyrofork/types/user_and_chats/forum_topic_edited.py
similarity index 98%
rename from pyrogram/types/user_and_chats/forum_topic_edited.py
rename to pyrofork/types/user_and_chats/forum_topic_edited.py
index b5505670..62ca0d47 100644
--- a/pyrogram/types/user_and_chats/forum_topic_edited.py
+++ b/pyrofork/types/user_and_chats/forum_topic_edited.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/forum_topic_reopened.py b/pyrofork/types/user_and_chats/forum_topic_reopened.py
similarity index 100%
rename from pyrogram/types/user_and_chats/forum_topic_reopened.py
rename to pyrofork/types/user_and_chats/forum_topic_reopened.py
diff --git a/pyrogram/types/user_and_chats/general_forum_topic_hidden.py b/pyrofork/types/user_and_chats/general_forum_topic_hidden.py
similarity index 100%
rename from pyrogram/types/user_and_chats/general_forum_topic_hidden.py
rename to pyrofork/types/user_and_chats/general_forum_topic_hidden.py
diff --git a/pyrogram/types/user_and_chats/general_forum_topic_unhidden.py b/pyrofork/types/user_and_chats/general_forum_topic_unhidden.py
similarity index 100%
rename from pyrogram/types/user_and_chats/general_forum_topic_unhidden.py
rename to pyrofork/types/user_and_chats/general_forum_topic_unhidden.py
diff --git a/pyrogram/types/user_and_chats/invite_link_importer.py b/pyrofork/types/user_and_chats/invite_link_importer.py
similarity index 77%
rename from pyrogram/types/user_and_chats/invite_link_importer.py
rename to pyrofork/types/user_and_chats/invite_link_importer.py
index 34e5f397..7274479e 100644
--- a/pyrogram/types/user_and_chats/invite_link_importer.py
+++ b/pyrofork/types/user_and_chats/invite_link_importer.py
@@ -1,25 +1,26 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 
-from pyrogram import raw, utils
-from pyrogram import types
+from pyrofork import raw, utils
+from pyrofork import types
 from ..object import Object
 
 
@@ -30,7 +31,7 @@ class InviteLinkImporter(Object):
         date (:py:obj:`~datetime.datetime`):
             The time of when this user used the given link
 
-        user (:obj:`~pyrogram.types.User`):
+        user (:obj:`~pyrofork.types.User`):
             The user that has used the given invite link
     """
 
diff --git a/pyrogram/types/user_and_chats/peer_channel.py b/pyrofork/types/user_and_chats/peer_channel.py
similarity index 98%
rename from pyrogram/types/user_and_chats/peer_channel.py
rename to pyrofork/types/user_and_chats/peer_channel.py
index a0f79078..1cf97ac0 100644
--- a/pyrogram/types/user_and_chats/peer_channel.py
+++ b/pyrofork/types/user_and_chats/peer_channel.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/peer_user.py b/pyrofork/types/user_and_chats/peer_user.py
similarity index 98%
rename from pyrogram/types/user_and_chats/peer_user.py
rename to pyrofork/types/user_and_chats/peer_user.py
index 48a88b49..9a944c0b 100644
--- a/pyrogram/types/user_and_chats/peer_user.py
+++ b/pyrofork/types/user_and_chats/peer_user.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/restriction.py b/pyrofork/types/user_and_chats/restriction.py
similarity index 77%
rename from pyrogram/types/user_and_chats/restriction.py
rename to pyrofork/types/user_and_chats/restriction.py
index 8f7a1b72..a783f7d9 100644
--- a/pyrogram/types/user_and_chats/restriction.py
+++ b/pyrofork/types/user_and_chats/restriction.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/user.py b/pyrofork/types/user_and_chats/user.py
similarity index 90%
rename from pyrogram/types/user_and_chats/user.py
rename to pyrofork/types/user_and_chats/user.py
index ab12f9a0..83029762 100644
--- a/pyrogram/types/user_and_chats/user.py
+++ b/pyrofork/types/user_and_chats/user.py
@@ -21,10 +21,10 @@ import html
 from datetime import datetime
 from typing import List, Optional
 
-import pyrogram
-from pyrogram import enums, utils
-from pyrogram import raw
-from pyrogram import types
+import pyrofork
+from pyrofork import enums, utils
+from pyrofork import raw
+from pyrofork import types
 from ..object import Object
 from ..update import Update
 
@@ -107,26 +107,26 @@ class User(Object, Update):
         last_name (``str``, *optional*):
             User's or bot's last name.
 
-        status (:obj:`~pyrogram.enums.UserStatus`, *optional*):
+        status (:obj:`~pyrofork.enums.UserStatus`, *optional*):
             User's last seen & online status. ``None``, for bots.
 
         last_online_date (:py:obj:`~datetime.datetime`, *optional*):
-            Last online date of a user. Only available in case status is :obj:`~pyrogram.enums.UserStatus.OFFLINE`.
+            Last online date of a user. Only available in case status is :obj:`~pyrofork.enums.UserStatus.OFFLINE`.
 
         next_offline_date (:py:obj:`~datetime.datetime`, *optional*):
-            Date when a user will automatically go offline. Only available in case status is :obj:`~pyrogram.enums.UserStatus.ONLINE`.
+            Date when a user will automatically go offline. Only available in case status is :obj:`~pyrofork.enums.UserStatus.ONLINE`.
 
         username (``str``, *optional*):
             User's or bot's username.
 
-        usernames (List of :obj:`~pyrogram.types.Username`, *optional*):
+        usernames (List of :obj:`~pyrofork.types.Username`, *optional*):
             List of all chat (fragment) usernames; for private chats, supergroups and channels.
-            Returned only in :meth:`~pyrogram.Client.get_chat`.
+            Returned only in :meth:`~pyrofork.Client.get_chat`.
 
         language_code (``str``, *optional*):
             IETF language tag of the user's language.
 
-        emoji_status (:obj:`~pyrogram.types.EmojiStatus`, *optional*):
+        emoji_status (:obj:`~pyrofork.types.EmojiStatus`, *optional*):
             Emoji status.
 
         dc_id (``int``, *optional*):
@@ -138,10 +138,10 @@ class User(Object, Update):
         phone_number (``str``, *optional*):
             User's phone number.
 
-        photo (:obj:`~pyrogram.types.ChatPhoto`, *optional*):
+        photo (:obj:`~pyrofork.types.ChatPhoto`, *optional*):
             User's or bot's current profile photo. Suitable for downloads only.
 
-        restrictions (List of :obj:`~pyrogram.types.Restriction`, *optional*):
+        restrictions (List of :obj:`~pyrofork.types.Restriction`, *optional*):
             The list of reasons why this bot might be unavailable to some users.
             This field is available only in case *is_restricted* is True.
 
@@ -154,17 +154,17 @@ class User(Object, Update):
             ``user.mention("another name")`` for a custom name. To choose a different style
             ("html" or "md"/"markdown") use ``user.mention(style="md")``.
 
-        reply_color (:obj:`~pyrogram.types.ChatColor`, *optional*)
+        reply_color (:obj:`~pyrofork.types.ChatColor`, *optional*)
             Chat reply color.
 
-        profile_color (:obj:`~pyrogram.types.ChatColor`, *optional*)
+        profile_color (:obj:`~pyrofork.types.ChatColor`, *optional*)
             Chat profile color.
     """
 
     def __init__(
         self,
         *,
-        client: "pyrogram.Client" = None,
+        client: "pyrofork.Client" = None,
         id: int,
         is_self: bool = None,
         is_contact: bool = None,
@@ -324,7 +324,7 @@ class User(Object, Update):
         )
 
     def listen(self, *args, **kwargs):
-        """Bound method *listen* of :obj:`~pyrogram.types.User`.
+        """Bound method *listen* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
@@ -334,10 +334,10 @@ class User(Object, Update):
 
         Parameters:
             args (*optional*):
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs (*optional*):
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -345,7 +345,7 @@ class User(Object, Update):
                 user.listen()
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
         Raises:
             RPCError: In case of a Telegram RPC error.
             asyncio.TimeoutError: In case reply not received within the timeout.
@@ -353,7 +353,7 @@ class User(Object, Update):
         return self._client.listen(*args, user_id=self.id, **kwargs)
 
     def ask(self, text, *args, **kwargs):
-        """Bound method *ask* of :obj:`~pyrogram.types.User`.
+        """Bound method *ask* of :obj:`~pyrofork.types.User`.
         
         Use as a shortcut for:
 
@@ -368,10 +368,10 @@ class User(Object, Update):
                 Text of the message to be sent.
 
             args:
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs:
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -379,7 +379,7 @@ class User(Object, Update):
                 user.ask("What is your name?")
 
         Returns:
-            :obj:`~pyrogram.types.Message`: On success, the reply message is returned.
+            :obj:`~pyrofork.types.Message`: On success, the reply message is returned.
         Raises:
             RPCError: In case of a Telegram RPC error.
             asyncio.TimeoutError: In case reply not received within the timeout.
@@ -387,7 +387,7 @@ class User(Object, Update):
         return self._client.ask(self.id, text, *args, user_id=self.id, **kwargs)
 
     def stop_listening(self, *args, **kwargs):
-        """Bound method *stop_listening* of :obj:`~pyrogram.types.User`.
+        """Bound method *stop_listening* of :obj:`~pyrofork.types.User`.
         
         Use as a shortcut for:
 
@@ -397,10 +397,10 @@ class User(Object, Update):
 
         Parameters:
             args (*optional*):
-                The arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
             kwargs (*optional*):
-                The keyword arguments to pass to the :meth:`~pyrogram.Client.listen` method.
+                The keyword arguments to pass to the :meth:`~pyrofork.Client.listen` method.
 
         Example:
             .. code-block:: python
@@ -410,7 +410,7 @@ class User(Object, Update):
         return self._client.stop_listening(*args, user_id=self.id, **kwargs)
 
     async def archive(self):
-        """Bound method *archive* of :obj:`~pyrogram.types.User`.
+        """Bound method *archive* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
@@ -433,7 +433,7 @@ class User(Object, Update):
         return await self._client.archive_chats(self.id)
 
     async def unarchive(self):
-        """Bound method *unarchive* of :obj:`~pyrogram.types.User`.
+        """Bound method *unarchive* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
@@ -456,7 +456,7 @@ class User(Object, Update):
         return await self._client.unarchive_chats(self.id)
 
     def block(self):
-        """Bound method *block* of :obj:`~pyrogram.types.User`.
+        """Bound method *block* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
@@ -479,7 +479,7 @@ class User(Object, Update):
         return self._client.block_user(self.id)
 
     def unblock(self):
-        """Bound method *unblock* of :obj:`~pyrogram.types.User`.
+        """Bound method *unblock* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
@@ -502,7 +502,7 @@ class User(Object, Update):
         return self._client.unblock_user(self.id)
 
     def get_common_chats(self):
-        """Bound method *get_common_chats* of :obj:`~pyrogram.types.User`.
+        """Bound method *get_common_chats* of :obj:`~pyrofork.types.User`.
 
         Use as a shortcut for:
 
diff --git a/pyrogram/types/user_and_chats/username.py b/pyrofork/types/user_and_chats/username.py
similarity index 98%
rename from pyrogram/types/user_and_chats/username.py
rename to pyrofork/types/user_and_chats/username.py
index cc57a306..18f7851d 100644
--- a/pyrogram/types/user_and_chats/username.py
+++ b/pyrofork/types/user_and_chats/username.py
@@ -16,7 +16,7 @@
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/video_chat_ended.py b/pyrofork/types/user_and_chats/video_chat_ended.py
similarity index 72%
rename from pyrogram/types/user_and_chats/video_chat_ended.py
rename to pyrofork/types/user_and_chats/video_chat_ended.py
index 8c9fac6a..cdb4948e 100644
--- a/pyrogram/types/user_and_chats/video_chat_ended.py
+++ b/pyrofork/types/user_and_chats/video_chat_ended.py
@@ -1,22 +1,23 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-from pyrogram import raw
+from pyrofork import raw
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/video_chat_members_invited.py b/pyrofork/types/user_and_chats/video_chat_members_invited.py
similarity index 73%
rename from pyrogram/types/user_and_chats/video_chat_members_invited.py
rename to pyrofork/types/user_and_chats/video_chat_members_invited.py
index 9f2e3d1e..7dbfe062 100644
--- a/pyrogram/types/user_and_chats/video_chat_members_invited.py
+++ b/pyrofork/types/user_and_chats/video_chat_members_invited.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from typing import List, Dict
 
-from pyrogram import raw, types
+from pyrofork import raw, types
 from ..object import Object
 
 
@@ -27,7 +28,7 @@ class VideoChatMembersInvited(Object):
 
 
     Parameters:
-        users (List of :obj:`~pyrogram.types.User`):
+        users (List of :obj:`~pyrofork.types.User`):
             New members that were invited to the voice chat.
     """
 
diff --git a/pyrogram/types/user_and_chats/video_chat_scheduled.py b/pyrofork/types/user_and_chats/video_chat_scheduled.py
similarity index 75%
rename from pyrogram/types/user_and_chats/video_chat_scheduled.py
rename to pyrofork/types/user_and_chats/video_chat_scheduled.py
index 5bdd5925..52334594 100644
--- a/pyrogram/types/user_and_chats/video_chat_scheduled.py
+++ b/pyrofork/types/user_and_chats/video_chat_scheduled.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from datetime import datetime
 
-from pyrogram import raw, utils
+from pyrofork import raw, utils
 from ..object import Object
 
 
diff --git a/pyrogram/types/user_and_chats/video_chat_started.py b/pyrofork/types/user_and_chats/video_chat_started.py
similarity index 67%
rename from pyrogram/types/user_and_chats/video_chat_started.py
rename to pyrofork/types/user_and_chats/video_chat_started.py
index ff48b39c..885b92a2 100644
--- a/pyrogram/types/user_and_chats/video_chat_started.py
+++ b/pyrofork/types/user_and_chats/video_chat_started.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 from ..object import Object
 
diff --git a/pyrogram/utils.py b/pyrofork/utils.py
similarity index 98%
rename from pyrogram/utils.py
rename to pyrofork/utils.py
index 853d9a8a..fab95565 100644
--- a/pyrogram/utils.py
+++ b/pyrofork/utils.py
@@ -29,10 +29,10 @@ from getpass import getpass
 from typing import Union, List, Dict, Optional, Any, Callable, TypeVar
 from types import SimpleNamespace
 
-import pyrogram
-from pyrogram import raw, enums
-from pyrogram import types
-from pyrogram.file_id import FileId, FileType, PHOTO_TYPES, DOCUMENT_TYPES
+import pyrofork
+from pyrofork import raw, enums
+from pyrofork import types
+from pyrofork.file_id import FileId, FileType, PHOTO_TYPES, DOCUMENT_TYPES
 
 
 PyromodConfig = SimpleNamespace(
@@ -144,7 +144,7 @@ async def parse_messages(
                 value.reply_to_peer_id
                 for value in messages_with_replies.values()
             )
-            reply_messages: List[pyrogram.types.Message] = []
+            reply_messages: List[pyrofork.types.Message] = []
             if is_all_within_chat:
                 # fast path: fetch all messages within the same chat
                 reply_messages = await client.get_messages(
@@ -412,7 +412,7 @@ def compute_password_check(
 
 
 async def parse_text_entities(
-    client: "pyrogram.Client",
+    client: "pyrofork.Client",
     text: str,
     parse_mode: enums.ParseMode,
     entities: List["types.MessageEntity"]
@@ -448,7 +448,7 @@ async def run_sync(func: Callable[..., TypeVar("Result")], *args: Any, **kwargs:
     return await loop.run_in_executor(None, functools.partial(func, *args, **kwargs))
 
 async def get_reply_to(
-    client: "pyrogram.Client",
+    client: "pyrofork.Client",
     chat_id: Union[int,str] = None,
     reply_to_message_id: int = None,
     reply_to_story_id: int = None,
diff --git a/pyrogram/types/inline_mode/inline_query_result.py b/pyrogram/types/inline_mode/inline_query_result.py
deleted file mode 100644
index 8548e023..00000000
--- a/pyrogram/types/inline_mode/inline_query_result.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
-#  Copyright (C) 2017-present Dan 
-#
-#  This file is part of Pyrogram.
-#
-#  Pyrogram is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU Lesser General Public License as published
-#  by the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  Pyrogram is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
-
-from uuid import uuid4
-
-import pyrogram
-from pyrogram import types
-from ..object import Object
-
-
-class InlineQueryResult(Object):
-    """One result of an inline query.
-
-    - :obj:`~pyrogram.types.InlineQueryResultCachedAudio`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedDocument`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedAnimation`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedPhoto`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedSticker`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedVideo`
-    - :obj:`~pyrogram.types.InlineQueryResultCachedVoice`
-    - :obj:`~pyrogram.types.InlineQueryResultArticle`
-    - :obj:`~pyrogram.types.InlineQueryResultAudio`
-    - :obj:`~pyrogram.types.InlineQueryResultContact`
-    - :obj:`~pyrogram.types.InlineQueryResultDocument`
-    - :obj:`~pyrogram.types.InlineQueryResultAnimation`
-    - :obj:`~pyrogram.types.InlineQueryResultLocation`
-    - :obj:`~pyrogram.types.InlineQueryResultPhoto`
-    - :obj:`~pyrogram.types.InlineQueryResultVenue`
-    - :obj:`~pyrogram.types.InlineQueryResultVideo`
-    - :obj:`~pyrogram.types.InlineQueryResultVoice`
-    """
-
-    def __init__(
-        self,
-        type: str,
-        id: str,
-        input_message_content: "types.InputMessageContent",
-        reply_markup: "types.InlineKeyboardMarkup"
-    ):
-        super().__init__()
-
-        self.type = type
-        self.id = str(uuid4()) if id is None else str(id)
-        self.input_message_content = input_message_content
-        self.reply_markup = reply_markup
-
-    async def write(self, client: "pyrogram.Client"):
-        pass
diff --git a/pyrogram/types/input_message_content/input_message_content.py b/pyrogram/types/input_message_content/input_message_content.py
deleted file mode 100644
index 2b463932..00000000
--- a/pyrogram/types/input_message_content/input_message_content.py
+++ /dev/null
@@ -1,40 +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 pyrogram
-
-from ..object import Object
-
-"""- :obj:`~pyrogram.types.InputLocationMessageContent`
-    - :obj:`~pyrogram.types.InputVenueMessageContent`
-    - :obj:`~pyrogram.types.InputContactMessageContent`"""
-
-
-class InputMessageContent(Object):
-    """Content of a message to be sent as a result of an inline query.
-
-    Pyrogram currently supports the following types:
-
-    - :obj:`~pyrogram.types.InputTextMessageContent`
-    """
-
-    def __init__(self):
-        super().__init__()
-
-    async def write(self, client: "pyrogram.Client", reply_markup):
-        raise NotImplementedError
diff --git a/tests/__init__.py b/tests/__init__.py
index 46887cb7..c0ec805b 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,17 +1,18 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
diff --git a/tests/filters/__init__.py b/tests/filters/__init__.py
index 6711b51b..ebce97ce 100644
--- a/tests/filters/__init__.py
+++ b/tests/filters/__init__.py
@@ -1,20 +1,21 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 class Client:
     def __init__(self):
diff --git a/tests/filters/test_command.py b/tests/filters/test_command.py
index 234ed69f..0a702b4f 100644
--- a/tests/filters/test_command.py
+++ b/tests/filters/test_command.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import pytest
 
-from pyrogram import filters
+from pyrofork import filters
 from tests.filters import Client, Message
 
 c = Client()
diff --git a/tests/parser/__init__.py b/tests/parser/__init__.py
index 46887cb7..c0ec805b 100644
--- a/tests/parser/__init__.py
+++ b/tests/parser/__init__.py
@@ -1,17 +1,18 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
diff --git a/tests/parser/test_html.py b/tests/parser/test_html.py
index b9138f3c..fb57a2f0 100644
--- a/tests/parser/test_html.py
+++ b/tests/parser/test_html.py
@@ -1,23 +1,24 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
-import pyrogram
-from pyrogram.parser.html import HTML
+import pyrofork
+from pyrofork.parser.html import HTML
 
 
 # expected: the expected unparsed HTML
@@ -27,8 +28,8 @@ from pyrogram.parser.html import HTML
 def test_html_unparse_bold():
     expected = "bold"
     text = "bold"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.BOLD, offset=0, length=4)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.BOLD, offset=0, length=4)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -36,8 +37,8 @@ def test_html_unparse_bold():
 def test_html_unparse_italic():
     expected = "italic"
     text = "italic"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.ITALIC, offset=0, length=6)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.ITALIC, offset=0, length=6)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -45,8 +46,8 @@ def test_html_unparse_italic():
 def test_html_unparse_underline():
     expected = "underline"
     text = "underline"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.UNDERLINE, offset=0, length=9)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.UNDERLINE, offset=0, length=9)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -54,8 +55,8 @@ def test_html_unparse_underline():
 def test_html_unparse_strike():
     expected = "strike"
     text = "strike"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.STRIKETHROUGH, offset=0, length=6)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.STRIKETHROUGH, offset=0, length=6)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -63,17 +64,17 @@ def test_html_unparse_strike():
 def test_html_unparse_spoiler():
     expected = "spoiler"
     text = "spoiler"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.SPOILER, offset=0, length=7)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.SPOILER, offset=0, length=7)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
 
 def test_html_unparse_url():
-    expected = 'URL'
+    expected = 'URL'
     text = "URL"
-    entities = pyrogram.types.List([pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.TEXT_LINK,
-                                                                 offset=0, length=3, url='https://pyrogram.org/')])
+    entities = pyrofork.types.List([pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.TEXT_LINK,
+                                                                 offset=0, length=3, url='https://pyrofork.org/')])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -81,8 +82,8 @@ def test_html_unparse_url():
 def test_html_unparse_code():
     expected = 'code'
     text = "code"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.CODE, offset=0, length=4)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.CODE, offset=0, length=4)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -94,7 +95,7 @@ def test_html_unparse_pre():
     text = """for i in range(10):
     print(i)"""
 
-    entities = pyrogram.types.List([pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.PRE, offset=0,
+    entities = pyrofork.types.List([pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.PRE, offset=0,
                                                                  length=32, language='python')])
 
     assert HTML.unparse(text=text, entities=entities) == expected
@@ -104,18 +105,18 @@ def test_html_unparse_mixed():
     expected = "aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd" \
                "eeeeeeeeeeffffffffffgggggggggghhhhhhhhhh"
     text = "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhh"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.BOLD, offset=0, length=14),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.ITALIC, offset=7, length=7),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.UNDERLINE, offset=10, length=4),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.UNDERLINE, offset=14, length=9),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.ITALIC, offset=14, length=9),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.UNDERLINE, offset=23, length=10),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.STRIKETHROUGH, offset=30, length=3),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.STRIKETHROUGH, offset=33, length=10),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.SPOILER, offset=38, length=5),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.SPOILER, offset=43, length=10),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.CODE, offset=57, length=10)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.BOLD, offset=0, length=14),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.ITALIC, offset=7, length=7),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.UNDERLINE, offset=10, length=4),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.UNDERLINE, offset=14, length=9),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.ITALIC, offset=14, length=9),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.UNDERLINE, offset=23, length=10),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.STRIKETHROUGH, offset=30, length=3),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.STRIKETHROUGH, offset=33, length=10),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.SPOILER, offset=38, length=5),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.SPOILER, offset=43, length=10),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.CODE, offset=57, length=10)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -123,8 +124,8 @@ def test_html_unparse_mixed():
 def test_html_unparse_escaped():
     expected = "<b>bold</b>"
     text = "bold"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.BOLD, offset=0, length=11)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.BOLD, offset=0, length=11)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
@@ -132,9 +133,9 @@ def test_html_unparse_escaped():
 def test_html_unparse_escaped_nested():
     expected = "<b>bold <u>underline</u> bold</b>"
     text = "bold underline bold"
-    entities = pyrogram.types.List(
-        [pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.BOLD, offset=0, length=33),
-         pyrogram.types.MessageEntity(type=pyrogram.enums.MessageEntityType.UNDERLINE, offset=8, length=16)])
+    entities = pyrofork.types.List(
+        [pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.BOLD, offset=0, length=33),
+         pyrofork.types.MessageEntity(type=pyrofork.enums.MessageEntityType.UNDERLINE, offset=8, length=16)])
 
     assert HTML.unparse(text=text, entities=entities) == expected
 
diff --git a/tests/test_file_id.py b/tests/test_file_id.py
index 96152e48..e3aa2c34 100644
--- a/tests/test_file_id.py
+++ b/tests/test_file_id.py
@@ -1,24 +1,25 @@
-#  Pyrogram - Telegram MTProto API Client Library for Python
+#  Pyrofork - Telegram MTProto API Client Library for Python
 #  Copyright (C) 2017-present Dan 
+#  Copyright (C) 2022-present Mayuri-Chan 
 #
-#  This file is part of Pyrogram.
+#  This file is part of Pyrofork.
 #
-#  Pyrogram is free software: you can redistribute it and/or modify
+#  Pyrofork is free software: you can redistribute it and/or modify
 #  it under the terms of the GNU Lesser General Public License as published
 #  by the Free Software Foundation, either version 3 of the License, or
 #  (at your option) any later version.
 #
-#  Pyrogram is distributed in the hope that it will be useful,
+#  Pyrofork is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU Lesser General Public License for more details.
 #
 #  You should have received a copy of the GNU Lesser General Public License
-#  along with Pyrogram.  If not, see .
+#  along with Pyrofork.  If not, see .
 
 import pytest
 
-from pyrogram.file_id import FileId, FileUniqueId, FileType, FileUniqueType
+from pyrofork.file_id import FileId, FileUniqueId, FileType, FileUniqueType
 
 
 def check(file_id: str, expected_file_type: FileType):