Merge develop -> asyncio-dev

This commit is contained in:
Dan 2020-07-17 13:43:10 +02:00
commit aa078f103c
17 changed files with 40 additions and 39 deletions

View File

@ -26,7 +26,7 @@ NOTICE_PATH = "NOTICE"
SECTION_RE = re.compile(r"---(\w+)---") SECTION_RE = re.compile(r"---(\w+)---")
LAYER_RE = re.compile(r"//\sLAYER\s(\d+)") LAYER_RE = re.compile(r"//\sLAYER\s(\d+)")
COMBINATOR_RE = re.compile(r"^([\w.]+)#([0-9a-f]+)\s(?:.*)=\s([\w<>.]+);(?: // Docs: (.+))?$", re.MULTILINE) COMBINATOR_RE = re.compile(r"^([\w.]+)#([0-9a-f]+)\s(?:.*)=\s([\w<>.]+);(?: // Docs: (.+))?$", re.MULTILINE)
ARGS_RE = re.compile("[^{](\w+):([\w?!.<>#]+)") ARGS_RE = re.compile(r"[^{](\w+):([\w?!.<>#]+)")
FLAGS_RE = re.compile(r"flags\.(\d+)\?") FLAGS_RE = re.compile(r"flags\.(\d+)\?")
FLAGS_RE_2 = re.compile(r"flags\.(\d+)\?([\w<>.]+)") FLAGS_RE_2 = re.compile(r"flags\.(\d+)\?([\w<>.]+)")
FLAGS_RE_3 = re.compile(r"flags:#") FLAGS_RE_3 = re.compile(r"flags:#")

View File

@ -106,7 +106,7 @@ Welcome to Pyrogram
@app.on_message(Filters.private) @app.on_message(Filters.private)
def hello(client, message): def hello(client, message):
message.reply_text("Hello {}".format(message.from_user.first_name)) message.reply_text(f"Hello {message.from_user.first_name}")
app.run() app.run()

View File

@ -71,5 +71,15 @@ Projects Showcase
----- -----
`Pyrubrum <https://github.com/hearot/pyrubrum>`_
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| **An intuitive framework for creating Telegram bots**
| --- by `Hearot <https://t.me/hearot>`_
- Source Code: https://github.com/hearot/pyrubrum
-----
.. _Feature Request: https://github.com/pyrogram/pyrogram/issues/new?labels=enhancement&template=feature_request.md .. _Feature Request: https://github.com/pyrogram/pyrogram/issues/new?labels=enhancement&template=feature_request.md

View File

@ -26,7 +26,7 @@ import shutil
import tempfile import tempfile
from configparser import ConfigParser from configparser import ConfigParser
from hashlib import sha256, md5 from hashlib import sha256, md5
from importlib import import_module, reload from importlib import import_module
from pathlib import Path from pathlib import Path
from signal import signal, SIGINT, SIGTERM, SIGABRT from signal import signal, SIGINT, SIGTERM, SIGABRT
from typing import Union, List, BinaryIO from typing import Union, List, BinaryIO
@ -1527,7 +1527,7 @@ class Client(Methods, BaseClient):
if not include: if not include:
for path in sorted(Path(root.replace(".", "/")).rglob("*.py")): for path in sorted(Path(root.replace(".", "/")).rglob("*.py")):
module_path = '.'.join(path.parent.parts + (path.stem,)) module_path = '.'.join(path.parent.parts + (path.stem,))
module = reload(import_module(module_path)) module = import_module(module_path)
for name in vars(module).keys(): for name in vars(module).keys():
# noinspection PyBroadException # noinspection PyBroadException
@ -1549,7 +1549,7 @@ class Client(Methods, BaseClient):
warn_non_existent_functions = True warn_non_existent_functions = True
try: try:
module = reload(import_module(module_path)) module = import_module(module_path)
except ImportError: except ImportError:
log.warning('[{}] [LOAD] Ignoring non-existent module "{}"'.format( log.warning('[{}] [LOAD] Ignoring non-existent module "{}"'.format(
self.session_name, module_path)) self.session_name, module_path))
@ -1653,7 +1653,7 @@ class Client(Methods, BaseClient):
try: try:
return self.storage.get_peer_by_id(peer_id) return self.storage.get_peer_by_id(peer_id)
except KeyError: except KeyError:
if type(peer_id) is str: if isinstance(peer_id, str):
if peer_id in ("self", "me"): if peer_id in ("self", "me"):
return types.InputPeerSelf() return types.InputPeerSelf()

View File

@ -277,11 +277,11 @@ class Filters:
return False return False
commands = commands if type(commands) is list else [commands] commands = commands if isinstance(commands, list) else [commands]
commands = {c if case_sensitive else c.lower() for c in commands} commands = {c if case_sensitive else c.lower() for c in commands}
prefixes = [] if prefixes is None else prefixes prefixes = [] if prefixes is None else prefixes
prefixes = prefixes if type(prefixes) is list else [prefixes] prefixes = prefixes if isinstance(prefixes, list) else [prefixes]
prefixes = set(prefixes) if prefixes else {""} prefixes = set(prefixes) if prefixes else {""}
return create( return create(
@ -345,11 +345,11 @@ class Filters:
""" """
def __init__(self, users: int or str or list = None): def __init__(self, users: int or str or list = None):
users = [] if users is None else users if type(users) is list else [users] users = [] if users is None else users if isinstance(users, list) else [users]
super().__init__( super().__init__(
"me" if u in ["me", "self"] "me" if u in ["me", "self"]
else u.lower().strip("@") if type(u) is str else u.lower().strip("@") if isinstance(u, str)
else u for u in users else u for u in users
) )
@ -376,11 +376,11 @@ class Filters:
""" """
def __init__(self, chats: int or str or list = None): def __init__(self, chats: int or str or list = None):
chats = [] if chats is None else chats if type(chats) is list else [chats] chats = [] if chats is None else chats if isinstance(chats, list) else [chats]
super().__init__( super().__init__(
"me" if c in ["me", "self"] "me" if c in ["me", "self"]
else c.lower().strip("@") if type(c) is str else c.lower().strip("@") if isinstance(c, str)
else c for c in chats else c for c in chats
) )

View File

@ -18,7 +18,7 @@
from typing import Union from typing import Union
from pyrogram.api import functions, types from pyrogram.api import functions
from pyrogram.client.ext import BaseClient from pyrogram.client.ext import BaseClient

View File

@ -23,7 +23,6 @@ from typing import Union, List
import pyrogram import pyrogram
from pyrogram.api import functions from pyrogram.api import functions
from pyrogram.client.ext import utils from pyrogram.client.ext import utils
from pyrogram.errors import FloodWait
from ...ext import BaseClient from ...ext import BaseClient
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View File

@ -22,7 +22,6 @@ from typing import Union, Iterable, List
import pyrogram import pyrogram
from pyrogram.api import functions, types from pyrogram.api import functions, types
from pyrogram.errors import FloodWait
from ...ext import BaseClient, utils from ...ext import BaseClient, utils
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View File

@ -33,7 +33,6 @@
from base64 import b64encode from base64 import b64encode
from struct import pack from struct import pack
from typing import Union
import pyrogram import pyrogram
from pyrogram.api import types from pyrogram.api import types
@ -41,7 +40,6 @@ from pyrogram.client.types.object import Object
from pyrogram.client.types.update import Update from pyrogram.client.types.update import Update
from pyrogram.client.types.user_and_chats import User from pyrogram.client.types.user_and_chats import User
from pyrogram.client.types.messages_and_media import Location from pyrogram.client.types.messages_and_media import Location
from pyrogram.client.ext import utils
class ChosenInlineResult(Object, Update): class ChosenInlineResult(Object, Update):

View File

@ -16,14 +16,9 @@
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>. # along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
from struct import pack
from typing import List
import pyrogram import pyrogram
from pyrogram.api import types from pyrogram.api import types
from .thumbnail import Thumbnail
from ..object import Object from ..object import Object
from ...ext.utils import encode_file_id, encode_file_ref
class Dice(Object): class Dice(Object):

View File

@ -23,7 +23,7 @@ from pyrogram.api.core import Message, MsgContainer, TLObject
from .msg_id import MsgId from .msg_id import MsgId
from .seq_no import SeqNo from .seq_no import SeqNo
not_content_related = [Ping, HttpWait, MsgsAck, MsgContainer] not_content_related = (Ping, HttpWait, MsgsAck, MsgContainer)
class MsgFactory: class MsgFactory:
@ -34,6 +34,6 @@ class MsgFactory:
return Message( return Message(
body, body,
MsgId(), MsgId(),
self.seq_no(type(body) not in not_content_related), self.seq_no(not isinstance(body, not_content_related)),
len(body) len(body)
) )