U
    nh.l                     @   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+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    * r   idc                 C   s
   || _ dS z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        Nr   selfr    r   h/var/www/html/peyman_registration/venvv2/lib/python3.8/site-packages/telethonv2/tl/functions/contacts.py__init__   s    zAcceptContactRequest.__init__c                    s   | || 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 n| jdS )Nr   _r   )
isinstancer   r   to_dictr   r   r   r   r$      s    zAcceptContactRequest.to_dictc                 C   s   d d| j fS )N    s   1)joinr   _bytesr%   r   r   r   r(       s    zAcceptContactRequest._bytesc                 C   s   |  }| |dS Nr   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 r   Nr   r   
first_name	last_namephoneadd_phone_privacy_exceptionc                 C   s"   || _ || _|| _|| _|| _dS r   r8   )r   r   r9   r:   r;   r<   r   r   r   r   0   s
    zAddContactRequest.__init__c                    s   | || jI d H | _d S r   r   r   r   r   r   r    :   s    zAddContactRequest.resolvec                 C   s2   dt | jtr| j n| j| j| j| j| jdS )Nr7   )r"   r   r9   r:   r;   r<   )r#   r   r   r$   r9   r:   r;   r<   r%   r   r   r   r$   =   s    zAddContactRequest.to_dictc              
   C   sT   d dtd| jd ks | jdkr$dnd| j | | j| | j| | j	fS )Nr&   s   c<IFr      )
r'   structpackr<   r   r(   serialize_bytesr9   r:   r;   r%   r   r   r   r(   G   s    "


zAddContactRequest._bytesc                 C   sF   |  }t|d@ }| }| }| }| }| |||||dS )Nr>   r8   )read_intboolr+   tgread_string)r,   r-   flagsZ_add_phone_privacy_exceptionr.   _first_name
_last_name_phoner   r   r   r/   Q   s    zAddContactRequest.from_reader)N)r1   r2   r3   r4   r5   strr   rC   r   r    r$   r(   r6   r/   r   r   r   r   r7   ,   s   


r7   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..   gk Nr   r   my_stories_fromc                 C   s   || _ || _dS z?
        :returns Bool: This type has no constructors.
        NrL   r   r   rM   r   r   r   r   a   s    zBlockRequest.__init__c                    s   | || jI d H | _d S r   get_input_peerr   r   r   r   r   r   r    h   s    zBlockRequest.resolvec                 C   s&   dt | jtr| j n| j| jdS )NrJ   r"   r   rM   r#   r   r   r$   rM   r%   r   r   r   r$   k   s    zBlockRequest.to_dictc                 C   s6   d dtd| jd ks | jdkr$dnd| j fS )Nr&   s   4..r=   Fr   r>   r'   r?   r@   rM   r   r(   r%   r   r   r   r(   r   s
    "zBlockRequest._bytesc                 C   s(   |  }t|d@ }| }| ||dS Nr>   rL   rB   rC   r+   r,   r-   rE   _my_stories_fromr.   r   r   r   r/   y   s    zBlockRequest.from_reader)Nr1   r2   r3   r4   r5   r   rC   r   r    r$   r(   r6   r/   r   r   r   r   rJ   ]   s   rJ   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,)r   Nmsg_iddelete_messagedelete_historyreport_spamc                 C   s   || _ || _|| _|| _dS r   r[   )r   r\   r]   r^   r_   r   r   r   r      s    z BlockFromRepliesRequest.__init__c                 C   s   d| j | j| j| jdS )NrZ   )r"   r\   r]   r^   r_   r[   r%   r   r   r   r$      s    zBlockFromRepliesRequest.to_dictc              	   C   sr   d dt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d	| jfS )
Nr&   s   ,)r=   Fr   r>         <i)r'   r?   r@   r]   r^   r_   r\   r%   r   r   r   r(      s
    ZzBlockFromRepliesRequest._bytesc                 C   sD   |  }t|d@ }t|d@ }t|d@ }|  }| ||||dS )Nr>   r`   ra   r[   rB   rC   )r,   r-   rE   Z_delete_messageZ_delete_historyZ_report_spam_msg_idr   r   r   r/      s    z#BlockFromRepliesRequest.from_reader)NNNr1   r2   r3   r4   r5   intr   rC   r   r$   r(   r6   r/   r   r   r   r   rZ      s   "		rZ   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rK   phonesc                 C   s
   || _ dS rN   rh   )r   ri   r   r   r   r      s    zDeleteByPhonesRequest.__init__c                 C   s"   d| j d krg n| j d d  dS )Nrg   )r"   ri   rh   r%   r   r   r   r$      s    zDeleteByPhonesRequest.to_dictc              
      s6   d ddtdt jd  fdd jD fS )Nr&   s      ĵrb   c                 3   s   | ]}  |V  qd S r   )rA   .0xr%   r   r   	<genexpr>   s     z/DeleteByPhonesRequest._bytes.<locals>.<genexpr>)r'   r?   r@   lenri   r%   r   r%   r   r(      s      zDeleteByPhonesRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS )Nrh   )rB   rangerD   append)r,   r-   Z_phonesr"   _xr   r   r   r/      s    z!DeleteByPhonesRequest.from_readerN)r1   r2   r3   r4   r5   r   rI   r   r$   r(   r6   r/   r   r   r   r   rg      s   rg   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	r   r   r   c                 C   s
   || _ dS r   r   r   r   r   r   r      s    zDeleteContactsRequest.__init__c                    s6   g }| j D ] }||||I d H  q
|| _ d S r   )r   rq   r   r   r   r   r   _tmprr   r   r   r   r       s    
zDeleteContactsRequest.resolvec                 C   s$   d| j d krg ndd | j D dS )Nrs   c                 S   s"   g | ]}t |tr| n|qS r   r#   r   r$   rk   r   r   r   
<listcomp>   s     z1DeleteContactsRequest.to_dict.<locals>.<listcomp>r!   r   r%   r   r   r   r$      s    zDeleteContactsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr&   s    j	rj   rb   c                 s   s   | ]}|  V  qd S r   r(   rk   r   r   r   rn      s     z/DeleteContactsRequest._bytes.<locals>.<genexpr>r'   r?   r@   ro   r   r%   r   r   r   r(      s      zDeleteContactsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS r)   rB   rp   r+   rq   r,   r-   r.   r"   rr   r   r   r   r/      s    z!DeleteContactsRequest.from_readerN)r1   r2   r3   r4   r5   r   r   r    r$   r(   r6   r/   r   r   r   r   rs      s   rs   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 rK   r   c                 C   s
   || _ dS rN   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 )Nr|   r!   r   r%   r   r   r   r$      s    zEditCloseFriendsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr&   s   grj   rb   c                 s   s   | ]}t d |V  qdS )<qN)r?   r@   rk   r   r   r   rn     s     z1EditCloseFriendsRequest._bytes.<locals>.<genexpr>ry   r%   r   r   r   r(     s      zEditCloseFriendsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS r)   )rB   rp   	read_longrq   r{   r   r   r   r/   	  s    z#EditCloseFriendsRequest.from_readerN)r1   r2   r3   r4   r5   r   rf   r   r$   r(   r6   r/   r   r   r   r   r|      s   r|   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"   r   r   r%   r   r   r   r$     s     z!ExportContactTokenRequest.to_dictc                 C   s
   d dS )Nr&   )s   '@er'   r%   r   r   r   r(     s    z ExportContactTokenRequest._bytesc                 C   s   |  S r   r   r,   r-   r   r   r   r/   "  s    z%ExportContactTokenRequest.from_readerN	r1   r2   r3   r4   r5   r$   r(   r6   r/   r   r   r   r   r     s   r   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"   r   r   r%   r   r   r   r$   +  s     zGetBirthdaysRequest.to_dictc                 C   s
   d dS )Nr&   )s   dr   r%   r   r   r   r(   0  s    zGetBirthdaysRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r/   5  s    zGetBirthdaysRequest.from_readerNr   r   r   r   r   r   '  s   r   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limitrM   c                 C   s   || _ || _|| _dS )zV
        :returns contacts.Blocked: Instance of either Blocked, BlockedSlice.
        Nr   )r   r   r   rM   r   r   r   r   >  s    zGetBlockedRequest.__init__c                 C   s   d| j | j| jdS )Nr   )r"   r   r   rM   r   r%   r   r   r   r$   F  s
    zGetBlockedRequest.to_dictc              	   C   sF   d dtd| jd ks | jdkr$dndtd| jtd| jfS )Nr&   s   r=   Fr   r>   rb   )r'   r?   r@   rM   r   r   r%   r   r   r   r(   N  s    "zGetBlockedRequest._bytesc                 C   s2   |  }t|d@ }|  }|  }| |||dS )Nr>   r   rc   )r,   r-   rE   rX   _offset_limitr   r   r   r/   V  s
    zGetBlockedRequest.from_reader)Nre   r   r   r   r   r   :  s   r   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.
        Nr   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 dtd| jfS )Nr&   s   fzr}   r'   r?   r@   r   r%   r   r   r   r(   p  s    zGetContactIDsRequest._bytesc                 C   s   |  }| |dS Nr   r~   r,   r-   _hashr   r   r   r/   v  s    z GetContactIDsRequest.from_readerc                    s"        fddt   D S )Nc                    s   g | ]}   qS r   )rB   )rl   r"   r-   r   r   rw   ~  s     z4GetContactIDsRequest.read_result.<locals>.<listcomp>)rB   rp   r   r   r   r   read_result{  s    z GetContactIDsRequest.read_resultN)r1   r2   r3   r4   r5   rf   r   r$   r(   r6   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%8r   c                 C   s
   || _ dS )z_
        :returns contacts.Contacts: Instance of either ContactsNotModified, Contacts.
        Nr   r   r   r   r   r     s    zGetContactsRequest.__init__c                 C   s   d| j dS )Nr   r   r   r%   r   r   r   r$     s    zGetContactsRequest.to_dictc                 C   s   d dtd| jfS )Nr&   s   ]r}   r   r%   r   r   r   r(     s    zGetContactsRequest._bytesc                 C   s   |  }| |dS r   r   r   r   r   r   r/     s    zGetContactsRequest.from_readerN)r1   r2   r3   r4   r5   rf   r   r$   r(   r6   r/   r   r   r   r   r     s   r   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<& r   Nr   	geo_point
backgroundself_expiresc                 C   s   || _ || _|| _dS r   r   )r   r   r   r   r   r   r   r     s    zGetLocatedRequest.__init__c                 C   s*   dt | jtr| j n| j| j| jdS )Nr   )r"   r   r   r   )r#   r   r   r$   r   r   r%   r   r   r   r$     s
    zGetLocatedRequest.to_dictc              	   C   sv   d dt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d ks`| jdkrddntd| jfS )	Nr&   s   DHr=   Fr   r`   r>   rb   )r'   r?   r@   r   r   r   r(   r%   r   r   r   r(     s    >$zGetLocatedRequest._bytesc                 C   s@   |  }t|d@ }| }|d@ r.|  }nd }| |||dS )Nr`   r>   r   rV   )r,   r-   rE   Z_background
_geo_pointZ_self_expiresr   r   r   r/     s    
zGetLocatedRequest.from_reader)NN)r1   r2   r3   r4   r5   r   rC   rf   r   r$   r(   r6   r/   r   r   r   r   r     s   r   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"   r   r   r%   r   r   r   r$     s     zGetSavedRequest.to_dictc                 C   s
   d dS )Nr&   )s   r   r%   r   r   r   r(     s    zGetSavedRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r/     s    zGetSavedRequest.from_readerNr   r   r   r   r   r     s   r   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"   r   r   r%   r   r   r   r$     s     zGetStatusesRequest.to_dictc                 C   s
   d dS )Nr&   )s   Sr   r%   r   r   r   r(     s    zGetStatusesRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r/     s    zGetStatusesRequest.from_readerNr   r   r   r   r   r     s   r   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r   r   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.
        Nr   )r   r   r   r   r   r   r   r   r   r   r   r   r   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 )Nr   )r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   r   r$     s    zGetTopPeersRequest.to_dictc              
   C   s6  d dt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 | jd ksr| jdkrvdnd	B | jd ks| jdkrdnd
B | jd ks| jdkrdndB | j	d ks| j	dkrdndB | j
d ks| j
dkrdndB | jd ks| jdkrdndB td| jtd| jtd| jfS )Nr&   s   x4r=   Fr   r>   r`   ra                      rb   r}   )r'   r?   r@   r   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   r   r(     s     zGetTopPeersRequest._bytesc                 C   s   |  }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }t|d@ }	t|d@ }
t|d	@ }|  }|  }| }| ||||||||||	|
|d
S )Nr>   r`   ra   r   r   r   r   r   r   r   )rB   rC   r~   )r,   r-   rE   Z_correspondentsZ_bots_pmZ_bots_inlineZ_phone_callsZ_forward_usersZ_forward_chatsZ_groupsZ	_channelsZ	_bots_appr   r   r   r   r   r   r/     s    zGetTopPeersRequest.from_reader)	NNNNNNNNNre   r   r   r   r   r     s   J	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 )ImportContactTokenRequestiW iwy-tokenc                 C   s
   || _ dS )zD
        :returns User: Instance of either UserEmpty, User.
        Nr   )r   r   r   r   r   r   2  s    z"ImportContactTokenRequest.__init__c                 C   s   d| j dS )Nr   )r"   r   r   r%   r   r   r   r$   8  s    z!ImportContactTokenRequest.to_dictc                 C   s   d d| | jfS )Nr&   s   W )r'   rA   r   r%   r   r   r   r(   >  s    
z ImportContactTokenRequest._bytesc                 C   s   |  }| |dS )Nr   rD   )r,   r-   _tokenr   r   r   r/   D  s    z%ImportContactTokenRequest.from_readerNr1   r2   r3   r4   r5   rI   r   r$   r(   r6   r/   r   r   r   r   r   .  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.
        Nr   )r   r   r   r   r   r   N  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| n|qS r   rv   rk   r   r   r   rw   W  s     z1ImportContactsRequest.to_dict.<locals>.<listcomp>)r"   r   r   r%   r   r   r   r$   T  s    zImportContactsRequest.to_dictc              	   C   s2   d ddtdt| jd dd | jD fS )Nr&   s   ,rj   rb   c                 s   s   | ]}|  V  qd S r   rx   rk   r   r   r   rn   ]  s     z/ImportContactsRequest._bytes.<locals>.<genexpr>)r'   r?   r@   ro   r   r%   r   r   r   r(   Z  s      zImportContactsRequest._bytesc                 C   s:   |   g }t|  D ]}| }|| q| |dS )Nr   rz   )r,   r-   	_contactsr"   rr   r   r   r   r/   `  s    z!ImportContactsRequest.from_readerN)r1   r2   r3   r4   r5   r   r   r$   r(   r6   r/   r   r   r   r   r   J  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* rK   c                 C   s   ddiS )Nr"   r   r   r%   r   r   r   r$   o  s     zResetSavedRequest.to_dictc                 C   s
   d dS )Nr&   )s   7r   r%   r   r   r   r(   t  s    zResetSavedRequest._bytesc                 C   s   |  S r   r   r   r   r   r   r/   y  s    zResetSavedRequest.from_readerNr   r   r   r   r   r   k  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rK   r   r   categorypeerc                 C   s   || _ || _dS rN   r   )r   r   r   r   r   r   r     s    z"ResetTopPeerRatingRequest.__init__c                    s   | || jI d H | _d S r   )rQ   r   r   r   r   r   r   r      s    z!ResetTopPeerRatingRequest.resolvec                 C   s<   dt | jtr| j n| jt | jtr2| 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 d| j | j fS )Nr&   s   s)r'   r   r(   r   r%   r   r   r   r(     s
    z ResetTopPeerRatingRequest._bytesc                 C   s   |  }|  }| ||dS )Nr   r*   )r,   r-   Z	_category_peerr   r   r   r/     s    z%ResetTopPeerRatingRequest.from_readerNr0   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    3` r;   c                 C   s
   || _ dS zK
        :returns contacts.ResolvedPeer: Instance of ResolvedPeer.
        Nr   )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 d| | jfS )Nr&   s   DC)r'   rA   r;   r%   r   r   r   r(     s    
zResolvePhoneRequest._bytesc                 C   s   |  }| |dS )Nr   r   )r,   r-   rH   r   r   r   r/     s    zResolvePhoneRequest.from_readerNr   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 )ResolveUsernameRequestiZrr   Nusernamerefererc                 C   s   || _ || _dS 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$     s    zResolveUsernameRequest.to_dictc                 C   sZ   d dtd| jd ks | jdkr$dnd| | j| jd ksF| jdkrJdn
| | jfS )Nr&   s   Zrr=   Fr   r>   )r'   r?   r@   r   rA   r   r%   r   r   r   r(     s    "
"zResolveUsernameRequest._bytesc                 C   s2   |  }| }|d@ r"| }nd }| ||dS )Nr>   r   )rB   rD   )r,   r-   rE   	_usernameZ_refererr   r   r   r/     s    
z"ResolveUsernameRequest.from_reader)N)r1   r2   r3   r4   r5   rI   r   r   r$   r(   r6   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qr   c                 C   s   || _ || _dS )z=
        :returns contacts.Found: Instance of Found.
        Nr   )r   r   r   r   r   r   r     s    zSearchRequest.__init__c                 C   s   d| j | jdS )Nr   )r"   r   r   r   r%   r   r   r   r$     s    zSearchRequest.to_dictc                 C   s"   d d| | jtd| jfS )Nr&   s   rb   )r'   rA   r   r?   r@   r   r%   r   r   r   r(     s
    
zSearchRequest._bytesc                 C   s   |  }| }| ||dS )Nr   )rD   rB   )r,   r-   _qr   r   r   r   r/     s    zSearchRequest.from_readerN)r1   r2   r3   r4   r5   rI   rf   r   r$   r(   r6   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\) rK   Nr   r   r   rM   c                 C   s   || _ || _|| _dS rN   r   )r   r   r   rM   r   r   r   r     s    zSetBlockedRequest.__init__c                    s6   g }| j D ] }||||I d H  q
|| _ d S r   )r   rq   rQ   r   rt   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| n|qS r   rv   rk   r   r   r   rw     s     z-SetBlockedRequest.to_dict.<locals>.<listcomp>)r"   r   r   rM   r   r%   r   r   r   r$     s
    zSetBlockedRequest.to_dictc                 C   s`   d dtd| jd ks | jdkr$dnddtdt| jd d	d
 | jD td| jfS )Nr&   s   v\Ɣr=   Fr   r>   rj   rb   c                 s   s   | ]}|  V  qd S r   rx   rk   r   r   r   rn   "  s     z+SetBlockedRequest._bytes.<locals>.<genexpr>)r'   r?   r@   rM   ro   r   r   r%   r   r   r   r(     s    "  zSetBlockedRequest._bytesc                 C   sZ   |  }t|d@ }|   g }t|  D ]}| }|| q,|  }| |||dS )Nr>   r   )rB   rC   rp   r+   rq   )r,   r-   rE   rX   r.   r"   rr   r   r   r   r   r/   &  s    zSetBlockedRequest.from_reader)N)r1   r2   r3   r4   r5   r   rf   r   rC   r   r    r$   r(   r6   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   =)
 rK   enabledc                 C   s
   || _ dS rN   r   )r   r   r   r   r   r   9  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 d| jrdndfS )Nr&   s   ڽs   urs   7y)r'   r   r%   r   r   r   r(   E  s    zToggleTopPeersRequest._bytesc                 C   s   |  }| |dS )Nr   )tgread_bool)r,   r-   _enabledr   r   r   r/   K  s    z!ToggleTopPeersRequest.from_readerN)r1   r2   r3   r4   r5   rC   r   r$   r(   r6   r/   r   r   r   r   r   5  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 rK   Nr   rL   c                 C   s   || _ || _dS rN   rL   rO   r   r   r   r   U  s    zUnblockRequest.__init__c                    s   | || jI d H | _d S r   rP   r   r   r   r   r    \  s    zUnblockRequest.resolvec                 C   s&   dt | jtr| j n| j| jdS )Nr   rR   rS   r%   r   r   r   r$   _  s    zUnblockRequest.to_dictc                 C   s6   d dtd| jd ks | jdkr$dnd| j fS )Nr&   s   (Pr=   Fr   r>   rT   r%   r   r   r   r(   f  s
    "zUnblockRequest._bytesc                 C   s(   |  }t|d@ }| }| ||dS rU   rV   rW   r   r   r   r/   m  s    zUnblockRequest.from_reader)NrY   r   r   r   r   r   Q  s   r   ),__doc__tl.tlobjectr   r   typingr   r   r   r   osr?   r	   tl.typesr
   r   r   r   r   r   r7   rJ   rZ   rg   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sD   1%(!(!&!)B!#& 2