diff --git a/doc/en/plugins.txt b/doc/en/plugins.txt index b97e46d6..87f09cb7 100644 --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -154,6 +154,17 @@ The handlers for this event are called whenever you say something in a MUC * _message_: Message to be sent. * _tab_: Tab in which the message will be sent. +*muc_say_after*:: +message+, +tab+ + +The handlers for this event are called whenever you say something in a MUC + (through the /say command or by direct input). The difference with muc_say is + just that *muc_say_after* hook is called AFTER the xhtm-im body has been + generated. So you *MUST* not insert any color attribute in the body using this + hook. The hook is less safe that *muc_say* and most of the time you should not + use it at all. The parameters given to the handlers are: + +* _message_: Message to be sent. +* _tab_: Tab in which the message will be sent. + *private_say*:: +message+, +tab+ + The handlers for this event are called whenever you say something in a private conversaton in a MUC (through the /say command or by direct input). The @@ -162,6 +173,20 @@ The handlers for this event are called whenever you say something in a private * _message_: Message to be sent. * _tab_: Tab in which the message will be sent. +*private_say_after*:: +message+, +tab+ + +The handlers for this event are called whenever you say something in a MUC + (through the /say command or by direct input). The difference with private_say + is just that *private_say_after* hook is called AFTER the xhtm-im body has + been generated and the message has been displayed on the conversation, this + means that if you modify the body, the message that will be sent will not be + the same that the one displayed in the text buffer. So you *MUST* not insert + any color attribute in the body using this hook. The hook is less safe that + *private_say* and most of the time you should not use it at all. The + parameters given to the handlers are: + +* _message_: Message to be sent. +* _tab_: Tab in which the message will be sent. + *conversation_say*:: +message+, +tab+ + The handlers for this event are called whenever you say something in direct conversation (through the /say command or by direct input). The parameters @@ -170,6 +195,20 @@ The handlers for this event are called whenever you say something in direct * _message_: Message to be sent. * _tab_: Tab in which the message will be sent. +*conversation_say_after*:: +message+, +tab+ + +The handlers for this event are called whenever you say something in a MUC + (through the /say command or by direct input). The difference with + *conversation_say* is just that *conversation_say_after* hook is called AFTER + the xhtm-im body has been generated and the message has been displayed on the + conversation, this means that if you modify the body, the message that will be + sent will not be the same that the one displayed in the text buffer. So you + *MUST* not insert any color attribute in the body using this hook. The hook is + less safe that *conversation_say* and most of the time you should not use it at + all. The parameters given to the handlers are: + +* _message_: Message to be sent. +* _tab_: Tab in which the message will be sent. + *muc_msg*:: +message+, +tab+ + The handlers for this event are called whenever you receive a message in a MUC. The parameters given to the handler are: diff --git a/src/events.py b/src/events.py index 3a8e4d08..e94acb80 100644 --- a/src/events.py +++ b/src/events.py @@ -22,8 +22,11 @@ class EventHandler(object): self.events = { 'highlight': [], 'muc_say': [], + 'muc_say_after': [], 'conversation_say': [], + 'conversation_say_after': [], 'private_say': [], + 'private_say_after': [], 'conversation_msg': [], 'private_msg': [], 'muc_msg': [], diff --git a/src/tabs.py b/src/tabs.py index 02678e7e..d7f1323b 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -771,6 +771,7 @@ class MucTab(ChatTab): if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: msg['chat_state'] = needed self.cancel_paused_delay() + self.core.events.trigger('muc_say_after', msg, self) msg.send() self.chat_state = needed @@ -1268,6 +1269,7 @@ class PrivateTab(ChatTab): if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: needed = 'inactive' if self.core.status.show in ('xa', 'away') else 'active' msg['chat_state'] = needed + self.core.events.trigger('private_say_after', msg, self) msg.send() self.cancel_paused_delay() self.text_win.refresh() @@ -1958,6 +1960,7 @@ class ConversationTab(ChatTab): if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: needed = 'inactive' if self.core.status.show in ('xa', 'away') else 'active' msg['chat_state'] = needed + self.core.events.trigger('conversation_say_after', msg, self) msg.send() logger.log_message(JID(self.get_name()).bare, self.core.own_nick, line) self.cancel_paused_delay()