mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-15 05:56:36 +03:00
47 lines
1.9 KiB
ReStructuredText
47 lines
1.9 KiB
ReStructuredText
|
.. _sessions:
|
||
|
|
||
|
==============
|
||
|
Session Files
|
||
|
==============
|
||
|
|
||
|
The first parameter you pass the the constructor of the ``TelegramClient`` is
|
||
|
the ``session``, and defaults to be the session name (or full path). That is,
|
||
|
if you create a ``TelegramClient('anon')`` instance and connect, an
|
||
|
``anon.session`` file will be created on the working directory.
|
||
|
|
||
|
These database files using ``sqlite3`` contain the required information to
|
||
|
talk to the Telegram servers, such as to which IP the client should connect,
|
||
|
port, authorization key so that messages can be encrypted, and so on.
|
||
|
|
||
|
These files will by default also save all the input entities that you've seen,
|
||
|
so that you can get information about an user or channel by just their ID.
|
||
|
Telegram will **not** send their ``access_hash`` required to retrieve more
|
||
|
information about them, if it thinks you have already seem them. For this
|
||
|
reason, the library needs to store this information offline.
|
||
|
|
||
|
The library will by default too save all the entities (chats and channels
|
||
|
with their name and username, and users with the phone too) in the session
|
||
|
file, so that you can quickly access them by username or phone number.
|
||
|
|
||
|
If you're not going to work with updates, or don't need to cache the
|
||
|
``access_hash`` associated with the entities' ID, you can disable this
|
||
|
by setting ``client.session.save_entities = False``, or pass it as a
|
||
|
parameter to the ``TelegramClient``.
|
||
|
|
||
|
If you don't want to save the files as a database, you can also create
|
||
|
your custom ``Session`` subclass and override the ``.save()`` and ``.load()``
|
||
|
methods. For example, you could save it on a database:
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
class DatabaseSession(Session):
|
||
|
def save():
|
||
|
# serialize relevant data to the database
|
||
|
|
||
|
def load():
|
||
|
# load relevant data to the database
|
||
|
|
||
|
|
||
|
You should read the ````session.py```` source file to know what "relevant
|
||
|
data" you need to keep track of.
|