mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-07-12 00:52:19 +03:00
Destroyed Project structure (markdown)
parent
0110ba3ad5
commit
c31dbf2249
|
@ -1,13 +0,0 @@
|
||||||
## Main interface
|
|
||||||
The library itself is under the `telethon/` directory. The `__init__.py` file there exposes the main `TelegramClient`, a class that servers as a nice interface with the most commonly used methods on Telegram such as sending messages, retrieving the message history, handling updates, etc.
|
|
||||||
|
|
||||||
The `TelegramClient` inherits the `TelegramBareClient`. The later is basically a pruned version of the `TelegramClient`, which knows basic stuff like `.invoke()`'ing requests, downloading files, or switching between data centers. This is primary to keep the method count per class and file low and manageable.
|
|
||||||
|
|
||||||
Both clients make use of the `network/mtproto_sender.py`. The `MtProtoSender` class handles packing requests with the `salt`, `id`, `sequence`, etc., and also handles how to process responses (i.e. pong, RPC errors). This class communicates through Telegram via its `.connection` member.
|
|
||||||
|
|
||||||
The `Connection` class uses a `extensions/tcp_client`, a C#-like `TcpClient` to ease working with sockets in Python. All the `TcpClient` know is how to connect through TCP and writing/reading from the socket with optional cancel.
|
|
||||||
|
|
||||||
The `Connection` class bundles up all the connections modes and sends and receives the messages accordingly (TCP full, obfuscated, intermediate…).
|
|
||||||
|
|
||||||
## Auto-generated code
|
|
||||||
The files under `telethon_generator/` are used to generate the code that gets placed under `telethon/tl/`. The `TLGenerator` takes in a `.tl` file, and spits out the generated classes which represent, as Python classes, the request and types defined in the `.tl` file. It also constructs an index so that they can be imported easily.
|
|
Loading…
Reference in New Issue
Block a user