Initial 'dev' branch commit.
[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_id = Protocol(self, protocol_id)
34
35         if self.__get_structure() == NULL:
36             self.__exists = False
37         else:
38             self.__exists = True
39
40     def __get_username(self):
41         return self.__username
42     username = property(__get_username)
43
44     def __get_protocol_id(self):
45         return self.__protocol_id.protocol_id
46     protocol_id = property(__get_protocol_id)
47
48     def __get_exists(self):
49         return self.__exists
50     exists = property(__get_exists)
51
52     cdef purple.account.PurpleAccount *__get_structure(self):
53         return purple.account.purple_accounts_find(self.username, self.protocol_id)
54
55     def new(self):
56         if self.__exists:
57             return False
58
59         purple.account.purple_account_new(self.username, self.protocol_id)
60         self.__exists = True
61         return True