HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/words/im/__pycache__/pbsupport.cpython-38.pyc
U


W[�%�@s�dZddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZmZdd	lmZmZdd
lmZGdd�dej�Zeej�Gd
d�dej��ZGdd�dejej�Zedd�Zeej�Gdd�dej��Z dS)z2
L{twisted.words} support for Instance Messenger.
�)�print_function)�defer)�error)�log)�Failure)�pb)�ONLINE�OFFLINE�AWAY)�basesupport�
interfaces)�implementerc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�TwistedWordsPersonzMI a facade for a person you can talk to through a twisted.words service.
    cCstj�|||�t|_dS�N)r�AbstractPerson�__init__r	�status)�self�nameZwordsAccount�r�</usr/lib/python3/dist-packages/twisted/words/im/pbsupport.pyrszTwistedWordsPerson.__init__cCs|jtkp|jtkSr)rrr
�rrrr�isOnlines
�zTwistedWordsPerson.isOnlinecCs|jSr)rrrrr�	getStatus"szTwistedWordsPerson.getStatuscCsJ|r0|jjj�|j||�}|�|jd|�|S|jjj�d|j|�SdS)zReturn a deferred...
        �* �
directMessageN)�account�client�perspectiverr�
addErrback�metadataFailed�
callRemote�r�text�metadata�drrr�sendMessage%s�zTwistedWordsPerson.sendMessagecCs"td|d|�|jjj�|j|�S)N�result:�text:)�printrrrrr�r�resultr#rrrr 0sz!TwistedWordsPerson.metadataFailedcCs||_|j���|�dSr)r�chat�getContactsListZsetContactStatus)rrrrr�	setStatus4szTwistedWordsPerson.setStatusN)
�__name__�
__module__�__qualname__�__doc__rrrr&r r.rrrrrsrc@sFeZdZdd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�TwistedWordsGroupcCstj�|||�d|_dS�Nr)r�
AbstractGroupr�joined)rrZwordsClientrrrr:szTwistedWordsGroup.__init__NcCsL|r2|jjj�d|j||�}|�|jd|�|S|jjj�d|j|�SdS)zReturn a deferred.
        �groupMessagerN)rrrr!rrr r"rrr�sendGroupMessage>s
��z"TwistedWordsGroup.sendGroupMessagecCs$|jjj�d||jjd�|j�dS)NZsetGroupMetadata)�topic�topic_author�rrrr!r)rr#rrr�setTopicKs

�zTwistedWordsGroup.setTopiccCs$td|d|�|jjj�d|j|�S)Nr'r(r7)r)rrrr!rr*rrrr Qs
�z TwistedWordsGroup.metadataFailedcCs
d|_dS)N��r6rrrr�joiningVszTwistedWordsGroup.joiningcCs
d|_dSr4r>rrrr�leavingYszTwistedWordsGroup.leavingcCs|jjj�d|j�S�N�
leaveGroupr;rrrr�leave\s�zTwistedWordsGroup.leave)N)
r/r0r1rr8r<r r?r@rCrrrrr38s

r3c@s�eZdZdZd'dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	d(dd�Z
dd�Zdd�Zdd�Z
d)dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�ZdS)*�TwistedWordsClientz�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)
    NcCs:d|j||f|_||_td||�||_||_||_dS)Nz
%s (%s:%s)zHELLO I AM A PB SERVICE)�accountNamerr)r,r�_logonDeferred)rZacct�serviceName�perspectiveName�chatuirFrrrrfszTwistedWordsClient.__init__cCs|j�||�Sr)r,�	getPerson�rrrrrrJoszTwistedWordsClient.getPersoncCs|j�||�Sr)r,�getGrouprKrrrrLrszTwistedWordsClient.getGroupcCs|j�|�|��Sr)r,�getGroupConversationrLrKrrrrMusz'TwistedWordsClient.getGroupConversationcCs|j�d|�dS)N�
addContact)rr!rKrrrrNxszTwistedWordsClient.addContactcCs td||�|�|��|�dS)Nzreceived group members:)r)rMZsetGroupMembers)r�names�grouprrr�remote_receiveGroupMembers{sz-TwistedWordsClient.remote_receiveGroupMemberscCs(td||||�|�|��|||�dS)Nzreceived a group message)r)rM�showGroupMessage)rZsenderrP�messager$rrr�remote_receiveGroupMessagesz-TwistedWordsClient.remote_receiveGroupMessagecCs td||�|�|��|�dS)Nz
member joined)r)rMZmemberJoined�r�memberrPrrr�remote_memberJoined�sz&TwistedWordsClient.remote_memberJoinedcCstd�|�|��|�dS)Nzmember left)r)rMZ
memberLeftrUrrr�remote_memberLeft�sz$TwistedWordsClient.remote_memberLeftcCs|j�||��|�dSr�r,rJr.)rrrrrr�remote_notifyStatusChanged�sz-TwistedWordsClient.remote_notifyStatusChangedcCs"|j�|j�||���||�dSr)r,ZgetConversationrJZshowMessage)rrrSr$rrr�remote_receiveDirectMessage�sz.TwistedWordsClient.remote_receiveDirectMessagecCs&|D]\}}|j�||��|�qdSrrY)rZclistrrrrr�remote_receiveContactList�sz,TwistedWordsClient.remote_receiveContactListcCs*d|kr&|�|��|d|�dd��dS)Nr9r:)rMr<�get)rZdict_Z	groupNamerrr�remote_setGroupMetadata�sz*TwistedWordsClient.remote_setGroupMetadatacCs&|�|���|j�d|��|j|�S)N�	joinGroup)rLr?rr!�addCallback�_cbGroupJoinedrKrrrr_�szTwistedWordsClient.joinGroupcCs&|�|���|j�d|��|j|�SrA)rLr@rr!r`�_cbGroupLeftrKrrrrB�szTwistedWordsClient.leaveGroupcCs0|j�|�|��}|�dd�|j�d|�dS)N�sysz
you joinedZgetGroupMembers)r,rMrLrRrr!�rr+rZ	groupConvrrrra�sz!TwistedWordsClient._cbGroupJoinedcCs.td|�|j�|�|�d�}|�dd�dS)N�leftr=rczyou left)r)r,rMrLrRrdrrrrb�s
zTwistedWordsClient._cbGroupLeftcCs4td|�|jdk	r |j�|�||_|j��dS)NzConnected Words Client!)r)rF�callbackrr,r-)rrrrr�	connected�s


zTwistedWordsClient.connected)N)N)N)r/r0r1r2rrJrLrMrNrQrTrWrXrZr[r\r^r_rBrarbrgrrrrrDbs(�
	

rDN)�
twisted.wordsztwisted.realityc@sJeZdZdZeZeZddd�Zdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dS)�	PBAccountZPBNc	CsXtj�|||||||�g|_|s.dd|fg}|D] \}}	}
|j�t||	|
g�q2dS)z_
        @param username: The name of your PB Identity.
        @type username: string
        rhN)r�AbstractAccountr�services�append�pbFrontEnds)rrEZ	autoLogin�username�password�host�portrkZserviceTyperGrHrrrr�s��zPBAccount.__init__csR�jsD�jsDd�_����}|��j���fdd�}|�|�|St�d��dS)z
        @returns: this breaks with L{interfaces.IAccount}
        @returntype: DeferredList of L{interfaces.IClient}s
        r=cs6|D],\}}|r&��|���|�qt�|�qdSr)ZregisterAccountClientZ	_cb_logOnr�err)ZresultsZsuccessr+�rIrrr�registerMany�s

z%PBAccount.logOn.<locals>.registerManyzConnection in progressN)Z
_isConnectingZ	_isOnline�_startLogOnrZ_loginFailedr`r�ConnectionError)rrIr%rtrrsr�logOn�s

zPBAccount.logOncCs6tddd�t�|j|j�}|j|j|j|fd�|S)Nz
Connecting...� ��end�ZcallbackArgs)r)rZgetObjectAtrprq�addCallbacks�_cbConnected�_ebConnected)rrIr%rrrru�s�zPBAccount._startLogOncCs@td�tddd�t�||j|j�}|j|j|j|fd�|S)Nz
Connected!zIdentifying...rxryr{)r)rZauthIdentityrnror|�_cbIdentr~)r�rootrIr%rrrr}�s�zPBAccount._cbConnectedc	Cs�|std�|�ttd���Std�g}|jD]D\}}}t��}|�|�||||||�}|�d|||��	|j
�q0t�|�S)Nzfalsely identified.zusername or password incorrectzIdentified!Zattach)r)r~r�	ExceptionrkrZDeferredrlr!r`rgZDeferredList)	rZidentrIZdlZhandlerClassZsnameZpnamer%Zhandlerrrrr�s
zPBAccount._cbIdentcCstd�|S)NzNot connected.)r))rrrrrr~szPBAccount._ebConnected)N)r/r0r1ZgatewayTyper3Z
_groupFactoryrZ_personFactoryrrwrur}rr~rrrrri�s�

ri)!r2Z
__future__rZtwisted.internetrrZtwisted.pythonrZtwisted.python.failurerZtwisted.spreadrZtwisted.words.im.localsrr	r
Ztwisted.words.imrrZzope.interfacer
rrZIGroupr5r3Z
ReferenceableZAbstractClientMixinrDrmZIAccountrjrirrrr�<module>s$!)R�