Added initial support for new_node, update and remove callbacks from PurpleBlistUiOps.
[python-purple] / signal_cbs.pxd
1 #
2 #  Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
3 #
4 #  This file is part of python-purple.
5 #
6 #  python-purple is free software: you can redistribute it and/or modify
7 #  it under the terms of the GNU General Public License as published by
8 #  the Free Software Foundation, either version 3 of the License, or
9 #  (at your option) any later version.
10 #
11 #  python-purple is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 #  GNU General Public License for more details.
15 #
16 #  You should have received a copy of the GNU General Public License
17 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20 cimport purple
21
22 signal_cbs = {}
23
24 cdef void signal_buddy_signed_off_cb (blist.PurpleBuddy *buddy):
25     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
26                          "buddy_signed_off\n")
27
28     if buddy.server_alias:
29         name = buddy.server_alias
30     else:
31         if buddy.alias:
32             name = buddy.alias
33         else:
34             name = buddy.name
35
36     try:
37         (<object>signal_cbs["buddy_signed_off"])(name, buddy.name)
38     except KeyError:
39         pass
40
41 cdef glib.gboolean signal_receiving_im_msg_cb (account.PurpleAccount *account,
42                                         char **sender,
43                                         char **message,
44                                         conversation.PurpleConversation *conv,
45                                         conversation.PurpleMessageFlags *flags):
46     debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "signal",
47                          "receivinv_im_msg_cb\n")
48
49     cdef blist.PurpleBuddy *buddy = blist.c_purple_find_buddy(account, sender[0])
50
51     if buddy.server_alias:
52         name = buddy.server_alias
53     else:
54         if buddy.alias:
55             name = buddy.alias
56         else:
57             name = buddy.name
58
59     stripped_msg = util.c_purple_markup_strip_html(message[0])
60
61     try:
62         return (<object>signal_cbs["receiving_im_msg"])(sender[0], name, stripped_msg)
63     except KeyError:
64         return False