U
    wi                     @   s   d dl mZmZ ddlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZmZ dd
lmZ G dd dZdS )   )APIDataAPI    N)Path)TelegramClient)
JsonObject)TypeDataJSON)RequestAppWebViewRequest)InputBotAppShortNameInputPeerUser)unquotec                   @   s   e Zd ZdeeB edB eddddZdeeeee dB dddZed	d
dZ	e
edB dddZed	ddZde
dB edB dddZdS )SESSIONN)sessionapidevicereturnc                 O   sB   t |tr|nt|| _| jd| _i | _|| _|| _d | _d S )Nz.json)	
isinstancer   session_pathZwith_suffixsession_json_pathjsonr   r   client)selfr   r   r   argskwargs r   `/var/www/html/lefter/venv/lib/python3.8/site-packages/pyutilities/telethon/sessionapi/session.py__init__   s    zSESSION.__init__start)botstart_param
short_namer   c              
      s   | j d krd S | j  sd S | j |I d H }| j |I d H }t|j|j}|dd}|dd }	|dd }
|  tdt	||||	||
dI d H }|j
}tt|jddd	d jd
dd	d dd}t||dS )Nplatformandroidwrite_allowedtheme_paramsme)r!   r#   r   r$   ztgWebAppData=r   )maxsplitz&tgWebAppVersionr   )string)urldata)r   Zis_connectedZget_input_entityZ
get_entityr   idZaccess_hashgetr	   r
   r(   r   splitdict)r   r   r   r    r   Z
_get_inputentity_inputr!   r#   r$   Zapp_infoZauth_urlZtg_web_datar   r   r   request_app_webview   s2    


$zSESSION.request_app_webview)r   c                 C   s(   t jt jt jt jt jd}|| j  S )N)r"   Zandroid_betatdesktopZdesktopN)r   TelegramAndroidTelegramAndroidBetaZTelegramDesktopr   generate)r   Zselecterr   r   r   get_api_by_device;   s    zSESSION.get_api_by_device)api_idr   c                 C   s4   t jt jd}||d }|d kr0| }|jS d S )N)      )r   r3   r2   r+   r4   Zinit_request_params)r   r6   _switchZ	_api_datar   r   r   _get_init_request_paramsF   s    z SESSION._get_init_request_paramsc                 K   s  | j d kr| j S | j r0t| jjdd| _| jd krD|  | _t| j	d| jj
| j_
| j	d| jj| j_| j	d| jj| j_| j	d| jj| j_| j	d| jj| j_| j	d| jj| j_| j	d	| jj| j_| j	d
d| j_tf t| j| jj
| jj| jj| jj| jj| jj| jjdd	|| _ | j| jj
d}|d krr|| j_| j| jj
d| j j_| jjd kr| jj| j j_| j S )Nutf8)encodingZapp_idZapp_hashr   Zsdkapp_version	lang_codeZsystem_lang_pack	lang_pack r   )	r   r6   api_hashr=   system_versionsystem_lang_codedevice_modelr>   Zflood_sleep_threshold)r6   )r   r   existsr   loads	read_textr   r5   intr+   r6   rA   rD   rB   r=   r>   rC   r?   r   strr   valid_lang_packr:   Z_init_requestparams)r   r   Zis_valid_lang_packr   r   r   
get_clientS   sD    





zSESSION.get_clientc                 C   s6   |d kr| j j}ddddddddddd
}||d S )NZiosr"   r1   Zmacos)
r      r7      r8   iT  i  iT	 	   i  )r   r6   r+   )r   r6   r9   r   r   r   rJ      s    zSESSION.valid_lang_pack)NN)r   )N)__name__
__module____qualname__r   rI   r   r   r-   r0   r5   rH   r   r:   r   rL   rJ   r   r   r   r   r      s   	"-r   )Zapis.apir   r   r   pathlibr   Ztelethon.syncr   Ztelethon.tl.typesr   r   Ztelethon.tl.functions.messagesr	   r
   r   urllib.parser   r   r   r   r   r   <module>   s   