+
    Df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VF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JG
 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   