3
uQhn                 @   s$  d Z ddlmZ ddlmZ ddlmZmZmZmZ ddl	Z	ddl
Z
ddlmZ erpddlmZmZmZmZmZ G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZ G d'd( d(eZ!G d)d* d*eZ"G d+d, d,eZ#G d-d. d.eZ$G d/d0 d0eZ%G d1d2 d2eZ&G d3d4 d4eZ'G d5d6 d6eZ(G d7d8 d8eZ)G d9d: d:eZ*G d;d< d<eZ+G d=d> d>eZ,dS )?zBFile generated by TLObjects' generator. All changes will be ERASED   )TLObject)	TLRequest    )OptionalListUnionTYPE_CHECKINGN)datetime)TypeInputContactTypeInputGeoPointTypeInputPeerTypeInputUserTypeTopPeerCategoryc               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )AcceptContactRequestl   "cp l   * r   )idc             C   s
   || _ dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r   )selfr    r   B/tmp/pip-build-2nz6shyl/telethon/telethon/tl/functions/contacts.py__init__   s    zAcceptContactRequest.__init__c                s   |j |j| jI d H | _d S )N)get_input_userget_input_entityr   )r   clientutilsr   r   r   resolve   s    zAcceptContactRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nr   )_r   )
isinstancer   r   to_dict)r   r   r   r   r      s    zAcceptContactRequest.to_dictc             C   s   dj d| jj fS )N    s   1)joinr   _bytes)r   r   r   r   r       s    zAcceptContactRequest._bytesc             C   s   |j  }| |dS )N)r   )tgread_object)clsreader_idr   r   r   from_reader&   s    z AcceptContactRequest.from_readerN)__name__
__module____qualname__CONSTRUCTOR_IDSUBCLASS_OF_IDr   r   r   r   classmethodr$   r   r   r   r   r      s   r   c               @   sT   e Zd ZdZdZddeeeee dddZdd	 Z	d
d Z
dd Zedd ZdS )AddContactRequestl   cQ l   * Nr   )r   
first_name	last_namephoneadd_phone_privacy_exceptionc             C   s"   || _ || _|| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r   r,   r-   r.   r/   )r   r   r,   r-   r.   r/   r   r   r   r   0   s
    zAddContactRequest.__init__c                s   |j |j| jI d H | _d S )N)r   r   r   )r   r   r   r   r   r   r   :   s    zAddContactRequest.resolvec             C   s2   dt | jtr| jj n| j| j| j| j| jdS )Nr+   )r   r   r,   r-   r.   r/   )r   r   r   r   r,   r-   r.   r/   )r   r   r   r   r   =   s    zAddContactRequest.to_dictc             C   sT   dj dtjd| jd ks | jdkr$dnd| jj | j| j| j| j| j| j	fS )Nr   s   cz<IFr      )
r   structpackr/   r   r   serialize_bytesr,   r-   r.   )r   r   r   r   r   G   s    "

zAddContactRequest._bytesc             C   sF   |j  }t|d@ }|j }|j }|j }|j }| |||||dS )Nr0   )r   r,   r-   r.   r/   )read_intboolr    tgread_string)r!   r"   flagsZ_add_phone_privacy_exceptionr#   Z_first_nameZ
_last_name_phoner   r   r   r$   Q   s    zAddContactRequest.from_reader)N)r%   r&   r'   r(   r)   strr   r5   r   r   r   r   r*   r$   r   r   r   r   r+   ,   s   


r+   c               @   sN   e Zd ZdZdZddee dddZdd	 Zd
d Z	dd Z
edd ZdS )BlockRequesti4..l   gk Nr   )r   my_stories_fromc             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r;   )r   r   r;   r   r   r   r   a   s    zBlockRequest.__init__c                s   |j |j| jI d H | _d S )N)get_input_peerr   r   )r   r   r   r   r   r   r   h   s    zBlockRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr:   )r   r   r;   )r   r   r   r   r;   )r   r   r   r   r   k   s    zBlockRequest.to_dictc             C   s6   dj dtjd| jd ks | jdkr$dnd| jj fS )Nr   s   4..z<IFr   r0   )r   r1   r2   r;   r   r   )r   r   r   r   r   r   s    "zBlockRequest._bytesc             C   s(   |j  }t|d@ }|j }| ||dS )Nr0   )r   r;   )r4   r5   r    )r!   r"   r7   _my_stories_fromr#   r   r   r   r$   y   s    zBlockRequest.from_reader)N)r%   r&   r'   r(   r)   r   r5   r   r   r   r   r*   r$   r   r   r   r   r:   ]   s   r:   c               @   sR   e Zd ZdZdZdeee ee ee dddZdd Z	d	d
 Z
edd ZdS )BlockFromRepliesRequesti,)l   * N)msg_iddelete_messagedelete_historyreport_spamc             C   s   || _ || _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r?   r@   rA   rB   )r   r?   r@   rA   rB   r   r   r   r      s    z BlockFromRepliesRequest.__init__c             C   s   d| j | j| j| jdS )Nr>   )r   r?   r@   rA   rB   )r?   r@   rA   rB   )r   r   r   r   r      s
    zBlockFromRepliesRequest.to_dictc             C   sr   dj dtjd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jd ksV| jdkrZdndB tjd	| jfS )
Nr   s   ,)z<IFr   r0         z<i)r   r1   r2   r@   rA   rB   r?   )r   r   r   r   r      s    ZzBlockFromRepliesRequest._bytesc             C   sD   |j  }t|d@ }t|d@ }t|d@ }|j  }| ||||dS )Nr0   rC   rD   )r?   r@   rA   rB   )r4   r5   )r!   r"   r7   Z_delete_messageZ_delete_historyZ_report_spamZ_msg_idr   r   r   r$      s    z#BlockFromRepliesRequest.from_reader)NNN)r%   r&   r'   r(   r)   intr   r5   r   r   r   r*   r$   r   r   r   r   r>      s   "		r>   c               @   sB   e Zd ZdZdZee dddZdd Zdd	 Z	e
d
d ZdS )DeleteByPhonesRequestil   gk )phonesc             C   s
   || _ dS )z?
        :returns Bool: This type has no constructors.
        N)rG   )r   rG   r   r   r   r      s    zDeleteByPhonesRequest.__init__c             C   s"   d| j d krg n| j d d  dS )NrF   )r   rG   )rG   )r   r   r   r   r      s    zDeleteByPhonesRequest.to_dictc                s6   dj ddtjdt jdj  fdd jD fS )Nr   s   s   ĵz<ic             3   s   | ]} j |V  qd S )N)r3   ).0x)r   r   r   	<genexpr>   s    z/DeleteByPhonesRequest._bytes.<locals>.<genexpr>)r   r1   r2   lenrG   )r   r   )r   r   r      s    zDeleteByPhonesRequest._bytesc             C   s>   |j   g }x&t|j  D ]}|j }|j| qW | |dS )N)rG   )r4   ranger6   append)r!   r"   Z_phonesr   _xr   r   r   r$      s    z!DeleteByPhonesRequest.from_readerN)r%   r&   r'   r(   r)   r   r9   r   r   r   r*   r$   r   r   r   r   rF      s   rF   c               @   sJ   e Zd ZdZdZed dddZdd Zd	d
 Zdd Z	e
dd ZdS )DeleteContactsRequesti j	l   * r   )r   c             C   s
   || _ dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r   )r   r   r   r   r   r      s    zDeleteContactsRequest.__init__c                s:   g }x*| j D ] }|j|j|j|I d H  qW || _ d S )N)r   rM   r   r   )r   r   r   _tmprN   r   r   r   r      s     zDeleteContactsRequest.resolvec             C   s$   d| j d krg ndd | j D dS )NrO   c             S   s"   g | ]}t |tr|j n|qS r   )r   r   r   )rH   rI   r   r   r   
<listcomp>   s    z1DeleteContactsRequest.to_dict.<locals>.<listcomp>)r   r   )r   )r   r   r   r   r      s    zDeleteContactsRequest.to_dictc             C   s2   dj ddtjdt| jdj dd | jD fS )Nr   s    j	s   ĵz<ic             s   s   | ]}|j  V  qd S )N)r   )rH   rI   r   r   r   rJ      s    z/DeleteContactsRequest._bytes.<locals>.<genexpr>)r   r1   r2   rK   r   )r   r   r   r   r      s    zDeleteContactsRequest._bytesc             C   s>   |j   g }x&t|j  D ]}|j }|j| qW | |dS )N)r   )r4   rL   r    rM   )r!   r"   r#   r   rN   r   r   r   r$      s    z!DeleteContactsRequest.from_readerN)r%   r&   r'   r(   r)   r   r   r   r   r   r*   r$   r   r   r   r   rO      s   rO   c               @   sB   e Zd ZdZdZee dddZdd Zdd	 Z	e
d
d ZdS )EditCloseFriendsRequestl   t l   gk )r   c             C   s
   || _ dS )z?
        :returns Bool: This type has no constructors.
        N)r   )r   r   r   r   r   r      s    z EditCloseFriendsRequest.__init__c             C   s"   d| j d krg n| j d d  dS )NrR   )r   r   )r   )r   r   r   r   r      s    zEditCloseFriendsRequest.to_dictc             C   s2   dj ddtjdt| jdj dd | jD fS )Nr   s   gs   ĵz<ic             s   s   | ]}t jd |V  qdS )z<qN)r1   r2   )rH   rI   r   r   r   rJ     s    z1EditCloseFriendsRequest._bytes.<locals>.<genexpr>)r   r1   r2   rK   r   )r   r   r   r   r     s    zEditCloseFriendsRequest._bytesc             C   s>   |j   g }x&t|j  D ]}|j }|j| qW | |dS )N)r   )r4   rL   	read_longrM   )r!   r"   r#   r   rN   r   r   r   r$   	  s    z#EditCloseFriendsRequest.from_readerN)r%   r&   r'   r(   r)   r   rE   r   r   r   r*   r$   r   r   r   r   rR      s   rR   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
ExportContactTokenRequestl   '@p l   > c             C   s   ddiS )Nr   rT   r   )r   r   r   r   r     s    z!ExportContactTokenRequest.to_dictc             C   s
   dj dS )Nr      '@e)rU   )r   )r   r   r   r   r     s    z ExportContactTokenRequest._bytesc             C   s   |  S )Nr   )r!   r"   r   r   r   r$   "  s    z%ExportContactTokenRequest.from_readerN)	r%   r&   r'   r(   r)   r   r   r*   r$   r   r   r   r   rT     s
   rT   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetBirthdaysRequestl   d(5 izc             C   s   ddiS )Nr   rV   r   )r   r   r   r   r   +  s    zGetBirthdaysRequest.to_dictc             C   s
   dj dS )Nr      d)rW   )r   )r   r   r   r   r   0  s    zGetBirthdaysRequest._bytesc             C   s   |  S )Nr   )r!   r"   r   r   r   r$   5  s    zGetBirthdaysRequest.from_readerN)	r%   r&   r'   r(   r)   r   r   r*   r$   r   r   r   r   rV   '  s
   rV   c               @   sH   e Zd ZdZdZdeeee dddZdd Z	d	d
 Z
edd ZdS )GetBlockedRequestl   5 l   OOt N)offsetlimitr;   c             C   s   || _ || _|| _dS )zV
        :returns contacts.Blocked: Instance of either Blocked, BlockedSlice.
        N)rY   rZ   r;   )r   rY   rZ   r;   r   r   r   r   >  s    zGetBlockedRequest.__init__c             C   s   d| j | j| jdS )NrX   )r   rY   rZ   r;   )rY   rZ   r;   )r   r   r   r   r   F  s    zGetBlockedRequest.to_dictc             C   sF   dj dtjd| jd ks | jdkr$dndtjd| jtjd| jfS )Nr   s   z<IFr   r0   z<i)r   r1   r2   r;   rY   rZ   )r   r   r   r   r   N  s
    "zGetBlockedRequest._bytesc             C   s2   |j  }t|d@ }|j  }|j  }| |||dS )Nr0   )rY   rZ   r;   )r4   r5   )r!   r"   r7   r=   _offset_limitr   r   r   r$   V  s
    zGetBlockedRequest.from_reader)N)r%   r&   r'   r(   r)   rE   r   r5   r   r   r   r*   r$   r   r   r   r   rX   :  s   rX   c               @   sJ   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
edd ZdS )GetContactIDsRequestifziq&P)hashc             C   s
   || _ dS )zF
        :returns Vector<int>: This type has no constructors.
        N)r^   )r   r^   r   r   r   r   d  s    zGetContactIDsRequest.__init__c             C   s   d| j dS )Nr]   )r   r^   )r^   )r   r   r   r   r   j  s    zGetContactIDsRequest.to_dictc             C   s   dj dtjd| jfS )Nr   s   fzz<q)r   r1   r2   r^   )r   r   r   r   r   p  s    zGetContactIDsRequest._bytesc             C   s   |j  }| |dS )N)r^   )rS   )r!   r"   _hashr   r   r   r$   v  s    z GetContactIDsRequest.from_readerc                s"    j    fddt j  D S )Nc                s   g | ]} j  qS r   )r4   )rH   r   )r"   r   r   rQ   ~  s    z4GetContactIDsRequest.read_result.<locals>.<listcomp>)r4   rL   )r"   r   )r"   r   read_result{  s    z GetContactIDsRequest.read_resultN)r%   r&   r'   r(   r)   rE   r   r   r   r*   r$   staticmethodr`   r   r   r   r   r]   `  s   r]   c               @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )GetContactsRequesti]i%8)r^   c             C   s
   || _ dS )z_
        :returns contacts.Contacts: Instance of either ContactsNotModified, Contacts.
        N)r^   )r   r^   r   r   r   r     s    zGetContactsRequest.__init__c             C   s   d| j dS )Nrb   )r   r^   )r^   )r   r   r   r   r     s    zGetContactsRequest.to_dictc             C   s   dj dtjd| jfS )Nr   s   ]z<q)r   r1   r2   r^   )r   r   r   r   r     s    zGetContactsRequest._bytesc             C   s   |j  }| |dS )N)r^   )rS   )r!   r"   r_   r   r   r   r$     s    zGetContactsRequest.from_readerN)r%   r&   r'   r(   r)   rE   r   r   r   r*   r$   r   r   r   r   rb     s   rb   c               @   sL   e Zd ZdZdZddee ee dddZdd	 Z	d
d Z
edd ZdS )GetLocatedRequestl   D<& l   * Nr   )	geo_point
backgroundself_expiresc             C   s   || _ || _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)rd   re   rf   )r   rd   re   rf   r   r   r   r     s    zGetLocatedRequest.__init__c             C   s*   dt | jtr| jj n| j| j| jdS )Nrc   )r   rd   re   rf   )r   rd   r   r   re   rf   )r   r   r   r   r     s    zGetLocatedRequest.to_dictc             C   sv   dj dtjd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jj | jd ks`| jdkrddntjd| jfS )	Nr   s   DHz<IFr   rC   r0   z<i)r   r1   r2   re   rf   rd   r   )r   r   r   r   r     s
    >zGetLocatedRequest._bytesc             C   s@   |j  }t|d@ }|j }|d@ r.|j  }nd }| |||dS )NrC   r0   )rd   re   rf   )r4   r5   r    )r!   r"   r7   Z_backgroundZ
_geo_pointZ_self_expiresr   r   r   r$     s    
zGetLocatedRequest.from_reader)NN)r%   r&   r'   r(   r)   r   r5   rE   r   r   r   r*   r$   r   r   r   r   rc     s   rc   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetSavedRequestl   c iu	c             C   s   ddiS )Nr   rg   r   )r   r   r   r   r     s    zGetSavedRequest.to_dictc             C   s
   dj dS )Nr      )rh   )r   )r   r   r   r   r     s    zGetSavedRequest._bytesc             C   s   |  S )Nr   )r!   r"   r   r   r   r$     s    zGetSavedRequest.from_readerN)	r%   r&   r'   r(   r)   r   r   r*   r$   r   r   r   r   rg     s
   rg   c               @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )GetSponsoredPeersRequestl   Cm l   \h )qc             C   s
   || _ dS )zk
        :returns contacts.SponsoredPeers: Instance of either SponsoredPeersEmpty, SponsoredPeers.
        N)rj   )r   rj   r   r   r   r     s    z!GetSponsoredPeersRequest.__init__c             C   s   d| j dS )Nri   )r   rj   )rj   )r   r   r   r   r     s    z GetSponsoredPeersRequest.to_dictc             C   s   dj d| j| jfS )Nr   s   ȶ)r   r3   rj   )r   r   r   r   r     s    zGetSponsoredPeersRequest._bytesc             C   s   |j  }| |dS )N)rj   )r6   )r!   r"   _qr   r   r   r$     s    z$GetSponsoredPeersRequest.from_readerN)r%   r&   r'   r(   r)   r9   r   r   r   r*   r$   r   r   r   r   ri     s   ri   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetStatusesRequestl   SF	 l   \? c             C   s   ddiS )Nr   rl   r   )r   r   r   r   r     s    zGetStatusesRequest.to_dictc             C   s
   dj dS )Nr      S)rm   )r   )r   r   r   r   r     s    zGetStatusesRequest._bytesc             C   s   |  S )Nr   )r!   r"   r   r   r   r$     s    zGetStatusesRequest.from_readerN)	r%   r&   r'   r(   r)   r   r   r*   r$   r   r   r   r   rl     s
   rl   c               @   sz   e Zd ZdZdZdeeeee ee ee ee ee ee ee ee ee dddZdd Z	d	d
 Z
edd ZdS )GetTopPeersRequestl   xh. l   ;= N)rY   rZ   r^   correspondentsbots_pmbots_inlinephone_callsforward_usersforward_chatsgroupschannelsbots_appc             C   sL   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _dS )zq
        :returns contacts.TopPeers: Instance of either TopPeersNotModified, TopPeers, TopPeersDisabled.
        N)rY   rZ   r^   ro   rp   rq   rr   rs   rt   ru   rv   rw   )r   rY   rZ   r^   ro   rp   rq   rr   rs   rt   ru   rv   rw   r   r   r   r     s    zGetTopPeersRequest.__init__c             C   s8   d| j | j| j| j| j| j| j| j| j| j	| j
| jdS )Nrn   )r   rY   rZ   r^   ro   rp   rq   rr   rs   rt   ru   rv   rw   )rY   rZ   r^   ro   rp   rq   rr   rs   rt   ru   rv   rw   )r   r   r   r   r     s    zGetTopPeersRequest.to_dictc             C   s4  dj dtjd| jd kp| jdkr$dnd| jd kp8| jdkr>dndB | jd kpT| jdkrZdndB | jd kpp| jdkrvdnd	B | jd kp| jdkrdnd
B | jd kp| jdkrdndB | j	d kp| j	dkrdndB | j
d kp| j
dkrdndB | jd kp| jdkrdndB tjd| jtjd| jtjd| jfS )Nr   s   x4z<IFr   r0   rC   rD             i   i   i   z<iz<q)r   r1   r2   ro   rp   rq   rr   rs   rt   ru   rv   rw   rY   rZ   r^   )r   r   r   r   r   .  s     zGetTopPeersRequest._bytesc             C   s   |j  }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }	t|d@ }
t|d	@ }|j  }|j  }|j }| ||||||||||	|
|d
S )Nr0   rC   rD   rx   ry   rz   i   i   i   )rY   rZ   r^   ro   rp   rq   rr   rs   rt   ru   rv   rw   )r4   r5   rS   )r!   r"   r7   Z_correspondentsZ_bots_pmZ_bots_inlineZ_phone_callsZ_forward_usersZ_forward_chatsZ_groupsZ	_channelsZ	_bots_appr[   r\   r_   r   r   r   r$   7  s    zGetTopPeersRequest.from_reader)	NNNNNNNNN)r%   r&   r'   r(   r)   rE   r   r5   r   r   r   r*   r$   r   r   r   r   rn     s   J	rn   c               @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ImportContactTokenRequestiW iwy-)tokenc             C   s
   || _ dS )zD
        :returns User: Instance of either UserEmpty, User.
        N)r|   )r   r|   r   r   r   r   N  s    z"ImportContactTokenRequest.__init__c             C   s   d| j dS )Nr{   )r   r|   )r|   )r   r   r   r   r   T  s    z!ImportContactTokenRequest.to_dictc             C   s   dj d| j| jfS )Nr   s   W )r   r3   r|   )r   r   r   r   r   Z  s    z ImportContactTokenRequest._bytesc             C   s   |j  }| |dS )N)r|   )r6   )r!   r"   _tokenr   r   r   r$   `  s    z%ImportContactTokenRequest.from_readerN)r%   r&   r'   r(   r)   r9   r   r   r   r*   r$   r   r   r   r   r{   J  s   r{   c               @   sB   e Zd ZdZdZed dddZdd Zd	d
 Ze	dd Z
dS )ImportContactsRequesti,l   - r
   )contactsc             C   s
   || _ dS )zS
        :returns contacts.ImportedContacts: Instance of ImportedContacts.
        N)r   )r   r   r   r   r   r   j  s    zImportContactsRequest.__init__c             C   s$   d| j d krg ndd | j D dS )Nr~   c             S   s"   g | ]}t |tr|j n|qS r   )r   r   r   )rH   rI   r   r   r   rQ   s  s    z1ImportContactsRequest.to_dict.<locals>.<listcomp>)r   r   )r   )r   r   r   r   r   p  s    zImportContactsRequest.to_dictc             C   s2   dj ddtjdt| jdj dd | jD fS )Nr   s   ,s   ĵz<ic             s   s   | ]}|j  V  qd S )N)r   )rH   rI   r   r   r   rJ   y  s    z/ImportContactsRequest._bytes.<locals>.<genexpr>)r   r1   r2   rK   r   )r   r   r   r   r   v  s    zImportContactsRequest._bytesc             C   s>   |j   g }x&t|j  D ]}|j }|j| qW | |dS )N)r   )r4   rL   r    rM   )r!   r"   Z	_contactsr   rN   r   r   r   r$   |  s    z!ImportContactsRequest.from_readerN)r%   r&   r'   r(   r)   r   r   r   r   r*   r$   r   r   r   r   r~   f  s   r~   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
ResetSavedRequestl   7* l   gk c             C   s   ddiS )Nr   r   r   )r   r   r   r   r     s    zResetSavedRequest.to_dictc             C   s
   dj dS )Nr      7)r   )r   )r   r   r   r   r     s    zResetSavedRequest._bytesc             C   s   |  S )Nr   )r!   r"   r   r   r   r$     s    zResetSavedRequest.from_readerN)	r%   r&   r'   r(   r)   r   r   r*   r$   r   r   r   r   r     s
   r   c               @   sH   e Zd ZdZdZdddddZdd	 Zd
d Zdd Ze	dd Z
dS )ResetTopPeerRatingRequestisl   gk r   r   )categorypeerc             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r   )r   r   r   r   r   r   r     s    z"ResetTopPeerRatingRequest.__init__c                s   |j |j| jI d H | _d S )N)r<   r   r   )r   r   r   r   r   r   r     s    z!ResetTopPeerRatingRequest.resolvec             C   s<   dt | jtr| jj n| jt | jtr2| jj n| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r     s    z!ResetTopPeerRatingRequest.to_dictc             C   s   dj d| jj | jj fS )Nr   s   s)r   r   r   r   )r   r   r   r   r     s    z ResetTopPeerRatingRequest._bytesc             C   s   |j  }|j  }| ||dS )N)r   r   )r    )r!   r"   Z	_categoryZ_peerr   r   r   r$     s    z%ResetTopPeerRatingRequest.from_readerN)r%   r&   r'   r(   r)   r   r   r   r   r*   r$   r   r   r   r   r     s   r   c               @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ResolvePhoneRequestl   DC l   3` )r.   c             C   s
   || _ dS )zK
        :returns contacts.ResolvedPeer: Instance of ResolvedPeer.
        N)r.   )r   r.   r   r   r   r     s    zResolvePhoneRequest.__init__c             C   s   d| j dS )Nr   )r   r.   )r.   )r   r   r   r   r     s    zResolvePhoneRequest.to_dictc             C   s   dj d| j| jfS )Nr   s   DC)r   r3   r.   )r   r   r   r   r     s    zResolvePhoneRequest._bytesc             C   s   |j  }| |dS )N)r.   )r6   )r!   r"   r8   r   r   r   r$     s    zResolvePhoneRequest.from_readerN)r%   r&   r'   r(   r)   r9   r   r   r   r*   r$   r   r   r   r   r     s   r   c               @   sF   e Zd ZdZdZdeee dddZdd Zd	d
 Z	e
dd ZdS )ResolveUsernameRequestiZrl   3` N)usernamerefererc             C   s   || _ || _dS )zK
        :returns contacts.ResolvedPeer: Instance of ResolvedPeer.
        N)r   r   )r   r   r   r   r   r   r     s    zResolveUsernameRequest.__init__c             C   s   d| j | jdS )Nr   )r   r   r   )r   r   )r   r   r   r   r     s    zResolveUsernameRequest.to_dictc             C   sZ   dj dtjd| jd ks | jdkr$dnd| j| j| jd ksF| jdkrJdn
| j| jfS )Nr   s   Zrz<IFr   r0   )r   r1   r2   r   r3   r   )r   r   r   r   r     s
    "
zResolveUsernameRequest._bytesc             C   s2   |j  }|j }|d@ r"|j }nd }| ||dS )Nr0   )r   r   )r4   r6   )r!   r"   r7   Z	_usernameZ_refererr   r   r   r$     s    
z"ResolveUsernameRequest.from_reader)N)r%   r&   r'   r(   r)   r9   r   r   r   r   r*   r$   r   r   r   r   r     s   r   c               @   s@   e Zd ZdZdZeedddZdd Zdd	 Z	e
d
d ZdS )SearchRequestii㢆C)rj   rZ   c             C   s   || _ || _dS )z=
        :returns contacts.Found: Instance of Found.
        N)rj   rZ   )r   rj   rZ   r   r   r   r     s    zSearchRequest.__init__c             C   s   d| j | jdS )Nr   )r   rj   rZ   )rj   rZ   )r   r   r   r   r   
  s    zSearchRequest.to_dictc             C   s"   dj d| j| jtjd| jfS )Nr   s   z<i)r   r3   rj   r1   r2   rZ   )r   r   r   r   r     s    
zSearchRequest._bytesc             C   s   |j  }|j }| ||dS )N)rj   rZ   )r6   r4   )r!   r"   rk   r\   r   r   r   r$     s    zSearchRequest.from_readerN)r%   r&   r'   r(   r)   r9   rE   r   r   r   r*   r$   r   r   r   r   r     s   r   c               @   sT   e Zd ZdZdZded eee dddZ	dd	 Z
d
d Zdd Zedd ZdS )SetBlockedRequestl   v\) l   gk Nr   )r   rZ   r;   c             C   s   || _ || _|| _dS )z?
        :returns Bool: This type has no constructors.
        N)r   rZ   r;   )r   r   rZ   r;   r   r   r   r   #  s    zSetBlockedRequest.__init__c                s:   g }x*| j D ] }|j|j|j|I d H  qW || _ d S )N)r   rM   r<   r   )r   r   r   rP   rN   r   r   r   r   +  s     zSetBlockedRequest.resolvec             C   s,   d| j d krg ndd | j D | j| jdS )Nr   c             S   s"   g | ]}t |tr|j n|qS r   )r   r   r   )rH   rI   r   r   r   rQ   5  s    z-SetBlockedRequest.to_dict.<locals>.<listcomp>)r   r   rZ   r;   )r   rZ   r;   )r   r   r   r   r   2  s    zSetBlockedRequest.to_dictc          	   C   s`   dj dtjd| jd ks | jdkr$dnddtjdt| jdj d	d
 | jD tjd| jfS )Nr   s   v\Ɣz<IFr   r0   s   ĵz<ic             s   s   | ]}|j  V  qd S )N)r   )rH   rI   r   r   r   rJ   >  s    z+SetBlockedRequest._bytes.<locals>.<genexpr>)r   r1   r2   r;   rK   r   rZ   )r   r   r   r   r   :  s
    "&zSetBlockedRequest._bytesc             C   s^   |j  }t|d@ }|j   g }x&t|j  D ]}|j }|j| q.W |j  }| |||dS )Nr0   )r   rZ   r;   )r4   r5   rL   r    rM   )r!   r"   r7   r=   r#   r   rN   r\   r   r   r   r$   B  s    zSetBlockedRequest.from_reader)N)r%   r&   r'   r(   r)   r   rE   r   r5   r   r   r   r   r*   r$   r   r   r   r   r     s   r   c               @   s>   e Zd ZdZdZedddZdd Zdd	 Ze	d
d Z
dS )ToggleTopPeersRequestl   =)
 l   gk )enabledc             C   s
   || _ dS )z?
        :returns Bool: This type has no constructors.
        N)r   )r   r   r   r   r   r   U  s    zToggleTopPeersRequest.__init__c             C   s   d| j dS )Nr   )r   r   )r   )r   r   r   r   r   [  s    zToggleTopPeersRequest.to_dictc             C   s   dj d| jrdndfS )Nr   s   ڽs   urs   7y)r   r   )r   r   r   r   r   a  s    zToggleTopPeersRequest._bytesc             C   s   |j  }| |dS )N)r   )Ztgread_bool)r!   r"   Z_enabledr   r   r   r$   g  s    z!ToggleTopPeersRequest.from_readerN)r%   r&   r'   r(   r)   r5   r   r   r   r*   r$   r   r   r   r   r   Q  s   r   c               @   sN   e Zd ZdZdZddee dddZdd	 Zd
d Z	dd Z
edd ZdS )UnblockRequestl   (Sj l   gk Nr   )r   r;   c             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r;   )r   r   r;   r   r   r   r   q  s    zUnblockRequest.__init__c                s   |j |j| jI d H | _d S )N)r<   r   r   )r   r   r   r   r   r   r   x  s    zUnblockRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr   )r   r   r;   )r   r   r   r   r;   )r   r   r   r   r   {  s    zUnblockRequest.to_dictc             C   s6   dj dtjd| jd ks | jdkr$dnd| jj fS )Nr   s   (Pz<IFr   r0   )r   r1   r2   r;   r   r   )r   r   r   r   r     s    "zUnblockRequest._bytesc             C   s(   |j  }t|d@ }|j }| ||dS )Nr0   )r   r;   )r4   r5   r    )r!   r"   r7   r=   r#   r   r   r   r$     s    zUnblockRequest.from_reader)N)r%   r&   r'   r(   r)   r   r5   r   r   r   r   r*   r$   r   r   r   r   r   m  s   r   )-__doc__Ztl.tlobjectr   r   typingr   r   r   r   osr1   r	   Ztl.typesr
   r   r   r   r   r   r+   r:   r>   rF   rO   rR   rT   rV   rX   r]   rb   rc   rg   ri   rl   rn   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sF   1%(!(!&!)B!#& 2