Updated get parameters inside Account class.
[python-purple] / account.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 from protocol import Protocol
23
24 cdef class Account:
25     """
26     Account class
27     @param username
28     @param protocol_id
29     """
30
31     def __init__(self, username, protocol_id):
32         self.__username = username
33         self.__protocol = Protocol(self, protocol_id)
34
35         if self._get_structure() == NULL:
36             self.__exists = False
37         else:
38             self.__exists = True
39
40     cdef account.PurpleAccount *_get_structure(self):
41         return account.purple_accounts_find(self.username, \
42                 self.protocol_id)
43
44     def __get_exists(self):
45         return self.__exists
46     exists = property(__get_exists)
47
48     def __get_username(self):
49         cdef char *username = NULL
50         if self.__exists:
51             username = <char *> account.purple_account_get_username( \
52                     self._get_structure())
53             if username:
54                 return username
55             else:
56                 return None
57         else:
58             return self.__username
59     username = property(__get_username)
60
61     def __get_protocol_id(self):
62         cdef char *protocol_id = NULL
63         if self.__exists:
64             protocol_id = <char *> account.purple_account_get_protocol_id( \
65                     self._get_structure())
66             if protocol_id:
67                 return protocol_id
68             else:
69                 return None
70         else:
71             return self.protocol_id
72     protocol_id = property(__get_protocol_id)
73
74     def __get_password(self):
75         cdef char *password = NULL
76         if self.__exists:
77             password = <char *> account.purple_account_get_password( \
78                     self._get_structure())
79             if password:
80                 return password
81             else:
82                 return None
83         else:
84             return None
85     password = property(__get_password)
86
87     def __get_alias(self):
88         cdef char *alias = NULL
89         if self.__exists:
90             alias = <char *> account.purple_account_get_alias(self._get_structure())
91             if alias:
92                 return alias
93             else:
94                 return None
95         else:
96             return None
97     alias = property(__get_alias)
98
99     def __get_user_info(self):
100         cdef char *user_info = NULL
101         if self.__exists:
102             user_info = <char *> account.purple_account_get_user_info(self._get_structure())
103             if user_info:
104                 return user_info
105             else:
106                 return None
107         else:
108             return None
109     user_info = property(__get_user_info)
110
111     def __get_remember_password(self):
112         if self.__exists:
113             return account.purple_account_get_remember_password( \
114                     self._get_structure())
115         else:
116             return None
117     remember_password = property(__get_remember_password)
118
119     def set_username(self, username):
120         if self.__exists:
121             account.purple_account_set_username(self._get_structure(), \
122                     username)
123             return True
124         else:
125             return False
126
127     def set_protocol_id(self, protocol_id):
128         if self.__exists:
129             self.__protocol._set_protocol_id(protocol_id)
130             return True
131         else:
132             return False
133
134     def set_password(self, password):
135         if self.__exists:
136             account.purple_account_set_password(self._get_structure(), \
137                     password)
138             return True
139         else:
140             return False
141
142     def set_alias(self, alias):
143         if self.__exists:
144             account.purple_account_set_alias(self._get_structure(), \
145                     alias)
146             return True
147         else:
148             return False
149
150     def set_user_info(self, user_info):
151         if self.__exists:
152             account.purple_account_set_user_info(self._get_structure(), \
153                     user_info)
154             return True
155         else:
156             return False
157
158     def set_remember_password(self, remember_password):
159         if self.__exists:
160             account.purple_account_set_remember_password( \
161                 self._get_structure(), remember_password)
162             return True
163         else:
164             return False
165
166     def new(self):
167         if self.__exists:
168             return False
169         else:
170             account.purple_account_new(self.username, self.protocol_id)
171             self.__exists = True
172             return True