+
    üÐjË!  ã                   ó´   € R t ^ RIHtHt  ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t	 ! R R]4      t
R# )z
Pan-protocol chat client.
)Ú	AttributeÚ	Interfacec                   óh   a € ] tR t^t o Rt]! R4      t]! R4      tR tR t	R t
R tR tR	 tR
tV tR# )ÚIAccountz3
I represent a user's account with a chat service.
z<The L{IClient} currently connecting to this account, if any.z;A C{str} that identifies the protocol used by this account.c                ó   € R# )zÈ
@type accountName: string
@param accountName: A name to refer to the account by locally.
@type autoLogin: boolean
@type username: string
@type password: string
@type host: string
@type port: integer
N© )ÚaccountNameÚ	autoLoginÚusernameÚpasswordÚhostÚports   &&&&&&Ú=/usr/lib/python3/dist-packages/twisted/words/im/interfaces.pyÚ__init__ÚIAccount.__init__   ó   ‚ ó    c                 ó   € R# )z
Am I online?

@rtype: boolean
Nr   r   r   r   ÚisOnlineÚIAccount.isOnline*   r   r   c                ó   € R# )zo
Go on-line.

@type chatui: Implementor of C{IChatUI}

@rtype: L{Deferred} with an eventual L{IClient} result.
Nr   )Úchatuis   &r   ÚlogOnÚIAccount.logOn1   r   r   c                 ó   € R# )z
Sign off.
Nr   r   r   r   ÚlogOffÚIAccount.logOff:   r   r   c                ó   € R# )z
@rtype: L{Group<IGroup>}
Nr   ©Ú	groupNames   &r   ÚgetGroupÚIAccount.getGroup?   r   r   c                ó   € R# )z
@rtype: L{Person<IPerson>}
Nr   )Ú
personNames   &r   Ú	getPersonÚIAccount.getPersonD   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚclientÚgatewayTyper   r   r   r   r    r$   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      sG   ø‡ € ññ ÐUÓV€FÙØEó€Kò	òòòò
÷
ð r   r   c                   óR   a € ] tR t^Jt o ]! R4      tR tR tR tR	R lt	R t
RtV tR# )
ÚIClientz!The L{IAccount} I am a Client forc                ó   € R# )z¶
@type account: L{IAccount}
@type chatui: L{IChatUI}
@param logonDeferred: Will be called back once I am logged on.
@type logonDeferred: L{Deferred<twisted.internet.defer.Deferred>}
Nr   )Úaccountr   ÚlogonDeferreds   &&&r   r   ÚIClient.__init__M   r   r   c                ó   € R# )zJ
@param groupName: The name of the group to join.
@type groupName: string
Nr   r   s   &r   Ú	joinGroupÚIClient.joinGroupU   r   r   c                ó   € R# )zK
@param groupName: The name of the group to leave.
@type groupName: string
Nr   r   s   &r   Ú
leaveGroupÚIClient.leaveGroup[   r   r   c                ó   € R # ©Nr   )ÚnameÚhides   &&r   ÚgetGroupConversationÚIClient.getGroupConversationa   ó   € Ùr   c                ó   € R # r>   r   )r?   s   &r   r$   ÚIClient.getPersond   rC   r   r   N©é    )r&   r'   r(   r)   r   r4   r   r8   r;   rA   r$   r-   r.   r/   s   @r   r2   r2   J   s.   ø‡ € ÙÐ;Ó<€Gòòòô÷ð r   r2   c                   óB   a € ] tR t^ht o R tR tR tR tRR ltRt	V t
R# )	ÚIPersonc                ó   € R# )zŸ
Initialize me.

@param name: My name, as the server knows me.
@type name: string
@param account: The account I am accessed through.
@type account: I{Account}
Nr   ©r?   r4   s   &&r   r   ÚIPerson.__init__i   r   r   c                 ó   € R# )z)
Am I online right now?

@rtype: boolean
Nr   r   r   r   r   ÚIPerson.isOnlines   r   r   c                 ó   € R# )z;
What is my on-line status?

@return: L{locals.StatusEnum}
Nr   r   r   r   Ú	getStatusÚIPerson.getStatusz   r   r   c                 ó   € R# )z+
@rtype: string (XXX: How about a scalar?)
Nr   r   r   r   ÚgetIdleTimeÚIPerson.getIdleTime�   r   r   Nc                ó   € R# )zI
Send a message to this person.

@type text: string
@type metadata: dict
Nr   ©ÚtextÚmetadatas   &&r   ÚsendMessageÚIPerson.sendMessage†   r   r   r   r>   )r&   r'   r(   r)   r   r   rP   rS   rY   r-   r.   r/   s   @r   rI   rI   h   s#   ø‡ € òòòò÷
ò r   rI   c                   óf   a € ] tR t^�t o Rt]! R4      t]! R4      tR tR t	RR lt
R tR	 tR
tV tR# )ÚIGroupzŽ
A group which you may have a conversation with.

Groups generally have a loosely-defined set of members, who may
leave and join at any time.
z'My C{str} name, as the server knows me.z/The L{Account<IAccount>} I am accessed through.c                ó   € R# )z¦
Initialize me.

@param name: My name, as the server knows me.
@type name: str
@param account: The account I am accessed through.
@type account: L{Account<IAccount>}
Nr   rK   s   &&r   r   ÚIGroup.__init__š   r   r   c                ó   € R# )z:
Set this Groups topic on the server.

@type text: string
Nr   )rW   s   &r   ÚsetTopicÚIGroup.setTopic¤   r   r   Nc                ó   € R# )zÜ
Send a message to this group.

@type text: str

@type metadata: dict
@param metadata: Valid keys for this dictionary include:

    - C{'style'}: associated with one of:
        - C{'emote'}: indicates this is an action
Nr   rV   s   &&r   ÚsendGroupMessageÚIGroup.sendGroupMessage«   r   r   c                 ó   € R# )z
Join this group.
Nr   r   r   r   ÚjoinÚIGroup.join¸   r   r   c                 ó   € R# )z
Depart this group.
Nr   r   r   r   ÚleaveÚIGroup.leave½   r   r   r   r>   )r&   r'   r(   r)   r*   r   r?   r4   r   r`   rc   rf   ri   r-   r.   r/   s   @r   r\   r\   �   s@   ø‡ € ññ Ð>Ó?€DÙÐIÓJ€Gòòôò÷
ð r   r\   c                   óH   a € ] tR t^Ãt o RtR tR tR tR tR t	R t
RtV tR	# )
ÚIConversationz(
A conversation with a specific person.
c                ó   € R# )z
@type person: L{IPerson}
Nr   )Úpersonr   s   &&r   r   ÚIConversation.__init__È   r   r   c                 ó   € R# ©z1
doesn't seem like it belongs in this interface.
Nr   r   r   r   ÚshowÚIConversation.showÍ   r   r   c                 ó   € R# ©z
nor this neither.
Nr   r   r   r   r@   ÚIConversation.hideÒ   r   r   c                ó   € R # r>   r   rV   s   &&r   ÚsendTextÚIConversation.sendText×   rC   r   c                ó   € R # r>   r   rV   s   &&r   ÚshowMessageÚIConversation.showMessageÚ   rC   r   c                ó   € R# )zB
@param person: XXX Shouldn't this always be Conversation.person?
Nr   )rn   Únewnicks   &&r   ÚchangedNickÚIConversation.changedNickÝ   r   r   r   N)r&   r'   r(   r)   r*   r   rr   r@   rx   r{   r   r-   r.   r/   s   @r   rl   rl   Ã   s-   ø‡ € ñòò
ò
ò
ò÷ð r   rl   c                   óV   a € ] tR t^ãt o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )ÚIGroupConversationc                 ó   € R# rq   r   r   r   r   rr   ÚIGroupConversation.showä   r   r   c                 ó   € R# ru   r   r   r   r   r@   ÚIGroupConversation.hideé   r   r   c                ó   € R # r>   r   rV   s   &&r   rx   ÚIGroupConversation.sendTextî   rC   r   c                ó   € R # r>   r   )ÚsenderrW   rX   s   &&&r   ÚshowGroupMessageÚ#IGroupConversation.showGroupMessageñ   rC   r   c                ó   € R# )zD
Sets the list of members in the group and displays it to the user.
Nr   )Úmemberss   &r   ÚsetGroupMembersÚ"IGroupConversation.setGroupMembersô   r   r   c                ó   € R# )z†
Displays the topic (from the server) for the group conversation window.

@type topic: string
@type author: string (XXX: Not Person?)
Nr   )ÚtopicÚauthors   &&r   r`   ÚIGroupConversation.setTopicù   r   r   c                ó   € R# )z�
Adds the given member to the list of members in the group conversation
and displays this to the user,

@type member: string (XXX: Not Person?)
Nr   ©Úmembers   &r   ÚmemberJoinedÚIGroupConversation.memberJoined  r   r   c                ó   € R# )z 
Changes the oldnick in the list of members to C{newnick} and displays this
change to the user,

@type oldnick: string (XXX: Not Person?)
@type newnick: string
Nr   ©Úoldnickr~   s   &&r   ÚmemberChangedNickÚ$IGroupConversation.memberChangedNick	  r   r   c                ó   € R# )z›
Deletes the given member from the list of members in the group
conversation and displays the change to the user.

@type member: string (XXX: Not Person?)
Nr   r–   s   &r   Ú
memberLeftÚIGroupConversation.memberLeft  r   r   r   N)r&   r'   r(   r)   rr   r@   rx   r‹   r�   r`   r˜   r�   r    r-   r.   r/   s   @r   r‚   r‚   ã   s7   ø‡ € òò
ò
òòò
òò÷ð r   r‚   c                   óX   a € ] tR tRt o R tR tR tRR ltRR ltR t	R t
R	 tR
tV tR# )ÚIChatUIi  c                ó   € R# )zX
Notifies user that an account has been signed on to.

@type client: L{Client<IClient>}
Nr   ©r+   s   &r   ÚregisterAccountClientÚIChatUI.registerAccountClient  r   r   c                ó   € R# )zf
Notifies user that an account has been signed off or disconnected.

@type client: L{Client<IClient>}
Nr   r¥   s   &r   ÚunregisterAccountClientÚIChatUI.unregisterAccountClient#  r   r   c                 ó   € R# )z
@rtype: L{ContactsList}
Nr   r   r   r   ÚgetContactsListÚIChatUI.getContactsList*  r   r   c                ó   € R# )a  
For the given person object, returns the conversation window
or creates and returns a new conversation window if one does not exist.

@type person: L{Person<IPerson>}
@type Class: L{Conversation<IConversation>} class
@type stayHidden: boolean

@rtype: L{Conversation<IConversation>}
Nr   )rn   ÚClassÚ
stayHiddens   &&&r   ÚgetConversationÚIChatUI.getConversation2  r   r   c                ó   € R# )aM  
For the given group object, returns the group conversation window or
creates and returns a new group conversation window if it doesn't exist.

@type group: L{Group<interfaces.IGroup>}
@type Class: L{Conversation<interfaces.IConversation>} class
@type stayHidden: boolean

@rtype: L{GroupConversation<interfaces.IGroupConversation>}
Nr   )Úgroupr¯   r°   s   &&&r   rA   ÚIChatUI.getGroupConversation>  r   r   c                ó   € R# )z�
Get a Person for a client.

Duplicates L{IAccount.getPerson}.

@type name: string
@type client: L{Client<IClient>}

@rtype: L{Person<IPerson>}
Nr   ©r?   r+   s   &&r   r$   ÚIChatUI.getPersonJ  r   r   c                ó   € R# )zŒ
Get a Group for a client.

Duplicates L{IAccount.getGroup}.

@type name: string
@type client: L{Client<IClient>}

@rtype: L{Group<IGroup>}
Nr   r·   s   &&r   r    ÚIChatUI.getGroupV  r   r   c                ó   € R# )zÆ
For the given person, changes the person's name to newnick, and
tells the contact list and any conversation windows with that person
to change as well.

@type oldnick: string
@type newnick: string
Nr   r›   s   &&r   ÚcontactChangedNickÚIChatUI.contactChangedNickb  r   r   r   NrF   )r&   r'   r(   r)   r¦   r©   r¬   r±   rA   r$   r    r¼   r-   r.   r/   s   @r   r£   r£     s2   ø‡ € òòòô
ô
ò
ò
÷ð r   r£   N)r*   Úzope.interfacer   r   r   r2   rI   r\   rl   r‚   r£   r   r   r   Ú<module>r¿      sj   ðñ
÷ 0ô2ˆyô 2ôjˆiô ô<$ˆiô $ôN1ˆYô 1ôh�Iô ô@5˜ô 5ôpOˆiö Or   