Storage

class ftmgram.storage.Storage

Abstract class for storage engines.

Parameters:

name (str) – The name of the session.

abstractmethod async open()

Opens the storage engine.

abstractmethod async save()

Saves the current state of the storage engine.

abstractmethod async close()

Closes the storage engine.

abstractmethod async delete()

Deletes the storage file.

abstractmethod async update_peers(peers: List[Tuple[int, int, str, str]]) None

Update the peers table with the provided information.

Parameters:

peers (List[Tuple[int, int, str, str]]) – A list of tuples containing the information of the peers to be updated. Each tuple must contain the following information: - int: The peer id. - int: The peer access hash. - str: The peer type (user, chat or channel). - str: The peer phone number (if any).

abstractmethod async update_usernames(usernames: List[Tuple[int, List[str]]]) None

Update the usernames table with the provided information.

Parameters:

usernames (List[Tuple[int, List[str]]]) – A list of tuples containing the information of the usernames to be updated. Each tuple must contain the following information: - int: The peer id. - List of str: The peer username (if any).

abstractmethod async update_state(update_state: Tuple[int, int, int, int, int]=<class 'object'>) Tuple[int, int, int, int, int]

Get or set the update state of the current session.

Parameters:

update_state (Tuple[int, int, int, int, int]) – A tuple containing the update state to set. Tuple must contain the following information: - int: The id of the entity. - int: The pts. - int: The qts. - int: The date. - int: The seq.

abstractmethod async get_peer_by_id(peer_id: int) InputPeer

Retrieve a peer by its ID.

Parameters:

peer_id (int) – The ID of the peer to retrieve.

abstractmethod async get_peer_by_username(username: str) InputPeer

Retrieve a peer by its username.

Parameters:

username (str) – The username of the peer to retrieve.

abstractmethod async get_peer_by_phone_number(phone_number: str) InputPeer

Retrieve a peer by its phone number.

Parameters:

phone_number (str) – The phone number of the peer to retrieve.

abstractmethod async dc_id(value: int = <class 'object'>) int

Get or set the DC ID of the current session.

Parameters:

value (int, optional) – The DC ID to set.

abstractmethod async api_id(value: int = <class 'object'>) int

Get or set the API ID of the current session.

Parameters:

value (int, optional) – The API ID to set.

abstractmethod async server_address(value: str = <class 'object'>) str

Get or set the server address of the current session.

Parameters:

value (str, optional) – The server address to set.

abstractmethod async port(value: int = <class 'object'>) int

Get or set the server port of the current session.

Parameters:

value (int, optional) – The server port to set.

abstractmethod async test_mode(value: bool = <class 'object'>) bool

Get or set the test mode of the current session.

Parameters:

value (bool, optional) – The test mode to set.

abstractmethod async auth_key(value: bytes = <class 'object'>) bytes

Get or set the authorization key of the current session.

Parameters:

value (bytes, optional) – The authorization key to set.

abstractmethod async date(value: int = <class 'object'>) int

Get or set the date of the current session.

Parameters:

value (int, optional) – The date to set.

abstractmethod async user_id(value: int = <class 'object'>) int

Get or set the user ID of the current session.

Parameters:

value (int, optional) – The user ID to set.

abstractmethod async is_bot(value: bool = <class 'object'>) bool

Get or set the bot flag of the current session.

Parameters:

value (bool, optional) – The bot flag to set.

async export_session_string() str

Exports the session string for the current session.

Returns:

str – The session string for the current session.