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: //proc/self/root/lib/python3/dist-packages/twisted/words/im/__pycache__/ircsupport.cpython-38.pyc
U

��W[�#�@s�dZddlmZddlmZddlmZmZmZddl	m
Z
ddlmZm
Z
mZddlmZGdd	�d	ej�Zee
j�Gd
d�dej��ZGdd
�d
ejej�Zee
j�Gdd�dej��ZdS)z%
IRC support for Instance Messenger.
�)�irc��ONLINE)�defer�reactor�protocol)�succeed)�basesupport�
interfaces�locals)�implementerc@s6eZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zd	S)
�	IRCPersoncCs*|jjdkrtj�|jj�d|j�dS)NzWHOIS %s��account�clientr�OfflineErrorZsendLine�name��self�r�=/usr/lib/python3/dist-packages/twisted/words/im/ircsupport.py�imperson_whoisszIRCPerson.imperson_whoiscCstS�Nrrrrr�isOnlineszIRCPerson.isOnlinecCstSrrrrrr�	getStatusszIRCPerson.getStatuscCs||_|j���|�dSr)�status�chat�getContactsListZsetContactStatus)rrrrr�	setStatus!szIRCPerson.setStatusNcCsj|jjdkrtj�|�d�D]D}|rN|�dd�dkrN|jj�|jd|fg�q|jj�|j|�qt	|�S)N�
�style�emote�ACTION)
rrrr�split�get�
ctcpMakeQueryr�msgr�r�text�meta�linerrr�sendMessage&szIRCPerson.sendMessage)N)�__name__�
__module__�__qualname__rrrrr+rrrrr
s
r
c@s8eZdZdd�Zdd�Zdd�Zifdd�Zd	d
�ZdS)�IRCGroupcCsdSrrrrrr�imgroup_testAction4szIRCGroup.imgroup_testActioncCs6|jjdkrtj�d}|jj�d|j|j|f�dS)Nzfor great justice!zKICK #%s %s :%sr)r�target�reasonrrr�
imtarget_kick8s
�zIRCGroup.imtarget_kickcCs(|jjdkrtj�|jj�|j|�dSr)rrrr�topicr)rr4rrr�setTopicAszIRCGroup.setTopiccCsp|jjdkrtj�|rF|�dd�dkrF|jj�|jd|fg�t|�S|�d�D]}|jj�	|j|�qPt|�S)Nr r!r"r)
rrrrr$r%rrr#Zsayr'rrr�sendGroupMessageGszIRCGroup.sendGroupMessagecCs8|jjdkrtj�|jj�|j�|jj�|jd�dS�N�)rrrr�leaver�getGroupConversationrrrrr9SszIRCGroup.leaveN)r,r-r.r0r3r5r6r9rrrrr/2s
	r/c@s�eZdZd-dd�Zd.dd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
d/dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�ZdS)0�IRCProtoNcCs.tj�||||�i|_i|_i|_i|_dSr)r	�AbstractClientMixin�__init__�_namreplies�	_ingroupsZ_groups�_topics)rr�chatui�
logonDeferredrrrr=\s�zIRCProto.__init__rcCs"|��}|jj|j�||�|d�S)N)Z
stayHidden)�lowerrr:�getGroup)rrZhiderrrr:es�zIRCProto.getGroupConversationcCs|j�||�Sr)r�	getPerson�rrrrrrEkszIRCProto.getPersoncCs�zpd|_|jj|_|jj|_d|_tj�|�|jj	D]}|�
|�q6d|j_|jdk	rd|j�
|�|j��Wnddl}|��YnXdS)NTzTwisted-IM userr8r)ZperformLoginr�username�nickname�passwordZrealnamer�	IRCClient�connectionMade�channels�	joinGroupZ	_isOnlineZ_logonDeferred�callbackrr�	traceback�	print_exc)r�channelrOrrrrKos


zIRCProto.connectionMadecCs"||_d||_tj�||�dS)Nz%s (IRC))r�accountNamerrJ�setNick)rZnickrrrrS�s
zIRCProto.setNickcCs |j�|j�|dd�|�d�S)z9
        Called when I am kicked from a channel.
        r8N)rr:rD)rrQ�kicker�messagerrr�
kickedFrom�s�zIRCProto.kickedFromcCsdSrr)rZkickeerQrTrUrrr�
userKicked�szIRCProto.userKickedcCs|�|||ddi�dS)NZdontAutoRespondr8)�privmsg)rrGrQrUrrr�noticed�szIRCProto.noticedcCsx|dkri}|�dd�d}||jkr*dS|ddkrZ|dd�}|�|��|||�dS|j�|�|���||�dS)N�!r8r�#�r#rr:ZshowGroupMessagerZgetConversationrEZshowMessage)rrGrQrUZmetadata�grouprrrrX�s
zIRCProto.privmsgcCst|�dd�d}||jkrdSddi}|ddkrV|dd�}|�|��|||�dS|j�|�|���||�dS)NrZr8rr r!r[r\)rrGrQr!r)r]rrr�action�s
zIRCProto.actioncCs�|ddd���}|d��}tt|��D]*}||ddkr,||dd�||<q0q,||jkrlg|j|<|j|�|�|D]2}z|j|�|�Wq�|g|j|<Yq�Xq�dS)z�
        RPL_NAMREPLY
        >> NAMES #bnl
        << :Arlington.VA.US.Undernet.Org 353 z3p = #bnl :pSwede Dan-- SkOyg AG
        �r8N�r)�@�+)rCr#�range�lenr>�extendr?�append)r�prefix�paramsr]ZusersZuirHrrr�irc_RPL_NAMREPLY�s

zIRCProto.irc_RPL_NAMREPLYcCs:|ddd�}|�|��|j|���|j|��=dSr7)r:ZsetGroupMembersr>rC�rrgrhr]rrr�irc_RPL_ENDOFNAMES�szIRCProto.irc_RPL_ENDOFNAMEScCs|d|j|ddd�<dS)Nr_r8)r@)rrgrhrrr�
irc_RPL_TOPIC�szIRCProto.irc_RPL_TOPICcCs8|ddd�}|�|��|j||d�|j|=dS)Nr8r_)r:r5r@rjrrr�irc_333�szIRCProto.irc_333cCs<|�d�d}|ddd�}|d}|�|��||�dS�NrZrr8)r#r:r5)rrgrhrHr]r4rrr�	irc_TOPIC�szIRCProto.irc_TOPICcCsn|�d�d}|ddd���}||jkrjz|j|�|�Wn|g|j|<YnX|�|��|�dSrn)r#rCrHr?rfr:ZmemberJoined�rrgrhrHr]rrr�irc_JOIN�s
zIRCProto.irc_JOINcCs^|�d�d}|ddd���}||jkrZ||j|krZ|j|�|�|�|��|�dSrn)r#rCrHr?�remover:�
memberLeftrprrr�irc_PART�s
zIRCProto.irc_PARTcCsF|�d�d}||jkrB|j|D]}|�|��|�q"g|j|<dS�NrZr)r#r?r:rsrprrr�irc_QUIT�s

zIRCProto.irc_QUITcCsb|�d�d}|d}||jkr$dS|j|D]}|�|��||�q.|j||j|<|j|=dSru)r#r?r:ZmemberChangedNick)rrgrhZfromNickZtoNickr]rrr�irc_NICK�s
zIRCProto.irc_NICKcCsdSrr)rrgZcommandrhrrr�irc_unknownszIRCProto.irc_unknowncCs|�|�|�|�dSr)�joinr:rFrrrrM	s
zIRCProto.joinGroup)N)r)N)r,r-r.r=r:rErKrSrVrWrYrXr^rirkrlrmrorqrtrvrwrxrMrrrrr;[s*
	

	r;c@s*eZdZdZeZeZddd�Zdd�Z	dS)	�
IRCAccountZIRC�c	CsDtj�|||||||�dd�|�d�D�|_|jdgkr@g|_dS)NcSsg|]}|���qSr)�strip)�.0rQrrr�
<listcomp>sz'IRCAccount.__init__.<locals>.<listcomp>�,r{)r	�AbstractAccountr=r#rL)rrRZ	autoLoginrGrI�host�portrLrrrr=s�zIRCAccount.__init__cCs:t��}t�tt|||�}|�|j|j�}|�	|j
�|Sr)rZDeferredrZ
ClientCreatorrr;Z
connectTCPr�r�Z
addErrbackZerrback)rrArBZcc�drrr�_startLogOns�zIRCAccount._startLogOnN)r{)
r,r-r.ZgatewayTyper/Z
_groupFactoryr
Z_personFactoryr=r�rrrrrzs�
	rzN)�__doc__Ztwisted.words.protocolsrZtwisted.words.im.localsrZtwisted.internetrrrZtwisted.internet.deferrZtwisted.words.imr	r
rZzope.interfacerZAbstractPersonr
ZIGroupZ
AbstractGroupr/r<rJr;ZIAccountr�rzrrrr�<module>s"(5