o
    .˜Žj  ã                   @   s>   d dl Z d dlZd dlmZ d dlmZmZ G dd„ dƒZdS )é    N)Úabstractmethod)ÚListÚTuplec                	   @   s\  e Zd ZdZdZdZdZdZdefdd„Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zdeeeeeeef  fdd„Zdeeeef  fdd„Zeefdeeeeeef fdd„ƒZdefdd„Zdefdd„Zd efd!d"„Zefd#efd$d%„Zefd#efd&d'„Zefd#efd(d)„Zefd#efd*d+„Zefd#efd,d-„Zefd#efd.d/„Z efd#efd0d1„Z!d2d3„ Z"d4S )5ÚStoragez	>B?256sI?z	>B?256sQ?i_  id  z
>BI?256sQ?Únamec                 C   s
   || _ d S ©N)r   )Úselfr   © r	   úU/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/pyrogram/storage/storage.pyÚ__init__"   s   
zStorage.__init__c                 Ã   ó   �t ‚r   ©ÚNotImplementedError©r   r	   r	   r
   Úopen%   ó   €zStorage.openc                 Ã   r   r   r   r   r	   r	   r
   Úsave(   r   zStorage.savec                 Ã   r   r   r   r   r	   r	   r
   Úclose+   r   zStorage.closec                 Ã   r   r   r   r   r	   r	   r
   Údelete.   r   zStorage.deleteÚpeersc                 Ã   r   r   r   )r   r   r	   r	   r
   Úupdate_peers1   r   zStorage.update_peersÚ	usernamesc                 Ã   r   r   r   )r   r   r	   r	   r
   Úupdate_usernames4   r   zStorage.update_usernamesÚupdate_statec                 Ã   r   )a¼  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.
        r   )r   r   r	   r	   r
   r   7   s   €zStorage.update_stateÚpeer_idc                 Ã   r   r   r   )r   r   r	   r	   r
   Úget_peer_by_idF   r   zStorage.get_peer_by_idÚusernamec                 Ã   r   r   r   )r   r   r	   r	   r
   Úget_peer_by_usernameI   r   zStorage.get_peer_by_usernameÚphone_numberc                 Ã   r   r   r   )r   r   r	   r	   r
   Úget_peer_by_phone_numberL   r   z Storage.get_peer_by_phone_numberÚvaluec                 Ã   r   r   r   ©r   r    r	   r	   r
   Údc_idO   r   zStorage.dc_idc                 Ã   r   r   r   r!   r	   r	   r
   Úapi_idR   r   zStorage.api_idc                 Ã   r   r   r   r!   r	   r	   r
   Ú	test_modeU   r   zStorage.test_modec                 Ã   r   r   r   r!   r	   r	   r
   Úauth_keyX   r   zStorage.auth_keyc                 Ã   r   r   r   r!   r	   r	   r
   Údate[   r   zStorage.datec                 Ã   r   r   r   r!   r	   r	   r
   Úuser_id^   r   zStorage.user_idc                 Ã   r   r   r   r!   r	   r	   r
   Úis_bota   r   zStorage.is_botc              
   Ã   sj   �t  | j|  ¡ I d H |  ¡ I d H |  ¡ I d H |  ¡ I d H |  ¡ I d H |  ¡ I d H ¡}t	 
|¡ ¡  d¡S )Nú=)ÚstructÚpackÚSESSION_STRING_FORMATr"   r#   r$   r%   r'   r(   Úbase64Úurlsafe_b64encodeÚdecodeÚrstrip)r   Úpackedr	   r	   r
   Úexport_session_stringd   s   €ù
zStorage.export_session_stringN)#Ú__name__Ú
__module__Ú__qualname__ÚOLD_SESSION_STRING_FORMATÚOLD_SESSION_STRING_FORMAT_64ÚSESSION_STRING_SIZEÚSESSION_STRING_SIZE_64r,   Ústrr   r   r   r   r   r   r   Úintr   r   r   Úobjectr   r   r   r   r"   r#   Úboolr$   Úbytesr%   r&   r'   r(   r2   r	   r	   r	   r
   r      s4     "r   )r-   r*   Úabcr   Útypingr   r   r   r	   r	   r	   r
   Ú<module>   s
   