ó
    ×›‘h�%  ã                   óˆ  • S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJrJr  SSKJrJrJr   " S	 S
\R&                  5      r\" \R*                  5       " S S\R,                  5      5       r " S S\R0                  \R2                  5      r\SS.r\" \R8                  5       " S S\R:                  5      5       rg)z2
L{twisted.words} support for Instance Messenger.
é    )Úimplementer)ÚdeferÚerror)Úlog)ÚFailure)Úpb)ÚbasesupportÚ
interfaces)ÚAWAYÚOFFLINEÚONLINEc                   ó<   • \ rS rSrSrS rS rS rS rS r	S r
S	rg
)ÚTwistedWordsPersoné   zHI a facade for a person you can talk to through a twisted.words service.c                 óZ   • [         R                  R                  XU5        [        U l        g ©N)r	   ÚAbstractPersonÚ__init__r   Ústatus)ÚselfÚnameÚwordsAccounts      Ú^C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/words/im/pbsupport.pyr   ÚTwistedWordsPerson.__init__   s   € Ü×"Ñ"×+Ñ+¨D¸ÔEÜˆ�ó    c                 ó\   • U R                   [        :H  =(       d    U R                   [        :H  $ r   )r   r   r   ©r   s    r   ÚisOnlineÚTwistedWordsPerson.isOnline   s   € Ø—‘œvÑ%×?¨4¯;©;¼$Ñ+>Ð?r   c                 ó   • U R                   $ r   ©r   r   s    r   Ú	getStatusÚTwistedWordsPerson.getStatus   s   € Ø�{‰{Ðr   c                 ó<  • U(       a[  U R                   R                  R                  R                  U R                  X5      nUR                  U R                  SU-   5        U$ U R                   R                  R                  R                  SU R                  U5      $ )zReturn a deferred...ú* ÚdirectMessage)ÚaccountÚclientÚperspectiver&   r   Ú
addErrbackÚmetadataFailedÚ
callRemote©r   ÚtextÚmetadataÚds       r   ÚsendMessageÚTwistedWordsPerson.sendMessage!   sv   € æØ—‘×#Ñ#×/Ñ/×=Ñ=¸d¿i¹iÈÓXˆAØ�L‰L˜×,Ñ,¨d°T©kÔ:ØˆHà—<‘<×&Ñ&×2Ñ2×=Ñ=Ø §¡¨Dóð r   c                 ó’   • [        SUSU5        U R                  R                  R                  R	                  U R
                  U5      $ )Núresult:útext:)Úprintr'   r(   r)   r&   r   ©r   Úresultr.   s      r   r+   Ú!TwistedWordsPerson.metadataFailed,   s7   € Üˆi˜ ¨$Ô/Ø�|‰|×"Ñ"×.Ñ.×<Ñ<¸T¿Y¹YÈÓMÐMr   c                 ób   • Xl         U R                  R                  5       R                  U 5        g r   )r   ÚchatÚgetContactsListÚsetContactStatus)r   r   s     r   Ú	setStatusÚTwistedWordsPerson.setStatus0   s"   € ØŒØ�	‰	×!Ñ!Ó#×4Ñ4°TÕ:r   r!   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r"   r1   r+   r>   Ú__static_attributes__© r   r   r   r      s%   † ÙRòò@òò	òNõ;r   r   c                   óB   • \ rS rSrS rSS jrS rS rS rS r	S	 r
S
rg)ÚTwistedWordsGroupé5   c                 óR   • [         R                  R                  XU5        SU l        g ©Nr   )r	   ÚAbstractGroupr   Újoined)r   r   ÚwordsClients      r   r   ÚTwistedWordsGroup.__init__7   s   € Ü×!Ñ!×*Ñ*¨4°{ÔCØˆ�r   Nc                 ó>  • U(       a\  U R                   R                  R                  R                  SU R                  X5      nUR                  U R                  SU-   5        U$ U R                   R                  R                  R                  SU R                  U5      $ )zReturn a deferred.ÚgroupMessager%   )r'   r(   r)   r,   r   r*   r+   r-   s       r   ÚsendGroupMessageÚ"TwistedWordsGroup.sendGroupMessage;   s   € ö Ø—‘×#Ñ#×/Ñ/×:Ñ:Ø §	¡	¨4óˆAð �L‰L˜×,Ñ,¨d°T©kÔ:ØˆHà—<‘<×&Ñ&×2Ñ2×=Ñ=Ø §	¡	¨4óð r   c                 ó¦   • U R                   R                  R                  R                  SXR                  R                  S.U R                  5        g )NÚsetGroupMetadata)ÚtopicÚtopic_author©r'   r(   r)   r,   r   )r   r.   s     r   ÚsetTopicÚTwistedWordsGroup.setTopicI   s:   € Ø�‰×Ñ×'Ñ'×2Ñ2ØØ¯K©K×,<Ñ,<Ñ=Ø�I‰Iõ	
r   c                 ó”   • [        SUSU5        U R                  R                  R                  R	                  SU R
                  U5      $ )Nr4   r5   rQ   )r6   r'   r(   r)   r,   r   r7   s      r   r+   Ú TwistedWordsGroup.metadataFailedP   s>   € Üˆi˜ ¨$Ô/Ø�|‰|×"Ñ"×.Ñ.×9Ñ9Ø˜DŸI™I tó
ð 	
r   c                 ó   • SU l         g )Né   ©rM   r   s    r   ÚjoiningÚTwistedWordsGroup.joiningV   ó	   € Øˆ�r   c                 ó   • SU l         g rK   r_   r   s    r   ÚleavingÚTwistedWordsGroup.leavingY   rb   r   c                 óv   • U R                   R                  R                  R                  SU R                  5      $ ©NÚ
leaveGrouprX   r   s    r   ÚleaveÚTwistedWordsGroup.leave\   s)   € Ø�|‰|×"Ñ"×.Ñ.×9Ñ9¸,ÈÏ	É	ÓRÐRr   r_   r   )r@   rA   rB   rC   r   rR   rY   r+   r`   rd   ri   rE   rF   r   r   rH   rH   5   s&   † òôò
ò
òòõSr   rH   c                   ó�   • \ rS rSrSrSS jrS rS rS rS r	S	 r
SS
 jrS rS rS rSS jrS rS rS rS rS rS rS rSrg)ÚTwistedWordsClienté`   z‡In some cases, this acts as an Account, since it a source of text
messages (multiple Words instances may be on a single PB connection)
Nc                 ó�   • SR                  UR                  UU5      U l        X0l        [        SX#5        X@l        Xl        XPl        g )Nz
{} ({}:{})zHELLO I AM A PB SERVICE)ÚformatÚaccountNamer   r6   r;   r'   Ú_logonDeferred)r   ÚacctÚserviceNameÚperspectiveNameÚchatuirq   s         r   r   ÚTwistedWordsClient.__init__e   sF   € Ø'×.Ñ.Ø×ÑØØó
ˆÔð
 $Œ	ÜÐ'¨ÔFØŒ	ØŒØ,Õr   c                 ó8   • U R                   R                  X5      $ r   )r;   Ú	getPerson©r   r   s     r   rx   ÚTwistedWordsClient.getPersonq   s   € Ø�y‰y×"Ñ" 4Ó.Ð.r   c                 ó8   • U R                   R                  X5      $ r   )r;   ÚgetGroupry   s     r   r|   ÚTwistedWordsClient.getGroupt   s   € Ø�y‰y×!Ñ! $Ó-Ð-r   c                 óV   • U R                   R                  U R                  U5      5      $ r   )r;   ÚgetGroupConversationr|   ry   s     r   r   Ú'TwistedWordsClient.getGroupConversationw   s    € Ø�y‰y×-Ñ-¨d¯m©m¸DÓ.AÓBÐBr   c                 ó<   • U R                   R                  SU5        g )NÚ
addContact)r)   r,   ry   s     r   r‚   ÚTwistedWordsClient.addContactz   s   € Ø×Ñ×#Ñ# L°$Õ7r   c                 ó\   • [        SX5        U R                  U5      R                  U5        g )Nzreceived group members:)r6   r   ÚsetGroupMembers)r   ÚnamesÚgroups      r   Úremote_receiveGroupMembersÚ-TwistedWordsClient.remote_receiveGroupMembers}   s&   € ÜÐ'¨Ô6Ø×!Ñ! %Ó(×8Ñ8¸Õ?r   c                 ó`   • [        SXX45        U R                  U5      R                  XU5        g )Nzreceived a group message)r6   r   ÚshowGroupMessage)r   Úsenderr‡   Úmessager/   s        r   Úremote_receiveGroupMessageÚ-TwistedWordsClient.remote_receiveGroupMessage�   s*   € ÜÐ(¨&¸ÔKØ×!Ñ! %Ó(×9Ñ9¸&È8ÕTr   c                 ó\   • [        SX5        U R                  U5      R                  U5        g )Nzmember joined)r6   r   ÚmemberJoined©r   Úmemberr‡   s      r   Úremote_memberJoinedÚ&TwistedWordsClient.remote_memberJoined…   s%   € Üˆo˜vÔ-Ø×!Ñ! %Ó(×5Ñ5°fÕ=r   c                 óZ   • [        S5        U R                  U5      R                  U5        g )Nzmember left)r6   r   Ú
memberLeftr’   s      r   Úremote_memberLeftÚ$TwistedWordsClient.remote_memberLeft‰   s#   € ÜˆmÔØ×!Ñ! %Ó(×3Ñ3°FÕ;r   c                 óX   • U R                   R                  X5      R                  U5        g r   ©r;   rx   r>   )r   r   r   s      r   Úremote_notifyStatusChangedÚ-TwistedWordsClient.remote_notifyStatusChanged�   s   € Ø�	‰	×Ñ˜DÓ'×1Ñ1°&Õ9r   c                 óŠ   • U R                   R                  U R                   R                  X5      5      R                  X#5        g r   )r;   ÚgetConversationrx   ÚshowMessage)r   r   r�   r/   s       r   Úremote_receiveDirectMessageÚ.TwistedWordsClient.remote_receiveDirectMessage�   s1   € Ø�	‰	×!Ñ! $§)¡)×"5Ñ"5°dÓ"AÓB×NÑNØõ	
r   c                 ón   • U H/  u  p#U R                   R                  X 5      R                  U5        M1     g r   r›   )r   Úclistr   r   s       r   Úremote_receiveContactListÚ,TwistedWordsClient.remote_receiveContactList•   s+   € Û!‰LˆDØ�I‰I×Ñ Ó+×5Ñ5°fÖ=ò "r   c                 óz   • SU;   a5  U R                  U5      R                  US   UR                  SS 5      5        g g )NrV   rW   )r   rY   Úget)r   Údict_Ú	groupNames      r   Úremote_setGroupMetadataÚ*TwistedWordsClient.remote_setGroupMetadata™   s<   € Ø�eÓØ×%Ñ% iÓ0×9Ñ9Ø�g‘ §	¡	¨.¸$Ó ?õð r   c                 ó¬   • U R                  U5      R                  5         U R                  R                  SU5      R	                  U R
                  U5      $ )NÚ	joinGroup)r|   r`   r)   r,   ÚaddCallbackÚ_cbGroupJoinedry   s     r   r®   ÚTwistedWordsClient.joinGroupŸ   sH   € Ø�‰�dÓ×#Ñ#Ô%Ø×Ñ×*Ñ*¨;¸Ó=×IÑIØ×Ñ ó
ð 	
r   c                 ó¬   • U R                  U5      R                  5         U R                  R                  SU5      R	                  U R
                  U5      $ rg   )r|   rd   r)   r,   r¯   Ú_cbGroupLeftry   s     r   rh   ÚTwistedWordsClient.leaveGroup¥   sH   € Ø�‰�dÓ×#Ñ#Ô%Ø×Ñ×*Ñ*¨<¸Ó>×JÑJØ×Ñ˜tó
ð 	
r   c                 ó´   • U R                   R                  U R                  U5      5      nUR                  SS5        U R                  R                  SU5        g )NÚsysz
you joinedÚgetGroupMembers)r;   r   r|   r‹   r)   r,   ©r   r8   r   Ú	groupConvs       r   r°   Ú!TwistedWordsClient._cbGroupJoined«   sF   € Ø—I‘I×2Ñ2°4·=±=ÀÓ3FÓGˆ	Ø×"Ñ" 5¨,Ô7Ø×Ñ×#Ñ#Ð$5°tÕ<r   c                 ó–   • [        SU5        U R                  R                  U R                  U5      S5      nUR	                  SS5        g )NÚleftr^   r¶   zyou left)r6   r;   r   r|   r‹   r¸   s       r   r³   ÚTwistedWordsClient._cbGroupLeft°   s;   € Üˆf�dÔØ—I‘I×2Ñ2°4·=±=ÀÓ3FÈÓJˆ	Ø×"Ñ" 5¨*Õ5r   c                 ó¬   • [        SU5        U R                  b  U R                  R                  U 5        Xl        U R                  R                  5         g )NzConnected Words Client!)r6   rq   Úcallbackr)   r;   r<   )r   r)   s     r   Ú	connectedÚTwistedWordsClient.connectedµ   sC   € ÜÐ'¨Ô5Ø×ÑÑ*Ø×Ñ×(Ñ(¨Ô.Ø&ÔØ�	‰	×!Ñ!Õ#r   )rq   r'   rp   r;   r   r)   r   )r@   rA   rB   rC   rD   r   rx   r|   r   r‚   rˆ   rŽ   r”   r˜   rœ   r¡   r¥   r«   r®   rh   r°   r³   rÀ   rE   rF   r   r   rl   rl   `   sd   † ñô
-ò/ò.òCò8ò@ôUò>ò<ò:ô
ò
>òò
ò
ò=ò
6õ
$r   rl   N)útwisted.wordsztwisted.realityc                   óP   • \ rS rSrSr\r\r SS jr	S r
S rS rS rS	 rS
 rSrg)Ú	PBAccountéÀ   ÚPBNc           	      óÐ   • [         R                  R                  XX#XEU5        / U l        U(       d  SSU4/nU H*  u  p‰n
U R                  R	                  [
        U   Xš/5        M,     g)zG
@param username: The name of your PB Identity.
@type username: string
rÂ   N)r	   ÚAbstractAccountr   ÚservicesÚappendÚpbFrontEnds)r   rp   Ú	autoLoginÚusernameÚpasswordÚhostÚportrÉ   ÚserviceTypers   rt   s              r   r   ÚPBAccount.__init__Æ   sk   € ô 	×#Ñ#×,Ñ,Ø˜y°HÀDô	
ð ˆŒÞØ(¨/¸8ÐDÐEˆHÛ9AÑ5ˆK oØ�M‰M× Ñ Ü˜[Ñ)¨;ÐHöò :Br   c                 ó  ^ ^• T R                   (       d^  T R                  (       dM  ST l         T R                  T5      nUR                  T R                  5        UU 4S jnUR                  U5        U$ [        R                  " S5      e)zg
@returns: this breaks with L{interfaces.IAccount}
@returntype: DeferredList of L{interfaces.IClient}s
r^   c                 óž   >• U  HF  u  pU(       a$  TR                  U5        TR                  U5        M0  [        R                  " U5        MH     g r   )ÚregisterAccountClientÚ	_cb_logOnr   Úerr)ÚresultsÚsuccessr8   ru   r   s      €€r   ÚregisterManyÚ%PBAccount.logOn.<locals>.registerManyå   s7   ø€ Û'.‘O�GÞØ×4Ñ4°VÔ<ØŸ™ vÖ.äŸš žò (/r   zConnection in progress)Ú_isConnectingÚ	_isOnlineÚ_startLogOnr*   Ú_loginFailedr¯   r   ÚConnectionError)r   ru   r0   rÚ   s   ``  r   ÚlogOnÚPBAccount.logOnØ   sh   ù€ ð ×"×"¨T¯^¯^Ø!"ˆDÔØ× Ñ  Ó(ˆAØ�L‰L˜×*Ñ*Ô+ö(ð �M‰M˜,Ô'ØˆHä×'Ò'Ð(@ÓAÐAr   c                 ó   • g r   rF   r   s    r   ÚlogOffÚPBAccount.logOffò   s   € àr   c                 ó¼   • [        SSS9  [        R                  " U R                  U R                  5      nUR                  U R                  U R                  U4S9  U$ )NzConnecting...Ú ©Úend©ÚcallbackArgs)r6   r   ÚgetObjectAtrÏ   rÐ   ÚaddCallbacksÚ_cbConnectedÚ_ebConnected)r   ru   r0   s      r   rÞ   ÚPBAccount._startLogOnö   sI   € Üˆo 3Ò'Ü�NŠN˜4Ÿ9™9 d§i¡iÓ0ˆØ	�‰�t×(Ñ(¨$×*;Ñ*;È6È)ˆÑTØˆr   c                 óÒ   • [        S5        [        SSS9  [        R                  " XR                  U R                  5      nUR                  U R                  U R                  U4S9  U$ )Nz
Connected!zIdentifying...rç   rè   rê   )r6   r   ÚauthIdentityrÍ   rÎ   rí   Ú_cbIdentrï   )r   Úrootru   r0   s       r   rî   ÚPBAccount._cbConnectedü   sP   € ÜˆlÔÜÐ CÒ(Ü�OŠO˜D§-¡-°·±Ó?ˆØ	�‰�t—}‘} d×&7Ñ&7ÀvÀiˆÑPØˆr   c                 ó–  • U(       d.  [        S5        U R                  [        [        S5      5      5      $ [        S5        / nU R                   Hb  u  pEn[
        R                  " 5       nUR                  U5        U" XXbU5      nUR                  SXVU5      R                  UR                  5        Md     [
        R                  " U5      $ )Nzfalsely identified.zusername or password incorrectzIdentified!Úattach)r6   rï   r   Ú	ExceptionrÉ   r   ÚDeferredrÊ   r,   r¯   rÀ   ÚDeferredList)	r   Úidentru   ÚdlÚhandlerClassÚsnameÚpnamer0   Úhandlers	            r   ró   ÚPBAccount._cbIdent  s¯   € ÞÜÐ'Ô(Ø×$Ñ$Üœ	Ð"BÓCÓDóð ô 	ˆmÔØˆØ*.¯-¬-Ñ&ˆL Ü—’Ó ˆAØ�I‰I�aŒLÙ" 4°¸qÓAˆGØ×Ñ˜X u°WÓ=×IÑIØ×!Ñ!öñ	 +8ô ×!Ò! "Ó%Ð%r   c                 ó   • [        S5        U$ )NzNot connected.)r6   )r   r   s     r   rï   ÚPBAccount._ebConnected  s   € ÜÐÔØˆr   )rÜ   rÉ   r   )r@   rA   rB   rC   ÚgatewayTyperH   Ú_groupFactoryr   Ú_personFactoryr   rá   rä   rÞ   rî   ró   rï   rE   rF   r   r   rÄ   rÄ   À   s<   † à€KØ%€MØ'€Nð PTôò$Bò4òòò&õ"r   rÄ   )rD   Úzope.interfacer   Útwisted.internetr   r   Útwisted.pythonr   Útwisted.python.failurer   Útwisted.spreadr   Útwisted.words.imr	   r
   Útwisted.words.im.localsr   r   r   r   r   ÚIGrouprL   rH   ÚReferenceableÚAbstractClientMixinrl   rË   ÚIAccountrÈ   rÄ   rF   r   r   Ú<module>r     s¿   ðñ
õ
 'ç )Ý Ý *Ý ß 4ß 9Ñ 9ô;˜×3Ñ3ô ;ñB ˆZ×ÑÓô'S˜×1Ñ1ó 'Só  ð'SôTZ$˜×)Ñ)¨;×+JÑ+Jô Z$ðz !3ÀtÑL€ñ ˆZ× Ñ Ó!ôU�×+Ñ+ó Uó "ñUr   