mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 20:14:51 +00:00
pyrofork: Fix critical issue
Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
parent
8b2ae07ea0
commit
fb7d5a46a2
19 changed files with 128 additions and 47 deletions
|
|
@ -442,12 +442,12 @@ def start(format: bool = False):
|
|||
references, count = get_references(c.qualname, "constructors")
|
||||
|
||||
if references:
|
||||
docstring += f"\n Functions:\n This object can be returned by " \
|
||||
docstring += "\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" .. autosummary::\n" \
|
||||
f" :nosignatures:\n\n" \
|
||||
f" " + references
|
||||
" .. currentmodule:: pyrogram.raw.functions\n\n" \
|
||||
" .. autosummary::\n" \
|
||||
" :nosignatures:\n\n" \
|
||||
" " + references
|
||||
|
||||
write_types = read_types = "" if c.has_flags else "# No flags\n "
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ from pygments.styles.friendly import FriendlyStyle
|
|||
FriendlyStyle.background_color = "#f3f2f1"
|
||||
|
||||
project = "Pyrofork"
|
||||
copyright = f"2022-present, Mayuri-Chan"
|
||||
copyright = "2022-present, Mayuri-Chan"
|
||||
author = "Mayuri-Chan"
|
||||
|
||||
version = ".".join(__version__.split(".")[:-1])
|
||||
|
|
|
|||
|
|
@ -17,13 +17,17 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from concurrent.futures.thread import ThreadPoolExecutor
|
||||
|
||||
from . import raw, types, filters, handlers, emoji, enums
|
||||
from .client import Client
|
||||
from .sync import idle, compose
|
||||
|
||||
__fork_name__ = "PyroFork"
|
||||
__version__ = "2.3.59"
|
||||
__license__ = "GNU Lesser General Public License v3.0 (LGPL-3.0)"
|
||||
__copyright__ = "Copyright (C) 2022-present Mayuri-Chan <https://github.com/Mayuri-Chan>"
|
||||
|
||||
from concurrent.futures.thread import ThreadPoolExecutor
|
||||
|
||||
|
||||
class StopTransmission(Exception):
|
||||
pass
|
||||
|
|
@ -36,9 +40,20 @@ class StopPropagation(StopAsyncIteration):
|
|||
class ContinuePropagation(StopAsyncIteration):
|
||||
pass
|
||||
|
||||
|
||||
from . import raw, types, filters, handlers, emoji, enums
|
||||
from .client import Client
|
||||
from .sync import idle, compose
|
||||
|
||||
crypto_executor = ThreadPoolExecutor(1, thread_name_prefix="CryptoWorker")
|
||||
|
||||
__all__ = [
|
||||
"Client",
|
||||
"idle",
|
||||
"compose",
|
||||
"crypto_executor",
|
||||
"StopTransmission",
|
||||
"StopPropagation",
|
||||
"ContinuePropagation",
|
||||
"raw",
|
||||
"types",
|
||||
"filters",
|
||||
"handlers",
|
||||
"emoji",
|
||||
"enums",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ from importlib import import_module
|
|||
from io import StringIO, BytesIO
|
||||
from mimetypes import MimeTypes
|
||||
from pathlib import Path
|
||||
from typing import Union, List, Optional, Callable, AsyncGenerator, Type, Tuple
|
||||
from typing import Union, List, Optional, Callable, AsyncGenerator, Tuple
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import __version__, __license__
|
||||
|
|
@ -51,24 +51,26 @@ 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 pyrogram.types import User, TermsOfService
|
||||
from pyrogram.utils import ainput
|
||||
from .connection import Connection
|
||||
from .connection.transport import TCPAbridged
|
||||
from .dispatcher import Dispatcher
|
||||
from .file_id import FileId, FileType, ThumbnailSource
|
||||
from .mime_types import mime_types
|
||||
from .parser import Parser
|
||||
from .session.internals import MsgId
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
MONGO_AVAIL = False
|
||||
|
||||
try:
|
||||
import pymongo
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
from pyrogram.storage import MongoStorage
|
||||
from pyrogram.types import User, TermsOfService
|
||||
from pyrogram.utils import ainput
|
||||
from .connection import Connection
|
||||
from .connection.transport import TCP, TCPAbridged
|
||||
from .dispatcher import Dispatcher
|
||||
from .file_id import FileId, FileType, ThumbnailSource
|
||||
from .filters import Filter
|
||||
from .mime_types import mime_types
|
||||
from .parser import Parser
|
||||
from .session.internals import MsgId
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
MONGO_AVAIL = True
|
||||
|
||||
|
||||
class Client(Methods):
|
||||
|
|
@ -316,9 +318,7 @@ class Client(Methods):
|
|||
elif self.in_memory:
|
||||
self.storage = MemoryStorage(self.name)
|
||||
elif self.mongodb:
|
||||
try:
|
||||
import pymongo
|
||||
except Exception:
|
||||
if not MONGO_AVAIL:
|
||||
log.warning(
|
||||
"pymongo is missing! "
|
||||
"Using MemoryStorage as session storage"
|
||||
|
|
@ -953,7 +953,7 @@ class Client(Methods):
|
|||
)
|
||||
|
||||
count += 1
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
for path, handlers in include:
|
||||
|
|
|
|||
|
|
@ -23,3 +23,13 @@ from .tcp_abridged_o import TCPAbridgedO
|
|||
from .tcp_full import TCPFull
|
||||
from .tcp_intermediate import TCPIntermediate
|
||||
from .tcp_intermediate_o import TCPIntermediateO
|
||||
|
||||
__all__ = [
|
||||
"TCP",
|
||||
"Proxy",
|
||||
"TCPAbridged",
|
||||
"TCPAbridgedO",
|
||||
"TCPFull",
|
||||
"TCPIntermediate",
|
||||
"TCPIntermediateO"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ def unpack(
|
|||
message = Message.read(data)
|
||||
except KeyError as e:
|
||||
if e.args[0] == 0:
|
||||
raise ConnectionError(f"Received empty data. Check your internet connection.")
|
||||
raise ConnectionError("Received empty data. Check your internet connection.")
|
||||
|
||||
left = data.read().hex()
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ def unpack(
|
|||
left = [[left[i:i + 8] for i in range(0, len(left), 8)] for left in left]
|
||||
left = "\n".join(" ".join(x for x in left) for left in left)
|
||||
|
||||
raise ValueError(f"The server sent an unknown constructor: {hex(e.args[0])}\n{left}")
|
||||
raise ValueError("The server sent an unknown constructor: {hex(e.args[0])}\n{left}")
|
||||
|
||||
# https://core.telegram.org/mtproto/security_guidelines#checking-sha256-hash-value-of-msg-key
|
||||
# 96 = 88 + 8 (incoming message)
|
||||
|
|
|
|||
|
|
@ -42,3 +42,31 @@ from .message_reaction_updated_handler import MessageReactionUpdatedHandler
|
|||
from .message_reaction_count_updated_handler import MessageReactionCountUpdatedHandler
|
||||
from .pre_checkout_query_handler import PreCheckoutQueryHandler
|
||||
from .shipping_query_handler import ShippingQueryHandler
|
||||
|
||||
__all__ = [
|
||||
"BotBusinessConnectHandler",
|
||||
"BotBusinessMessageHandler",
|
||||
"CallbackQueryHandler",
|
||||
"ChatJoinRequestHandler",
|
||||
"ChatMemberUpdatedHandler",
|
||||
"ConversationHandler",
|
||||
"ChosenInlineResultHandler",
|
||||
"DeletedMessagesHandler",
|
||||
"DeletedBotBusinessMessagesHandler",
|
||||
"DisconnectHandler",
|
||||
"EditedMessageHandler",
|
||||
"EditedBotBusinessMessageHandler",
|
||||
"ErrorHandler",
|
||||
"InlineQueryHandler",
|
||||
"MessageHandler",
|
||||
"PollHandler",
|
||||
"PreCheckoutQueryHandler",
|
||||
"PurchasedPaidMediaHandler",
|
||||
"RawUpdateHandler",
|
||||
"UserStatusHandler",
|
||||
"StoryHandler",
|
||||
"MessageReactionUpdatedHandler",
|
||||
"MessageReactionCountUpdatedHandler",
|
||||
"PreCheckoutQueryHandler",
|
||||
"ShippingQueryHandler",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -101,9 +101,9 @@ def kb(rows=None, **kwargs):
|
|||
line = []
|
||||
for button in row:
|
||||
button_type = type(button)
|
||||
if button_type == str:
|
||||
if isinstance(button_type, str):
|
||||
button = KeyboardButton(button)
|
||||
elif button_type == dict:
|
||||
elif isinstance(button_type, dict):
|
||||
button = KeyboardButton(**button)
|
||||
|
||||
line.append(button)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||
import pyrogram
|
||||
from pyrogram import raw
|
||||
from pyrogram import types
|
||||
from typing import Union
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from typing import Callable, Optional, Union
|
||||
from typing import Callable
|
||||
|
||||
import pyrogram
|
||||
from pyrogram.filters import Filter
|
||||
|
|
|
|||
|
|
@ -180,8 +180,12 @@ class CopyMediaGroup:
|
|||
**await self.parser.parse(
|
||||
captions[i] if isinstance(captions, list) and i < len(captions) and captions[i] else
|
||||
captions if isinstance(captions, str) and i == 0 else
|
||||
message.caption if message.caption and message.caption != "None" and not type(
|
||||
captions) is str else "")
|
||||
message.caption if (
|
||||
message.caption
|
||||
and message.caption != "None"
|
||||
and not isinstance(captions, str)
|
||||
) else ""
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import html
|
||||
import logging
|
||||
import re
|
||||
from typing import Optional
|
||||
|
||||
|
|
|
|||
|
|
@ -30,3 +30,24 @@ from .primitives.int import Int, Long, Int128, Int256
|
|||
from .primitives.string import String
|
||||
from .primitives.vector import Vector
|
||||
from .tl_object import TLObject
|
||||
|
||||
__all__ = [
|
||||
"FutureSalt",
|
||||
"FutureSalts",
|
||||
"GzipPacked",
|
||||
"List",
|
||||
"Message",
|
||||
"MsgContainer",
|
||||
"Bool",
|
||||
"BoolFalse",
|
||||
"BoolTrue",
|
||||
"Bytes",
|
||||
"Double",
|
||||
"Int",
|
||||
"Long",
|
||||
"Int128",
|
||||
"Int256",
|
||||
"String",
|
||||
"Vector",
|
||||
"TLObject"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -20,3 +20,9 @@
|
|||
from .data_center import DataCenter
|
||||
from .msg_factory import MsgFactory
|
||||
from .msg_id import MsgId
|
||||
|
||||
__all__ = [
|
||||
"DataCenter",
|
||||
"MsgFactory",
|
||||
"MsgId"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -30,3 +30,8 @@ from .update import *
|
|||
from .user_and_chats import *
|
||||
from .payments import *
|
||||
from .pyromod import *
|
||||
|
||||
__all__ = [
|
||||
"List",
|
||||
"Object"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@
|
|||
|
||||
from typing import List
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw, types, utils
|
||||
from pyrogram import raw, types
|
||||
|
||||
from ..object import Object
|
||||
|
||||
|
|
|
|||
|
|
@ -16,11 +16,8 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from typing import List, Optional, Union
|
||||
|
||||
import pyrogram
|
||||
from pyrogram import raw
|
||||
from pyrogram.file_id import FileId, FileType, FileUniqueId, FileUniqueType, ThumbnailSource
|
||||
from ..object import Object
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class TranscribedAudio(Object):
|
|||
self.trial_remains_until_date = trial_remains_until_date
|
||||
|
||||
@staticmethod
|
||||
def _parse(transcribe_result: "raw.types.messages.TranscribedAudio") -> "TranscribeAudio":
|
||||
def _parse(transcribe_result: "raw.types.messages.TranscribedAudio") -> "TranscribedAudio":
|
||||
return TranscribedAudio(
|
||||
transcription_id=transcribe_result.transcription_id,
|
||||
text=transcribe_result.text,
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with Pyrofork. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import pyrogram
|
||||
|
||||
from pyrogram import raw
|
||||
from ..object import Object
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue