2016-07-28 19:27:14 -04:00
|
|
|
"""
|
2016-07-30 14:06:21 -04:00
|
|
|
This page describes functions that plugins may implement to be called from Profanity on certain events. All functions are optional.
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
::
|
|
|
|
def prof_on_start():
|
|
|
|
prof.cons_show("Profanity has started...")
|
|
|
|
|
|
|
|
def prof_pre_room_message_display(room, nick, message):
|
|
|
|
prof.cons_show("Manipulating chat room message before display...")
|
|
|
|
new_message = message + " (added by plugin)"
|
|
|
|
return new_message
|
|
|
|
|
|
|
|
def prof_on_contact_presence(barejid, resource, presence, status, priority):
|
|
|
|
notify_message = barejid + " is " + presence
|
|
|
|
prof.notify(notify_message, 5, "Presence")
|
2016-07-28 19:27:14 -04:00
|
|
|
"""
|
|
|
|
|
|
|
|
def prof_init(version, status, account_name, fulljid):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a plugin is loaded, either when profanity is started, or when the ``/plugins load`` or ``/plugins install`` commands are called
|
|
|
|
|
|
|
|
:param version: the version of Profanity
|
|
|
|
:param status: the package status of Profanity, ``"development"`` or ``"release"``
|
|
|
|
:param account_name: account name of the currently logged in account, or ``None`` if not logged in
|
|
|
|
:param fulljid: the users full Jabber ID (barejid and resource) if logged in, ``None`` otherwise
|
|
|
|
:type version: str or unicode
|
|
|
|
:type status: str or unicode
|
|
|
|
:type account_name: str, unicode or None
|
|
|
|
:type fulljid: str, unicode or None
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_start():
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when Profanity is started
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_shutdown():
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when the user quits Profanity
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_unload():
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a plugin is unloaded with the ``/plugins unload`` command
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_connect(account_name, fulljid):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when the user connects with an account
|
|
|
|
|
|
|
|
:param account_name: account name of the account used for logging in
|
|
|
|
:param fulljid: the full Jabber ID (barejid and resource) of the account
|
|
|
|
:type account_name: str or unicode
|
|
|
|
:type fulljid: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_disconnect(account_name, fulljid):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when the user disconnects an account
|
|
|
|
|
|
|
|
:param account_name: account name of the account being disconnected
|
|
|
|
:param fulljid: the full Jabber ID (barejid and resource) of the account
|
|
|
|
:type account_name: str or unicode
|
|
|
|
:type fulljid: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 16:37:22 -04:00
|
|
|
def prof_pre_chat_message_display(barejid, resource, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before a chat message is displayed
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the message sender
|
2016-08-10 16:37:22 -04:00
|
|
|
:param resource: resource of the message sender
|
2016-07-30 14:06:21 -04:00
|
|
|
:param message: the received message
|
|
|
|
:type barejid: str or unicode
|
2016-08-10 16:37:22 -04:00
|
|
|
:type resource: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type message: str or unicode
|
|
|
|
:return: the new message to display, or ``None`` to preserve the original message
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 16:37:22 -04:00
|
|
|
def prof_post_chat_message_display(barejid, resource, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called after a chat message is displayed
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the message sender
|
2016-08-10 16:37:22 -04:00
|
|
|
:param resource: resource of the message sender
|
2016-07-30 14:06:21 -04:00
|
|
|
:param message: the received message
|
|
|
|
:type barejid: str or unicode
|
2016-08-10 16:37:22 -04:00
|
|
|
:type resource: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-07-30 14:06:21 -04:00
|
|
|
def prof_pre_chat_message_send(barejid, message):
|
|
|
|
"""Called before a chat message is sent
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the message recipient
|
|
|
|
:param message: the message to be sent
|
|
|
|
:type barejid: str or unicode
|
|
|
|
:type message: str or unicode
|
2017-01-22 13:08:29 -05:00
|
|
|
:return: the modified or original message to send, or ``None`` to cancel sending of the message
|
2016-07-30 14:06:21 -04:00
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-07-30 14:06:21 -04:00
|
|
|
def prof_post_chat_message_send(barejid, message):
|
|
|
|
"""Called after a chat message has been sent
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the message recipient
|
|
|
|
:param message: the sent message
|
|
|
|
:type barejid: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_pre_room_message_display(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before a chat room message is displayed
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of message sender
|
|
|
|
:param message: the received message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
:return: the new message to display, or ``None`` to preserve the original message
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_post_room_message_display(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called after a chat room message is displayed
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of the message sender
|
|
|
|
:param message: the received message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_pre_room_message_send(barejid, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before a chat room message is sent
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param message: the message to be sent
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type message: str or unicode
|
2017-01-22 13:08:29 -05:00
|
|
|
:return: the modified or original message to send, or ``None`` to cancel sending of the message
|
2016-07-30 14:06:21 -04:00
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_post_room_message_send(barejid, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called after a chat room message has been sent
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param message: the sent message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_on_room_history_message(barejid, nick, message, timestamp):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when the server sends a chat room history message
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of the message sender
|
|
|
|
:param message: the message to be sent
|
|
|
|
:param timestamp: time the message was originally sent to the room, in ISO8601 format
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
:type timestamp: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_pre_priv_message_display(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before a private chat room message is displayed
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of message sender
|
|
|
|
:param message: the received message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
:return: the new message to display, or ``None`` to preserve the original message
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_post_priv_message_display(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called after a private chat room message is displayed
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of the message sender
|
|
|
|
:param message: the received message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_pre_priv_message_send(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before a private chat room message is sent
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of message recipient
|
|
|
|
:param message: the message to be sent
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type nick: str or unicode
|
|
|
|
:type message: str or unicode
|
2017-01-22 13:08:29 -05:00
|
|
|
:return: the modified or original message to send, or ``None`` to cancel sending of the message
|
2016-07-30 14:06:21 -04:00
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_post_priv_message_send(barejid, nick, message):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called after a private chat room message has been sent
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
2016-07-30 14:06:21 -04:00
|
|
|
:param nick: nickname of the message recipient
|
|
|
|
:param message: the sent message
|
2016-08-10 15:45:14 -04:00
|
|
|
:type barejid: str or unicode
|
2016-07-30 18:00:45 -04:00
|
|
|
:type nick: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
:type message: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_message_stanza_send(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before an XMPP message stanza is sent
|
|
|
|
|
|
|
|
:param stanza: The stanza to send
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: The new stanza to send, or ``None`` to preserve the original stanza
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_message_stanza_receive(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when an XMPP message stanza is received
|
|
|
|
|
|
|
|
:param stanza: The stanza received
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: ``True`` if Profanity should continue to process the message stanza, ``False`` otherwise
|
|
|
|
:rtype: boolean
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_presence_stanza_send(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before an XMPP presence stanza is sent
|
|
|
|
|
|
|
|
:param stanza: The stanza to send
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: The new stanza to send, or ``None`` to preserve the original stanza
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_presence_stanza_receive(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when an XMPP presence stanza is received
|
|
|
|
|
|
|
|
:param stanza: The stanza received
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: ``True`` if Profanity should continue to process the presence stanza, ``False`` otherwise
|
|
|
|
:rtype: boolean
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_iq_stanza_send(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called before an XMPP iq stanza is sent
|
|
|
|
|
|
|
|
:param stanza: The stanza to send
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: The new stanza to send, or ``None`` to preserve the original stanza
|
|
|
|
:rtype: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_iq_stanza_receive(stanza):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when an XMPP iq stanza is received
|
|
|
|
|
|
|
|
:param stanza: The stanza received
|
|
|
|
:type stanza: str or unicode
|
|
|
|
:return: ``True`` if Profanity should continue to process the iq stanza, ``False`` otherwise
|
|
|
|
:rtype: boolean
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_contact_offline(barejid, resource, status):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a contact goes offline
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the contact
|
|
|
|
:param resource: the resource being disconnected
|
|
|
|
:param status: the status message received with the offline presence, or ``None``
|
|
|
|
:type barejid: str or unicode
|
|
|
|
:type resource: str or unicode
|
|
|
|
:type status: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_contact_presence(barejid, resource, presence, status, priority):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a presence notification is received from a contact
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the contact
|
|
|
|
:param resource: the resource being disconnected
|
|
|
|
:param presence: presence of the contact, one of ``"chat"``, ``"online"``, ``"away"``, ``"xa"`` or ``"dnd"``
|
|
|
|
:param status: the status message received with the presence, or ``None``
|
|
|
|
:param priority: the priority associated with the resource
|
|
|
|
:type barejid: str or unicode
|
|
|
|
:type resource: str or unicode
|
|
|
|
:type presence: str or unicode
|
|
|
|
:type status: str or unicode
|
|
|
|
:type priority: int
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
def prof_on_chat_win_focus(barejid):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a chat window is focussed
|
|
|
|
|
|
|
|
:param barejid: Jabber ID of the chat window recipient
|
|
|
|
:type barejid: str or unicode
|
|
|
|
"""
|
2016-07-28 19:27:14 -04:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
def prof_on_room_win_focus(barejid):
|
2016-07-30 14:06:21 -04:00
|
|
|
"""Called when a chat room window is focussed
|
2016-07-28 19:27:14 -04:00
|
|
|
|
2016-08-10 15:45:14 -04:00
|
|
|
:param barejid: Jabber ID of the room
|
|
|
|
:type barejid: str or unicode
|
2016-07-30 14:06:21 -04:00
|
|
|
"""
|
|
|
|
pass
|