diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py
index 993af2f0..75993559 100644
--- a/pyrogram/client/client.py
+++ b/pyrogram/client/client.py
@@ -48,8 +48,6 @@ from .methods import Methods
from .storage import Storage, FileStorage, MemoryStorage
from .types import User, SentCode, TermsOfService
-log = logging.getLogger(__name__)
-
class Client(Methods, BaseClient):
"""Pyrogram Client, the main means for interacting with Telegram.
@@ -342,7 +340,7 @@ class Client(Methods, BaseClient):
if self.takeout_id:
self.send(functions.account.FinishTakeoutSession())
- log.warning("Takeout session {} finished".format(self.takeout_id))
+ logging.warning("Takeout session {} finished".format(self.takeout_id))
Syncer.remove(self)
self.dispatcher.stop()
@@ -730,7 +728,7 @@ class Client(Methods, BaseClient):
print(e.MESSAGE.format(x=e.x))
time.sleep(e.x)
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
raise
else:
self.password = None
@@ -830,7 +828,7 @@ class Client(Methods, BaseClient):
if not self.storage.is_bot and self.takeout:
self.takeout_id = self.send(functions.account.InitTakeoutSession()).id
- log.warning("Takeout session {} initiated".format(self.takeout_id))
+ logging.warning("Takeout session {} initiated".format(self.takeout_id))
self.send(functions.updates.GetState())
except (Exception, KeyboardInterrupt):
@@ -1229,7 +1227,7 @@ class Client(Methods, BaseClient):
def download_worker(self):
name = threading.current_thread().name
- log.debug("{} started".format(name))
+ logging.debug("{} started".format(name))
while True:
packet = self.download_queue.get()
@@ -1264,7 +1262,7 @@ class Client(Methods, BaseClient):
os.makedirs(directory, exist_ok=True)
shutil.move(temp_file_path, final_file_path)
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
try:
os.remove(temp_file_path)
@@ -1278,11 +1276,11 @@ class Client(Methods, BaseClient):
finally:
done.set()
- log.debug("{} stopped".format(name))
+ logging.debug("{} stopped".format(name))
def updates_worker(self):
name = threading.current_thread().name
- log.debug("{} started".format(name))
+ logging.debug("{} started".format(name))
while True:
updates = self.updates_queue.get()
@@ -1310,7 +1308,7 @@ class Client(Methods, BaseClient):
pts_count = getattr(update, "pts_count", None)
if isinstance(update, types.UpdateChannelTooLong):
- log.warning(update)
+ logging.warning(update)
if isinstance(update, types.UpdateNewChannelMessage) and is_min:
message = update.message
@@ -1362,11 +1360,11 @@ class Client(Methods, BaseClient):
elif isinstance(updates, types.UpdateShort):
self.dispatcher.updates_queue.put((updates.update, {}, {}))
elif isinstance(updates, types.UpdatesTooLong):
- log.info(updates)
+ logging.info(updates)
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
- log.debug("{} stopped".format(name))
+ logging.debug("{} stopped".format(name))
def send(self, data: TLObject, retries: int = Session.MAX_RETRIES, timeout: float = Session.WAIT_TIMEOUT):
"""Send raw Telegram queries.
@@ -1541,7 +1539,7 @@ class Client(Methods, BaseClient):
if isinstance(handler, Handler) and isinstance(group, int):
self.add_handler(handler, group)
- log.info('[{}] [LOAD] {}("{}") in group {} from "{}"'.format(
+ logging.info('[{}] [LOAD] {}("{}") in group {} from "{}"'.format(
self.session_name, type(handler).__name__, name, group, module_path))
count += 1
@@ -1555,12 +1553,12 @@ class Client(Methods, BaseClient):
try:
module = import_module(module_path)
except ImportError:
- log.warning('[{}] [LOAD] Ignoring non-existent module "{}"'.format(
+ logging.warning('[{}] [LOAD] Ignoring non-existent module "{}"'.format(
self.session_name, module_path))
continue
if "__path__" in dir(module):
- log.warning('[{}] [LOAD] Ignoring namespace "{}"'.format(
+ logging.warning('[{}] [LOAD] Ignoring namespace "{}"'.format(
self.session_name, module_path))
continue
@@ -1576,13 +1574,13 @@ class Client(Methods, BaseClient):
if isinstance(handler, Handler) and isinstance(group, int):
self.add_handler(handler, group)
- log.info('[{}] [LOAD] {}("{}") in group {} from "{}"'.format(
+ logging.info('[{}] [LOAD] {}("{}") in group {} from "{}"'.format(
self.session_name, type(handler).__name__, name, group, module_path))
count += 1
except Exception:
if warn_non_existent_functions:
- log.warning('[{}] [LOAD] Ignoring non-existent function "{}" from "{}"'.format(
+ logging.warning('[{}] [LOAD] Ignoring non-existent function "{}" from "{}"'.format(
self.session_name, name, module_path))
if exclude:
@@ -1593,12 +1591,12 @@ class Client(Methods, BaseClient):
try:
module = import_module(module_path)
except ImportError:
- log.warning('[{}] [UNLOAD] Ignoring non-existent module "{}"'.format(
+ logging.warning('[{}] [UNLOAD] Ignoring non-existent module "{}"'.format(
self.session_name, module_path))
continue
if "__path__" in dir(module):
- log.warning('[{}] [UNLOAD] Ignoring namespace "{}"'.format(
+ logging.warning('[{}] [UNLOAD] Ignoring namespace "{}"'.format(
self.session_name, module_path))
continue
@@ -1614,20 +1612,20 @@ class Client(Methods, BaseClient):
if isinstance(handler, Handler) and isinstance(group, int):
self.remove_handler(handler, group)
- log.info('[{}] [UNLOAD] {}("{}") from group {} in "{}"'.format(
+ logging.info('[{}] [UNLOAD] {}("{}") from group {} in "{}"'.format(
self.session_name, type(handler).__name__, name, group, module_path))
count -= 1
except Exception:
if warn_non_existent_functions:
- log.warning('[{}] [UNLOAD] Ignoring non-existent function "{}" from "{}"'.format(
+ logging.warning('[{}] [UNLOAD] Ignoring non-existent function "{}" from "{}"'.format(
self.session_name, name, module_path))
if count > 0:
- log.warning('[{}] Successfully loaded {} plugin{} from "{}"'.format(
+ logging.warning('[{}] Successfully loaded {} plugin{} from "{}"'.format(
self.session_name, count, "s" if count > 1 else "", root))
else:
- log.warning('[{}] No plugin loaded from "{}"'.format(
+ logging.warning('[{}] No plugin loaded from "{}"'.format(
self.session_name, root))
# def get_initial_dialogs_chunk(self, offset_date: int = 0):
@@ -1644,10 +1642,10 @@ class Client(Methods, BaseClient):
# )
# )
# except FloodWait as e:
- # log.warning("get_dialogs flood: waiting {} seconds".format(e.x))
+ # logging.warning("get_dialogs flood: waiting {} seconds".format(e.x))
# time.sleep(e.x)
# else:
- # log.info("Total peers: {}".format(self.storage.peers_count))
+ # logging.info("Total peers: {}".format(self.storage.peers_count))
# return r
#
# def get_initial_dialogs(self):
@@ -1870,7 +1868,7 @@ class Client(Methods, BaseClient):
except Client.StopTransmission:
raise
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
else:
if is_big:
return types.InputFileBig(
@@ -2096,7 +2094,7 @@ class Client(Methods, BaseClient):
raise e
except Exception as e:
if not isinstance(e, Client.StopTransmission):
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
try:
os.remove(file_name)
diff --git a/pyrogram/client/ext/dispatcher.py b/pyrogram/client/ext/dispatcher.py
index e9cd912e..bacaefad 100644
--- a/pyrogram/client/ext/dispatcher.py
+++ b/pyrogram/client/ext/dispatcher.py
@@ -36,8 +36,6 @@ from ..handlers import (
UserStatusHandler, RawUpdateHandler, InlineQueryHandler, PollHandler
)
-log = logging.getLogger(__name__)
-
class Dispatcher:
NEW_MESSAGE_UPDATES = (
@@ -158,7 +156,7 @@ class Dispatcher:
def update_worker(self, lock):
name = threading.current_thread().name
- log.debug("{} started".format(name))
+ logging.debug("{} started".format(name))
while True:
packet = self.updates_queue.get()
@@ -186,7 +184,7 @@ class Dispatcher:
if handler.check(parsed_update):
args = (parsed_update,)
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
continue
elif isinstance(handler, RawUpdateHandler):
@@ -202,12 +200,12 @@ class Dispatcher:
except pyrogram.ContinuePropagation:
continue
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
break
except pyrogram.StopPropagation:
pass
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
- log.debug("{} stopped".format(name))
+ logging.debug("{} stopped".format(name))
diff --git a/pyrogram/client/ext/syncer.py b/pyrogram/client/ext/syncer.py
index 42e1f95a..188abdc7 100644
--- a/pyrogram/client/ext/syncer.py
+++ b/pyrogram/client/ext/syncer.py
@@ -20,8 +20,6 @@ import logging
import time
from threading import Thread, Event, Lock
-log = logging.getLogger(__name__)
-
class Syncer:
INTERVAL = 20
@@ -79,9 +77,9 @@ class Syncer:
start = time.time()
client.storage.save()
except Exception as e:
- log.critical(e, exc_info=True)
+ logging.critical(e, exc_info=True)
else:
- log.info('Synced "{}" in {:.6} ms'.format(
+ logging.info('Synced "{}" in {:.6} ms'.format(
client.storage.name,
(time.time() - start) * 1000
))
diff --git a/pyrogram/client/methods/chats/get_chat_members.py b/pyrogram/client/methods/chats/get_chat_members.py
index 19b5971e..222fc43f 100644
--- a/pyrogram/client/methods/chats/get_chat_members.py
+++ b/pyrogram/client/methods/chats/get_chat_members.py
@@ -25,8 +25,6 @@ from pyrogram.api import functions, types
from pyrogram.errors import FloodWait
from ...ext import BaseClient
-log = logging.getLogger(__name__)
-
class Filters:
ALL = "all"
@@ -153,7 +151,7 @@ class GetChatMembers(BaseClient):
return pyrogram.List(pyrogram.ChatMember._parse(self, member, users) for member in members)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
raise ValueError("The chat_id \"{}\" belongs to a user".format(chat_id))
diff --git a/pyrogram/client/methods/chats/get_dialogs.py b/pyrogram/client/methods/chats/get_dialogs.py
index 30078d57..67870782 100644
--- a/pyrogram/client/methods/chats/get_dialogs.py
+++ b/pyrogram/client/methods/chats/get_dialogs.py
@@ -25,8 +25,6 @@ from pyrogram.api import functions, types
from pyrogram.errors import FloodWait
from ...ext import BaseClient, utils
-log = logging.getLogger(__name__)
-
class GetDialogs(BaseClient):
def get_dialogs(
@@ -82,7 +80,7 @@ class GetDialogs(BaseClient):
)
)
except FloodWait as e:
- log.warning("Sleeping {}s".format(e.x))
+ logging.warning("Sleeping {}s".format(e.x))
time.sleep(e.x)
else:
break
@@ -111,6 +109,6 @@ class GetDialogs(BaseClient):
if not isinstance(dialog, types.Dialog):
continue
- parsed_dialogs.append(pyrogram.Dialog._parse(self, dialog, messages, users, chats))
+ parsed_dialogs.append(pyrogram.Dialogging._parse(self, dialog, messages, users, chats))
return pyrogram.List(parsed_dialogs)
diff --git a/pyrogram/client/methods/contacts/get_contacts.py b/pyrogram/client/methods/contacts/get_contacts.py
index 0dd70f57..f9586d47 100644
--- a/pyrogram/client/methods/contacts/get_contacts.py
+++ b/pyrogram/client/methods/contacts/get_contacts.py
@@ -25,8 +25,6 @@ from pyrogram.api import functions
from pyrogram.errors import FloodWait
from ...ext import BaseClient
-log = logging.getLogger(__name__)
-
class GetContacts(BaseClient):
def get_contacts(self) -> List["pyrogram.User"]:
@@ -45,7 +43,7 @@ class GetContacts(BaseClient):
try:
contacts = self.send(functions.contacts.GetContacts(hash=0))
except FloodWait as e:
- log.warning("get_contacts flood: waiting {} seconds".format(e.x))
+ logging.warning("get_contacts flood: waiting {} seconds".format(e.x))
time.sleep(e.x)
else:
return pyrogram.List(pyrogram.User._parse(self, user) for user in contacts.users)
diff --git a/pyrogram/client/methods/messages/get_history.py b/pyrogram/client/methods/messages/get_history.py
index e471c6fd..9b61d553 100644
--- a/pyrogram/client/methods/messages/get_history.py
+++ b/pyrogram/client/methods/messages/get_history.py
@@ -26,8 +26,6 @@ from pyrogram.client.ext import utils
from pyrogram.errors import FloodWait
from ...ext import BaseClient
-log = logging.getLogger(__name__)
-
class GetHistory(BaseClient):
def get_history(
@@ -103,7 +101,7 @@ class GetHistory(BaseClient):
)
)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
break
diff --git a/pyrogram/client/methods/messages/get_history_count.py b/pyrogram/client/methods/messages/get_history_count.py
index 8ceba0ed..b1110ead 100644
--- a/pyrogram/client/methods/messages/get_history_count.py
+++ b/pyrogram/client/methods/messages/get_history_count.py
@@ -16,14 +16,11 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
from typing import Union
from pyrogram.api import types, functions
from pyrogram.client.ext import BaseClient
-log = logging.getLogger(__name__)
-
class GetHistoryCount(BaseClient):
def get_history_count(
diff --git a/pyrogram/client/methods/messages/get_messages.py b/pyrogram/client/methods/messages/get_messages.py
index 8f547227..0031529d 100644
--- a/pyrogram/client/methods/messages/get_messages.py
+++ b/pyrogram/client/methods/messages/get_messages.py
@@ -25,8 +25,6 @@ from pyrogram.api import functions, types
from pyrogram.errors import FloodWait
from ...ext import BaseClient, utils
-log = logging.getLogger(__name__)
-
# TODO: Rewrite using a flag for replied messages and have message_ids non-optional
@@ -116,7 +114,7 @@ class GetMessages(BaseClient):
try:
r = self.send(rpc)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
break
diff --git a/pyrogram/client/methods/messages/send_media_group.py b/pyrogram/client/methods/messages/send_media_group.py
index ac38c0d6..9dcb8c6a 100644
--- a/pyrogram/client/methods/messages/send_media_group.py
+++ b/pyrogram/client/methods/messages/send_media_group.py
@@ -26,8 +26,6 @@ from pyrogram.api import functions, types
from pyrogram.client.ext import BaseClient, utils
from pyrogram.errors import FloodWait
-log = logging.getLogger(__name__)
-
class SendMediaGroup(BaseClient):
# TODO: Add progress parameter
@@ -89,7 +87,7 @@ class SendMediaGroup(BaseClient):
)
)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
break
@@ -144,7 +142,7 @@ class SendMediaGroup(BaseClient):
)
)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
break
@@ -195,7 +193,7 @@ class SendMediaGroup(BaseClient):
)
)
except FloodWait as e:
- log.warning("Sleeping for {}s".format(e.x))
+ logging.warning("Sleeping for {}s".format(e.x))
time.sleep(e.x)
else:
break
diff --git a/pyrogram/client/parser/html.py b/pyrogram/client/parser/html.py
index 5ec43874..1fa5ac60 100644
--- a/pyrogram/client/parser/html.py
+++ b/pyrogram/client/parser/html.py
@@ -28,8 +28,6 @@ from pyrogram.api import types
from pyrogram.errors import PeerIdInvalid
from . import utils
-log = logging.getLogger(__name__)
-
class Parser(HTMLParser):
MENTION_RE = re.compile(r"tg://user\?id=(\d+)")
@@ -97,7 +95,7 @@ class Parser(HTMLParser):
line, offset = self.getpos()
offset += 1
- log.warning("Unmatched closing tag {}> at line {}:{}".format(tag, line, offset))
+ logging.warning("Unmatched closing tag {}> at line {}:{}".format(tag, line, offset))
else:
if not self.tag_entities[tag]:
self.tag_entities.pop(tag)
@@ -123,7 +121,7 @@ class HTML:
for tag, entities in parser.tag_entities.items():
unclosed_tags.append("<{}> (x{})".format(tag, len(entities)))
- log.warning("Unclosed tags: {}".format(", ".join(unclosed_tags)))
+ logging.warning("Unclosed tags: {}".format(", ".join(unclosed_tags)))
entities = []
diff --git a/pyrogram/client/storage/file_storage.py b/pyrogram/client/storage/file_storage.py
index e367b447..a24a46db 100644
--- a/pyrogram/client/storage/file_storage.py
+++ b/pyrogram/client/storage/file_storage.py
@@ -26,8 +26,6 @@ from threading import Lock
from .memory_storage import MemoryStorage
-log = logging.getLogger(__name__)
-
class FileStorage(MemoryStorage):
FILE_EXTENSION = ".session"
@@ -83,20 +81,20 @@ class FileStorage(MemoryStorage):
except ValueError:
pass
else:
- log.warning("JSON session storage detected! Converting it into an SQLite session storage...")
+ logging.warning("JSON session storage detected! Converting it into an SQLite session storage...")
path.rename(path.name + ".OLD")
- log.warning('The old session file has been renamed to "{}.OLD"'.format(path.name))
+ logging.warning('The old session file has been renamed to "{}.OLD"'.format(path.name))
self.migrate_from_json(session_json)
- log.warning("Done! The session has been successfully converted from JSON to SQLite storage")
+ logging.warning("Done! The session has been successfully converted from JSON to SQLite storage")
return
if Path(path.name + ".OLD").is_file():
- log.warning('Old session file detected: "{}.OLD". You can remove this file now'.format(path.name))
+ logging.warning('Old session file detected: "{}.OLD". You can remove this file now'.format(path.name))
self.conn = sqlite3.connect(
str(path),
diff --git a/pyrogram/client/storage/memory_storage.py b/pyrogram/client/storage/memory_storage.py
index b24fce38..ff98fd59 100644
--- a/pyrogram/client/storage/memory_storage.py
+++ b/pyrogram/client/storage/memory_storage.py
@@ -18,7 +18,6 @@
import base64
import inspect
-import logging
import sqlite3
import struct
import time
@@ -29,8 +28,6 @@ from typing import List, Tuple
from pyrogram.api import types
from pyrogram.client.storage.storage import Storage
-log = logging.getLogger(__name__)
-
class MemoryStorage(Storage):
SCHEMA_VERSION = 1
diff --git a/pyrogram/connection/connection.py b/pyrogram/connection/connection.py
index cc1d4e03..ee097ba8 100644
--- a/pyrogram/connection/connection.py
+++ b/pyrogram/connection/connection.py
@@ -23,8 +23,6 @@ import time
from .transport import *
from ..session.internals import DataCenter
-log = logging.getLogger(__name__)
-
class Connection:
MAX_RETRIES = 3
@@ -53,14 +51,14 @@ class Connection:
self.connection = self.mode(self.ipv6, self.proxy)
try:
- log.info("Connecting...")
+ logging.info("Connecting...")
self.connection.connect(self.address)
except OSError as e:
- log.warning(e) # TODO: Remove
+ logging.warning(e) # TODO: Remove
self.connection.close()
time.sleep(1)
else:
- log.info("Connected! {} DC{} - IPv{} - {}".format(
+ logging.info("Connected! {} DC{} - IPv{} - {}".format(
"Test" if self.test_mode else "Production",
self.dc_id,
"6" if self.ipv6 else "4",
@@ -68,12 +66,12 @@ class Connection:
))
break
else:
- log.warning("Connection failed! Trying again...")
+ logging.warning("Connection failed! Trying again...")
raise TimeoutError
def close(self):
self.connection.close()
- log.info("Disconnected")
+ logging.info("Disconnected")
def send(self, data: bytes):
with self.lock:
diff --git a/pyrogram/connection/transport/tcp/tcp.py b/pyrogram/connection/transport/tcp/tcp.py
index debe52bd..0d131614 100644
--- a/pyrogram/connection/transport/tcp/tcp.py
+++ b/pyrogram/connection/transport/tcp/tcp.py
@@ -30,8 +30,6 @@ except ImportError as e:
raise e
-log = logging.getLogger(__name__)
-
class TCP(socks.socksocket):
def __init__(self, ipv6: bool, proxy: dict):
@@ -57,7 +55,7 @@ class TCP(socks.socksocket):
password=proxy.get("password", None)
)
- log.info("Using proxy {}:{}".format(hostname, port))
+ logging.info("Using proxy {}:{}".format(hostname, port))
else:
super().__init__(
socket.AF_INET6 if ipv6
diff --git a/pyrogram/connection/transport/tcp/tcp_abridged.py b/pyrogram/connection/transport/tcp/tcp_abridged.py
index 56f8d025..2db0b810 100644
--- a/pyrogram/connection/transport/tcp/tcp_abridged.py
+++ b/pyrogram/connection/transport/tcp/tcp_abridged.py
@@ -16,12 +16,8 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
-
from .tcp import TCP
-log = logging.getLogger(__name__)
-
class TCPAbridged(TCP):
def __init__(self, ipv6: bool, proxy: dict):
diff --git a/pyrogram/connection/transport/tcp/tcp_abridged_o.py b/pyrogram/connection/transport/tcp/tcp_abridged_o.py
index 136d22ef..b808433a 100644
--- a/pyrogram/connection/transport/tcp/tcp_abridged_o.py
+++ b/pyrogram/connection/transport/tcp/tcp_abridged_o.py
@@ -16,14 +16,11 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
import os
from .tcp import TCP
from ....crypto.aes import AES
-log = logging.getLogger(__name__)
-
class TCPAbridgedO(TCP):
RESERVED = (b"HEAD", b"POST", b"GET ", b"OPTI", b"\xee" * 4)
diff --git a/pyrogram/connection/transport/tcp/tcp_full.py b/pyrogram/connection/transport/tcp/tcp_full.py
index 36f14adb..e8d2f21e 100644
--- a/pyrogram/connection/transport/tcp/tcp_full.py
+++ b/pyrogram/connection/transport/tcp/tcp_full.py
@@ -16,14 +16,11 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
from binascii import crc32
from struct import pack, unpack
from .tcp import TCP
-log = logging.getLogger(__name__)
-
class TCPFull(TCP):
def __init__(self, ipv6: bool, proxy: dict):
diff --git a/pyrogram/connection/transport/tcp/tcp_intermediate.py b/pyrogram/connection/transport/tcp/tcp_intermediate.py
index e27455d7..ebf4e8ff 100644
--- a/pyrogram/connection/transport/tcp/tcp_intermediate.py
+++ b/pyrogram/connection/transport/tcp/tcp_intermediate.py
@@ -16,13 +16,10 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
from struct import pack, unpack
from .tcp import TCP
-log = logging.getLogger(__name__)
-
class TCPIntermediate(TCP):
def __init__(self, ipv6: bool, proxy: dict):
diff --git a/pyrogram/connection/transport/tcp/tcp_intermediate_o.py b/pyrogram/connection/transport/tcp/tcp_intermediate_o.py
index a92acb7f..b64a32be 100644
--- a/pyrogram/connection/transport/tcp/tcp_intermediate_o.py
+++ b/pyrogram/connection/transport/tcp/tcp_intermediate_o.py
@@ -16,15 +16,12 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import logging
import os
from struct import pack, unpack
from .tcp import TCP
from ....crypto.aes import AES
-log = logging.getLogger(__name__)
-
class TCPIntermediateO(TCP):
RESERVED = (b"HEAD", b"POST", b"GET ", b"OPTI", b"\xee" * 4)
diff --git a/pyrogram/crypto/aes.py b/pyrogram/crypto/aes.py
index d603caa0..9088d57f 100644
--- a/pyrogram/crypto/aes.py
+++ b/pyrogram/crypto/aes.py
@@ -18,12 +18,10 @@
import logging
-log = logging.getLogger(__name__)
-
try:
import tgcrypto
- log.info("Using TgCrypto")
+ logging.info("Using TgCrypto")
class AES:
@@ -53,7 +51,7 @@ try:
except ImportError:
import pyaes
- log.warning(
+ logging.warning(
"TgCrypto is missing! "
"Pyrogram will work the same, but at a much slower speed. "
"More info: https://docs.pyrogram.org/topics/tgcrypto"
diff --git a/pyrogram/session/auth.py b/pyrogram/session/auth.py
index f6d137fa..b9cbbfb7 100644
--- a/pyrogram/session/auth.py
+++ b/pyrogram/session/auth.py
@@ -29,8 +29,6 @@ from pyrogram.connection import Connection
from pyrogram.crypto import AES, RSA, Prime
from .internals import MsgId
-log = logging.getLogger(__name__)
-
class Auth:
MAX_RETRIES = 5
@@ -77,34 +75,34 @@ class Auth:
self.connection = Connection(self.dc_id, self.test_mode, self.ipv6, self.proxy)
try:
- log.info("Start creating a new auth key on DC{}".format(self.dc_id))
+ logging.info("Start creating a new auth key on DC{}".format(self.dc_id))
self.connection.connect()
# Step 1; Step 2
nonce = int.from_bytes(urandom(16), "little", signed=True)
- log.debug("Send req_pq: {}".format(nonce))
+ logging.debug("Send req_pq: {}".format(nonce))
res_pq = self.send(functions.ReqPqMulti(nonce=nonce))
- log.debug("Got ResPq: {}".format(res_pq.server_nonce))
- log.debug("Server public key fingerprints: {}".format(res_pq.server_public_key_fingerprints))
+ logging.debug("Got ResPq: {}".format(res_pq.server_nonce))
+ logging.debug("Server public key fingerprints: {}".format(res_pq.server_public_key_fingerprints))
for i in res_pq.server_public_key_fingerprints:
if i in RSA.server_public_keys:
- log.debug("Using fingerprint: {}".format(i))
+ logging.debug("Using fingerprint: {}".format(i))
public_key_fingerprint = i
break
else:
- log.debug("Fingerprint unknown: {}".format(i))
+ logging.debug("Fingerprint unknown: {}".format(i))
else:
raise Exception("Public key not found")
# Step 3
pq = int.from_bytes(res_pq.pq, "big")
- log.debug("Start PQ factorization: {}".format(pq))
+ logging.debug("Start PQ factorization: {}".format(pq))
start = time.time()
g = Prime.decompose(pq)
p, q = sorted((g, pq // g)) # p < q
- log.debug("Done PQ factorization ({}s): {} {}".format(round(time.time() - start, 3), p, q))
+ logging.debug("Done PQ factorization ({}s): {} {}".format(round(time.time() - start, 3), p, q))
# Step 4
server_nonce = res_pq.server_nonce
@@ -124,10 +122,10 @@ class Auth:
data_with_hash = sha + data + padding
encrypted_data = RSA.encrypt(data_with_hash, public_key_fingerprint)
- log.debug("Done encrypt data with RSA")
+ logging.debug("Done encrypt data with RSA")
# Step 5. TODO: Handle "server_DH_params_fail". Code assumes response is ok
- log.debug("Send req_DH_params")
+ logging.debug("Send req_DH_params")
server_dh_params = self.send(
functions.ReqDHParams(
nonce=nonce,
@@ -161,12 +159,12 @@ class Auth:
server_dh_inner_data = TLObject.read(BytesIO(answer))
- log.debug("Done decrypting answer")
+ logging.debug("Done decrypting answer")
dh_prime = int.from_bytes(server_dh_inner_data.dh_prime, "big")
delta_time = server_dh_inner_data.server_time - time.time()
- log.debug("Delta time: {}".format(round(delta_time, 3)))
+ logging.debug("Delta time: {}".format(round(delta_time, 3)))
# Step 6
g = server_dh_inner_data.g
@@ -187,7 +185,7 @@ class Auth:
data_with_hash = sha + data + padding
encrypted_data = AES.ige256_encrypt(data_with_hash, tmp_aes_key, tmp_aes_iv)
- log.debug("Send set_client_DH_params")
+ logging.debug("Send set_client_DH_params")
set_client_dh_params_answer = self.send(
functions.SetClientDHParams(
nonce=nonce,
@@ -210,7 +208,7 @@ class Auth:
#######################
assert dh_prime == Prime.CURRENT_DH_PRIME
- log.debug("DH parameters check: OK")
+ logging.debug("DH parameters check: OK")
# https://core.telegram.org/mtproto/security_guidelines#g-a-and-g-b-validation
g_b = int.from_bytes(g_b, "big")
@@ -219,12 +217,12 @@ class Auth:
assert 1 < g_b < dh_prime - 1
assert 2 ** (2048 - 64) < g_a < dh_prime - 2 ** (2048 - 64)
assert 2 ** (2048 - 64) < g_b < dh_prime - 2 ** (2048 - 64)
- log.debug("g_a and g_b validation: OK")
+ logging.debug("g_a and g_b validation: OK")
# https://core.telegram.org/mtproto/security_guidelines#checking-sha1-hash-values
answer = server_dh_inner_data.write() # Call .write() to remove padding
assert answer_with_hash[:20] == sha1(answer).digest()
- log.debug("SHA1 hash values check: OK")
+ logging.debug("SHA1 hash values check: OK")
# https://core.telegram.org/mtproto/security_guidelines#checking-nonce-server-nonce-and-new-nonce-fields
# 1st message
@@ -237,14 +235,14 @@ class Auth:
assert nonce == set_client_dh_params_answer.nonce
assert server_nonce == set_client_dh_params_answer.server_nonce
server_nonce = server_nonce.to_bytes(16, "little", signed=True)
- log.debug("Nonce fields check: OK")
+ logging.debug("Nonce fields check: OK")
# Step 9
server_salt = AES.xor(new_nonce[:8], server_nonce[:8])
- log.debug("Server salt: {}".format(int.from_bytes(server_salt, "little")))
+ logging.debug("Server salt: {}".format(int.from_bytes(server_salt, "little")))
- log.info(
+ logging.info(
"Done auth key exchange: {}".format(
set_client_dh_params_answer.__class__.__name__
)
diff --git a/pyrogram/session/session.py b/pyrogram/session/session.py
index 673bbcc9..301e3bc0 100644
--- a/pyrogram/session/session.py
+++ b/pyrogram/session/session.py
@@ -36,8 +36,6 @@ from pyrogram.crypto import AES, KDF
from pyrogram.errors import RPCError, InternalServerError, AuthKeyDuplicated
from .internals import MsgId, MsgFactory
-log = logging.getLogger(__name__)
-
class Result:
def __init__(self):
@@ -171,9 +169,9 @@ class Session:
self.ping_thread = Thread(target=self.ping, name="PingThread")
self.ping_thread.start()
- log.info("Session initialized: Layer {}".format(layer))
- log.info("Device: {} - {}".format(self.client.device_model, self.client.app_version))
- log.info("System: {} ({})".format(self.client.system_version, self.client.lang_code.upper()))
+ logging.info("Session initialized: Layer {}".format(layer))
+ logging.info("Device: {} - {}".format(self.client.device_model, self.client.app_version))
+ logging.info("System: {} ({})".format(self.client.system_version, self.client.lang_code.upper()))
except AuthKeyDuplicated as e:
self.stop()
@@ -188,7 +186,7 @@ class Session:
self.is_connected.set()
- log.debug("Session started")
+ logging.debug("Session started")
def stop(self):
self.is_connected.clear()
@@ -223,9 +221,9 @@ class Session:
try:
self.client.disconnect_handler(self.client)
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
- log.debug("Session stopped")
+ logging.debug("Session stopped")
def restart(self):
self.stop()
@@ -268,7 +266,7 @@ class Session:
def net_worker(self):
name = threading.current_thread().name
- log.debug("{} started".format(name))
+ logging.debug("{} started".format(name))
while True:
packet = self.recv_queue.get()
@@ -285,7 +283,7 @@ class Session:
else [data]
)
- log.debug(data)
+ logging.debug(data)
for msg in messages:
if msg.seq_no % 2 != 0:
@@ -318,7 +316,7 @@ class Session:
self.results[msg_id].event.set()
if len(self.pending_acks) >= self.ACKS_THRESHOLD:
- log.info("Send {} acks".format(len(self.pending_acks)))
+ logging.info("Send {} acks".format(len(self.pending_acks)))
try:
self._send(types.MsgsAck(msg_ids=list(self.pending_acks)), False)
@@ -327,12 +325,12 @@ class Session:
else:
self.pending_acks.clear()
except Exception as e:
- log.error(e, exc_info=True)
+ logging.error(e, exc_info=True)
- log.debug("{} stopped".format(name))
+ logging.debug("{} stopped".format(name))
def ping(self):
- log.debug("PingThread started")
+ logging.debug("PingThread started")
while True:
self.ping_thread_event.wait(self.PING_INTERVAL)
@@ -347,10 +345,10 @@ class Session:
except (OSError, TimeoutError, RPCError):
pass
- log.debug("PingThread stopped")
+ logging.debug("PingThread stopped")
def next_salt(self):
- log.debug("NextSaltThread started")
+ logging.debug("NextSaltThread started")
while True:
now = datetime.now()
@@ -360,7 +358,7 @@ class Session:
valid_until = datetime.fromtimestamp(self.current_salt.valid_until)
dt = (valid_until - now).total_seconds() - 900
- log.debug("Current salt: {} | Next salt in {:.0f}m {:.0f}s ({})".format(
+ logging.debug("Current salt: {} | Next salt in {:.0f}m {:.0f}s ({})".format(
self.current_salt.salt,
dt // 60,
dt % 60,
@@ -378,17 +376,17 @@ class Session:
self.connection.close()
break
- log.debug("NextSaltThread stopped")
+ logging.debug("NextSaltThread stopped")
def recv(self):
- log.debug("RecvThread started")
+ logging.debug("RecvThread started")
while True:
packet = self.connection.recv()
if packet is None or len(packet) == 4:
if packet:
- log.warning("Server sent \"{}\"".format(Int.read(BytesIO(packet))))
+ logging.warning("Server sent \"{}\"".format(Int.read(BytesIO(packet))))
if self.is_connected.is_set():
Thread(target=self.restart, name="RestartThread").start()
@@ -396,7 +394,7 @@ class Session:
self.recv_queue.put(packet)
- log.debug("RecvThread stopped")
+ logging.debug("RecvThread stopped")
def _send(self, data: TLObject, wait_response: bool = True, timeout: float = WAIT_TIMEOUT):
message = self.msg_factory(data)