2 # Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
4 # This file is part of python-purple.
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.
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.
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/>.
33 def __init__(self, name, account):
35 self.__account = account
37 if self._get_structure() != NULL:
42 cdef blist.PurpleBuddy *_get_structure(self):
43 return blist.purple_find_buddy(account.purple_accounts_find( \
44 self.__account.username, self.__account.protocol.id), \
49 return <char *> blist.purple_buddy_get_name(self._get_structure())
52 name = property(__get_name)
54 def __get_account(self):
59 account = property(__get_account)
61 def __get_alias(self):
62 cdef char *c_alias = NULL
63 c_alias = <char *> blist.purple_buddy_get_alias_only( \
64 self._get_structure())
69 alias = property(__get_alias)
71 def __get_server_alias(self):
72 cdef char *c_server_alias = NULL
73 c_server_alias = <char *> blist.purple_buddy_get_server_alias( \
74 self._get_structure())
79 server_alias = property(__get_server_alias)
81 def __get_contact_alias(self):
82 cdef char *c_contact_alias = NULL
83 c_contact_alias = <char *> blist.purple_buddy_get_contact_alias( \
84 self._get_structure())
86 return c_contact_alias
89 contact_alias = property(__get_contact_alias)
91 def __get_local_alias(self):
92 cdef char *c_local_alias = NULL
93 c_local_alias = <char *> blist.purple_buddy_get_local_alias( \
94 self._get_structure())
99 local_alias = property(__get_local_alias)
101 def __get_available(self):
103 return status.purple_presence_is_available( \
104 blist.purple_buddy_get_presence(self._get_structure()))
107 available = property(__get_available)
109 def __get_online(self):
111 return status.purple_presence_is_online( \
112 blist.purple_buddy_get_presence(self._get_structure()))
115 online = property(__get_online)
117 def __get_idle(self):
119 return status.purple_presence_is_idle( \
120 blist.purple_buddy_get_presence(self._get_structure()))
123 idle = property(__get_idle)
125 def new(self, alias=None):
129 @param alias (optional)
130 @return True if successful, False if buddy already exists
132 cdef char *c_alias = NULL
142 blist.purple_buddy_new(account.purple_accounts_find( \
143 self.__account.username, self.__account.protocol.id), \
144 self.__name, c_alias)