ó
    ×›‘hË!  ã                   ó²   • S r SSKJrJr   " S S\5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r	 " S S\5      r
g)z
Pan-protocol chat client.
é    )Ú	AttributeÚ	Interfacec                   ó\   • \ rS rSrSr\" S5      r\" S5      rS rS r	S r
S rS	 rS
 rSrg)ÚIAccounté   z3
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                 ó   • g)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         Ú_C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/words/im/interfaces.pyÚ__init__ÚIAccount.__init__   ó   � ó    c                  ó   • g)z
Am I online?

@rtype: boolean
Nr	   r	   r   r   ÚisOnlineÚIAccount.isOnline*   r   r   c                 ó   • g)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                  ó   • g)z
Sign off.
Nr	   r	   r   r   ÚlogOffÚIAccount.logOff:   r   r   c                 ó   • g)z
@rtype: L{Group<IGroup>}
Nr	   ©Ú	groupNames    r   ÚgetGroupÚIAccount.getGroup?   r   r   c                 ó   • g)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__r	   r   r   r   r      s?   † ññ ÐUÓV€FÙØEó€Kò	òòòò
õ
r   r   c                   óF   • \ rS rSr\" S5      rS rS rS rS
S jr	S r
Srg	)ÚIClientéJ   z!The L{IAccount} I am a Client forc                 ó   • g)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                 ó   • g)zJ
@param groupName: The name of the group to join.
@type groupName: string
Nr	   r    s    r   Ú	joinGroupÚIClient.joinGroupU   r   r   c                 ó   • g)zK
@param groupName: The name of the group to leave.
@type groupName: string
Nr	   r    s    r   Ú
leaveGroupÚIClient.leaveGroup[   r   r   c                 ó   • g ©Nr	   )ÚnameÚhides     r   ÚgetGroupConversationÚIClient.getGroupConversationa   ó   € Ør   c                 ó   • g r>   r	   )r?   s    r   r&   ÚIClient.getPersond   rC   r   r	   N©r   )r(   r)   r*   r+   r   r4   r   r8   r;   rA   r&   r/   r	   r   r   r1   r1   J   s&   † ÙÐ;Ó<€Gòòòôõr   r1   c                   ó6   • \ rS rSrS rS rS rS rS	S jrSr	g)
ÚIPersonéh   c                 ó   • g)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                  ó   • g)z)
Am I online right now?

@rtype: boolean
Nr	   r	   r   r   r   ÚIPerson.isOnlines   r   r   c                  ó   • g)z;
What is my on-line status?

@return: L{locals.StatusEnum}
Nr	   r	   r   r   Ú	getStatusÚIPerson.getStatusz   r   r   c                  ó   • g)z+
@rtype: string (XXX: How about a scalar?)
Nr	   r	   r   r   ÚgetIdleTimeÚIPerson.getIdleTime�   r   r   Nc                 ó   • g)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   r   rH   rH   h   s   † òòòò÷
r   rH   c                   óZ   • \ rS rSrSr\" S5      r\" S5      rS rS r	SS jr
S	 rS
 rSrg)ÚIGroupé�   zŽ
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                 ó   • g)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                 ó   • g)z:
Set this Groups topic on the server.

@type text: string
Nr	   )rW   s    r   ÚsetTopicÚIGroup.setTopic¤   r   r   Nc                 ó   • g)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                  ó   • g)z
Join this group.
Nr	   r	   r   r   ÚjoinÚIGroup.join¸   r   r   c                  ó   • g)z
Depart this group.
Nr	   r	   r   r   ÚleaveÚIGroup.leave½   r   r   r	   r>   )r(   r)   r*   r+   r,   r   r?   r4   r   ra   rd   rg   rj   r/   r	   r   r   r\   r\   �   s8   † ññ Ð>Ó?€DÙÐIÓJ€Gòòôòõ
r   r\   c                   ó<   • \ rS rSrSrS rS rS rS rS r	S r
S	rg
)ÚIConversationéÃ   z(
A conversation with a specific person.
c                 ó   • g)z
@type person: L{IPerson}
Nr	   )Úpersonr   s     r   r   ÚIConversation.__init__È   r   r   c                  ó   • g©z1
doesn't seem like it belongs in this interface.
Nr	   r	   r   r   ÚshowÚIConversation.showÍ   r   r   c                  ó   • g©z
nor this neither.
Nr	   r	   r   r   r@   ÚIConversation.hideÒ   r   r   c                 ó   • g r>   r	   rV   s     r   ÚsendTextÚIConversation.sendText×   rC   r   c                 ó   • g r>   r	   rV   s     r   ÚshowMessageÚIConversation.showMessageÚ   rC   r   c                 ó   • g)zB
@param person: XXX Shouldn't this always be Conversation.person?
Nr	   )rp   Únewnicks     r   ÚchangedNickÚIConversation.changedNickÝ   r   r   r	   N)r(   r)   r*   r+   r,   r   rt   r@   rz   r}   r�   r/   r	   r   r   rm   rm   Ã   s%   † ñòò
ò
ò
òõr   rm   c                   óJ   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)ÚIGroupConversationéã   c                  ó   • grs   r	   r	   r   r   rt   ÚIGroupConversation.showä   r   r   c                  ó   • grw   r	   r	   r   r   r@   ÚIGroupConversation.hideé   r   r   c                 ó   • g r>   r	   rV   s     r   rz   ÚIGroupConversation.sendTextî   rC   r   c                 ó   • g r>   r	   )ÚsenderrW   rX   s      r   ÚshowGroupMessageÚ#IGroupConversation.showGroupMessageñ   rC   r   c                 ó   • g)zD
Sets the list of members in the group and displays it to the user.
Nr	   )Úmemberss    r   ÚsetGroupMembersÚ"IGroupConversation.setGroupMembersô   r   r   c                 ó   • g)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   ra   ÚIGroupConversation.setTopicù   r   r   c                 ó   • g)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                 ó   • g)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                 ó   • g)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+   rt   r@   rz   rŽ   r’   ra   r›   r    r£   r/   r	   r   r   r„   r„   ã   s/   † òò
ò
òòò
òòõr   r„   c                   óL   • \ rS rSrS rS rS rSS jrSS jrS r	S r
S	 rS
rg)ÚIChatUIi  c                 ó   • g)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                 ó   • g)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                  ó   • g)z
@rtype: L{ContactsList}
Nr	   r	   r   r   ÚgetContactsListÚIChatUI.getContactsList*  r   r   c                 ó   • g)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	   )rp   ÚClassÚ
stayHiddens      r   ÚgetConversationÚIChatUI.getConversation2  r   r   c                 ó   • g)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                 ó   • g)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                 ó   • g)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                 ó   • g)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   r   r¦   r¦     s*   † òòòô
ô
ò
ò
õr   r¦   N)r,   Úzope.interfacer   r   r   r1   rH   r\   rm   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   