Ë
    °È„jL!  ã                   ó¢   — d dl 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	 d dlm
Z
 d	d
lmZ d	dlmZ d	dlmZ  G d„ de«      Zy)é    N)ÚAny)ÚList)ÚOptional)ÚMediaSegmentQuality)ÚProtocol)Ú	RTCServer)Ú	SsrcGroupé   )ÚHandlersHolder)ÚGroupCallParticipant)ÚUpdatedGroupCallParticipantc                   óà  — e Zd Zdefd„Z	 	 dCdededededee   dee   fd	„Z	dedefd
„Z
defd„Zdedededefd„Zdededefd„Zdedededefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zdefd„Zdefd„Zdededefd „Zded!ed"ed#ee   d$ef
d%„Zdefd&„Zded'ee   d(ee   dee   d)ee   defd*„Zd+efd,„Zdefd-„Zd.„ Zd/„ Zd0„ Z e!d1„ «       Z"e!d2ee#jH                     fd3„«       Z%e!d4„ «       Z&e!dee   d2e'e(   fd5„«       Z)e!d6„ «       Z*e!dDd7ed2efd8„«       Z+e!d2efd9„«       Z,e!d2e'e-   fd:„«       Z.e!d;ed2ee   fd<„«       Z/e!d=ed2ee   fd>„«       Z0e!d2efd?„«       Z1d@„ Z2dA„ Z3defdB„Z4y)EÚBridgedClientÚchat_idc              ƒ   ó   K  — y ­w©N© ©Úselfr   s     úW/var/www/html/GAP/venv/lib/python3.12/site-packages/pytgcalls/mtproto/bridged_client.pyÚget_callzBridgedClient.get_call   ó   è ø€ ð 	ùó   ‚NÚ	json_joinÚvideo_stoppedÚjoin_asÚinvite_hashÚ
public_keyc              ƒ   ó   K  — y ­wr   r   )r   r   r   r   r   r   r   s          r   Újoin_group_callzBridgedClient.join_group_call   ó   è ø€ ð 	ùr   c              ƒ   ó   K  — y ­wr   r   )r   r   r   s      r   Újoin_presentationzBridgedClient.join_presentation$   ó   è ø€ ð
 	ùr   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úleave_presentationz BridgedClient.leave_presentation+   r   r   Úuser_idÚg_a_hashÚprotocolÚ	has_videoc              ƒ   ó   K  — y ­wr   r   )r   r'   r(   r)   r*   s        r   Úrequest_callzBridgedClient.request_call1   ó   è ø€ ð 	ùr   Úg_bc              ƒ   ó   K  — y ­wr   r   )r   r'   r.   r)   s       r   Úaccept_callzBridgedClient.accept_call:   ó   è ø€ ð 	ùr   Úg_aÚkey_fingerprintc              ƒ   ó   K  — y ­wr   r   )r   r'   r2   r3   r)   s        r   Úconfirm_callzBridgedClient.confirm_callB   r-   r   Údatac              ƒ   ó   K  — y ­wr   r   )r   r'   r6   s      r   Úsend_signalingzBridgedClient.send_signalingK   r$   r   Ú	is_missedc              ƒ   ó   K  — y ­wr   r   )r   r   r9   s      r   Údiscard_callzBridgedClient.discard_callR   r$   r   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úcreate_group_callzBridgedClient.create_group_callY   r   r   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úleave_group_callzBridgedClient.leave_group_call_   r   r   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úclose_voice_chatzBridgedClient.close_voice_chate   r   r   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úget_group_call_participantsz)BridgedClient.get_group_call_participantsk   r   r   ÚvolumeÚparticipantc              ƒ   ó   K  — y ­wr   r   )r   r   rD   rE   s       r   Úchange_volumezBridgedClient.change_volumeq   r1   r   Ú	timestampÚlimitÚvideo_channelÚvideo_qualityc              ƒ   ó   K  — y ­wr   r   )r   r   rH   rI   rJ   rK   s         r   Údownload_streamzBridgedClient.download_streamy   s   è ø€ ð 	ùr   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úget_stream_timestampz"BridgedClient.get_stream_timestampƒ   r   r   Úmuted_statusÚvideo_pausedÚpresentation_pausedc              ƒ   ó   K  — y ­wr   r   )r   r   rP   rQ   r   rR   rE   s          r   Úset_call_statuszBridgedClient.set_call_status‰   r!   r   Ú
input_callc              ƒ   ó   K  — y ­wr   r   )r   rU   s     r   Úget_participantszBridgedClient.get_participants”   r   r   c              ƒ   ó   K  — y ­wr   r   )r   r'   s     r   Úresolve_peerzBridgedClient.resolve_peerš   r   r   c                  ó   — y r   r   ©r   s    r   Úis_connectedzBridgedClient.is_connected    ó   € Øó    c                  ó   — y r   r   r[   s    r   Ú
no_updateszBridgedClient.no_updates£   r]   r^   c              ƒ   ó   K  — y ­wr   r   r[   s    r   ÚstartzBridgedClient.start¦   ó	   è ø€ Øùr   c                 ód   — t        | j                  j                  «      j                  d«      d   S )Nú.r   )ÚstrÚ	__class__Ú
__module__Úsplit)Úobjs    r   Úpackage_namezBridgedClient.package_name©   s'   € ä�3—=‘=×+Ñ+Ó,×2Ñ2°3Ó7¸Ñ:Ð:r^   Úreturnc                 óð   — | sy t        j                  | j                  | j                  D ��cg c]3  }t	        |j
                  |j                  D �cg c]  }|dz  ‘Œ	 c}«      ‘Œ5 c}}«      S c c}w c c}}w )Nl   ÿÿ )r   Ú
SourceInfoÚendpointÚsource_groupsr	   Ú	semanticsÚsources)ÚsourceÚsource_groupÚssrcs      r   Úparse_sourcezBridgedClient.parse_source­   st   € áØÜ#×.Ñ.Ø�O‰Oð %+×$8Ñ$8÷ð
 !ô	 Ø ×*Ñ*Ø5A×5IÑ5IÖJ¨T�d˜ZÓ'ÒJõóó	
ð 		
ùò
 Kùós   ­#A2ÁA-Á	A2Á-A2c                 ób  — t        t        j                  | j                  «      t	        | j
                  «      t	        | j
                  «      t	        | j                  «      k7  t	        | j                  «      xs t	        | j                  «      t	        | j                  «      t	        | j                  «      t	        | j                  «      | j                  �| j                  dz  nd| j                  t        j                  | j                  «      t        j                  | j                  «      «      S )Néd   )r   r   r   ÚpeerÚboolÚmutedÚcan_self_unmuteÚvideoÚpresentationÚraise_hand_ratingrD   rs   rv   ©rE   s    r   Úparse_participantzBridgedClient.parse_participant¼   sê   € ä#Ü×!Ñ! +×"2Ñ"2Ó3Ü�×"Ñ"Ó#Ü�×"Ñ"Ó#¤t¨K×,GÑ,GÓ'HÑHÜ�×"Ñ"Ó#ò +Ü�×)Ñ)Ó*Ü�×)Ñ)Ó*Ü�×"Ñ"Ó#Ü�×.Ñ.Ó/à×!Ñ!Ð-ð ×Ñ #Ò%Ø36Ø×ÑÜ×&Ñ& {×'8Ñ'8Ó9Ü×&Ñ& {×'?Ñ'?Ó@ó
ð 	
r^   c           	   ƒ   óì  K  — |€g S t         j                  |j                  «      }| j                  |d«      ƒ d {  –—† }g }|D ]g  }|j                  |k(  sŒ|j
                  |j
                  k7  r;|j                  t        |t        j                  j                  |«      «       d|_         n |j                  t        |t         j                  |«      t         j                  |«      «      «       |S 7 Œ¶­w)NT)r   r   ry   Úget_participant_listr'   rs   Úappendr   r   ÚActionÚKICKEDÚjust_joinedÚparse_participant_actionr�   )Úcacher   rE   r'   ÚparticipantsÚupdatesÚps          r   Údiff_participants_updatez&BridgedClient.diff_participants_updateÎ   sî   è ø€ ð ˆ?ØˆIÜ×'Ñ'¨×(8Ñ(8Ó9ˆØ"×7Ñ7ØØó
÷ 
ˆð ˆØò 	ˆAØ�y‰y˜GÓ#Ø—8‘8˜{×1Ñ1Ò1Ø—N‘NÜ3Ø#Ü0×7Ñ7×>Ñ>Øóôð /3�KÔ+Ùð	ð 	�‰Ü'ØÜ×6Ñ6°{ÓCÜ×/Ñ/°Ó<óô	
ð ˆð3
ús   ‚9C4»C2¼C4ÁBC4c                 óÎ   — | j                   rt        j                  j                  S | j                  rt        j                  j
                  S t        j                  j                  S r   )r‡   r   r…   ÚJOINEDÚleftÚLEFTÚUPDATEDr€   s    r   rˆ   z&BridgedClient.parse_participant_actionò   sJ   € à×"Ò"Ü'×.Ñ.×5Ñ5Ð5Ø×ÒÜ'×.Ñ.×3Ñ3Ð3ä'×.Ñ.×6Ñ6Ð6r^   Úreadablec                 óX  — | j                   j                  }|dv r| j                  S |dv r|rd| j                  z
  S | j                  S t	        | d«      r|rd| j
                  z
  S | j
                  S |dk(  r|r| j                   S | j                  S |r| j                   S | j                  S )N)ÚPeerUserÚInputPeerUser)ÚChannelÚChannelForbiddenlýÿÿÿ J)£Ú
channel_idÚChat)rg   Ú__name__r'   ÚidÚhasattrr™   r   )Ú
input_peerr“   Ú
class_names      r   r   zBridgedClient.chat_idû   s¾   € à×)Ñ)×2Ñ2ˆ
ØÐ6Ñ6Ø×%Ñ%Ð%ØÐ:Ñ:áð " J§M¡MÑ1ð /Ø!+§¡ð/ä�Z Ô.áð " J×$9Ñ$9Ñ9ð 7Ø!+×!6Ñ!6ð7à˜6Ò!Ù%-�J—M‘M�>Ð@°:·=±=Ð@á*2�J×&Ñ&Ð&ÐJ¸
×8JÑ8JÐJr^   c                 óp   — | j                   j                  }|dv r| j                  S |dv r| j                  S y)N)ÚPhoneCallAcceptedÚPhoneCallWaiting)ÚPhoneCallRequestedÚ	PhoneCalléÿÿÿÿ)rg   r›   Úparticipant_idÚadmin_id)ÚcallrŸ   s     r   Úuser_from_callzBridgedClient.user_from_call  s<   € à—^‘^×,Ñ,ˆ
ØÐBÑBØ×&Ñ&Ð&ØÐ>Ñ>Ø—=‘=Ð Ør^   c                 óÂ  — | D �cg c]Ï  }|j                   j                  dk(  rdt        |j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  dd «
      nOt        |j                  |j                  |j
                  |j                  d d dd|j                  |j                  «
      ‘ŒÑ c}S c c}w )NÚPhoneConnectionWebrtcFT)rg   r›   r   rœ   ÚipÚipv6ÚportÚusernameÚpasswordÚturnÚstunÚtcpÚpeer_tag)ÚserversÚservers     r   Úparse_serverszBridgedClient.parse_servers  sÅ   € ð6 "ö3
ð2 ð ×!Ñ!×*Ñ*Ð.EÒEô Ø—	‘	Ø—	‘	Ø—‘Ø—‘Ø—‘Ø—‘Ø—‘Ø—‘ØØôô Ø—	‘	Ø—	‘	Ø—‘Ø—‘ØØØØØ—
‘
Ø—‘óñò
ð 	
ùò 
s   …CCÚqualityc                 ó|   — | t         j                  k(  ry| t         j                  k(  ry| t         j                  k(  ryy )Nr   é   r
   )r   Ú	THUMBNAILÚMEDIUMÚFULL)r¸   s    r   Úparse_qualityzBridgedClient.parse_quality2  s;   € àÔ)×3Ñ3Ò3ØØÔ+×2Ñ2Ò2ØØÔ+×0Ñ0Ò0Øàr^   Úerrorc                 óX   — t        j                  d| «      }|rt        |d   d   «      S d S )NzJ(CALL_MIGRATE_|The file to be accessed is currently stored in DC *)([0-9])r   rº   )ÚreÚfindallÚint)r¿   Údc_ids     r   Ú
extract_dczBridgedClient.extract_dc=  s6   € ä—
‘
ðð ó
ˆñ $)Œs�5˜‘8˜A‘;ÓÐ2¨dÐ2r^   c                  ó.   — t        j                  dd«      S )Nr   iþÿÿ)ÚrandomÚrandintr   r^   r   Úrnd_idzBridgedClient.rnd_idH  s   € ä�~‰~˜a Ó0Ð0r^   c              ƒ   ó   K  — y ­wr   r   r[   s    r   Úget_dhczBridgedClient.get_dhcL  rc   r   c              ƒ   ó   K  — y ­wr   r   r[   s    r   Úget_idzBridgedClient.get_idO  rc   r   c              ƒ   ó   K  — y ­wr   r   r   s     r   Úget_input_callzBridgedClient.get_input_callR  rc   r   )NN)T)5r›   rh   Ú__qualname__rÃ   r   rf   rz   r   r   r    r#   r&   Úbytesr   r,   r0   r5   r8   r;   r=   r?   rA   rC   rG   r   rM   rO   rT   rW   rY   r\   r`   rb   Ústaticmethodrk   r   rn   rv   r�   r   r   r�   rˆ   r   r©   r   r·   r¾   rÅ   rÉ   rË   rÍ   rÏ   r   r^   r   r   r      s¬  „ ðàóð &*Ø$(ñ	àð	ð ð	ð ð		ð
 ð	ð ˜c‘]ð	ð ˜S‘Mó	ðàðð óðàóðàðð ðð ð	ð
 óðàðð ðð ó	ðàðð ðð ð	ð
 óðàðð óðàðð óðàóðàóðàóðàóðàðð ðð ó	ðàðð ðð ð	ð
   ‘}ðð +óðàóð	àð	ð ˜t‘nð	ð ˜t‘nð		ð
   ‘~ð	ð & d™^ð	ð ó	ðàóðàóòòòð ñ;ó ð;ð ð
 Ð)=×)HÑ)HÑ Iò 
ó ð
ð ñ
ó ð
ð" ð!à˜#‘ð!ð 
Ð)Ñ	*ò	!ó ð!ðF ñ7ó ð7ð ñK dð K°cò Kó ðKð ð ò ó ðð ð
 $ y¡/ò 
ó ð
ð: ðÐ2ð °xÀ±}ò ó ðð ð3˜#ð 3 (¨3¡-ò 3ó ð3ð ð1�Cò 1ó ð1òòð¨Cô r^   r   )rÇ   rÁ   Útypingr   r   r   Úntgcallsr   r   r   r	   Úhandlersr   Útypesr   r   r   r   r^   r   ú<module>r×      s7   ðÛ Û 	Ý Ý Ý å (Ý Ý Ý å %Ý (Ý /ôB�Nõ Br^   