Implement purple.Buddy()
[python-purple] / buddy.pyx
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 cdef class Buddy:
23     """ Buddy class """
24     cdef blist.PurpleBuddy *c_buddy
25     cdef Account __acc
26
27     def __init__(self):
28         self.c_buddy = NULL
29
30     def new_buddy(self, acc, char *scr, char *alias):
31         self.__acc = acc
32         self.c_buddy = blist.c_purple_buddy_new(<account.PurpleAccount *>\
33                 self.__acc.c_account, scr, alias)
34
35     def __get_alias(self):
36         return <char *>blist.c_purple_buddy_get_alias_only(self.c_buddy)
37     alias = property(__get_alias)
38
39     def __get_name(self):
40         return <char *>blist.c_purple_buddy_get_name(self.c_buddy)
41     name = property(__get_name)
42
43     def __get_online(self):
44         name = self.name
45         self.c_buddy = blist.c_purple_find_buddy(self.__acc.c_account, name)
46         if status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(self.c_buddy)):
47             return True
48         else:
49             return False
50     online = property(__get_online)
51