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/>.
22 # hack to avoid recursive loops by cython
23 cdef extern from "libpurple/blist.h":
24 ctypedef struct PurpleBuddy:
27 ctypedef struct PurpleGroup:
30 cdef extern from "libpurple/connection.h":
31 ctypedef struct PurpleConnection:
34 ctypedef struct PurpleConnectionErrorInfo:
37 cdef extern from "libpurple/log.h":
38 ctypedef struct PurpleLog:
41 cdef extern from "libpurple/proxy.h":
42 ctypedef struct PurpleProxyInfo:
45 cdef extern from "libpurple/status.h":
46 ctypedef struct PurpleStatus:
49 ctypedef struct PurpleStatusType:
52 ctypedef struct PurpleStatusPrimitive:
55 ctypedef struct PurplePresence:
58 cdef extern from "libpurple/account.h":
59 ctypedef struct PurpleAccountUiOps
60 ctypedef struct PurpleAccount
62 ctypedef glib.gboolean (*PurpleFilterAccountFunc) (PurpleAccount *account)
63 ctypedef void (*PurpleAccountRequestAuthorizationCb) (void *)
64 ctypedef void (*PurpleAccountRegistrationCb) (PurpleAccount *account, \
65 glib.gboolean succeeded, void *user_data)
66 ctypedef void (*PurpleAccountUnregistrationCb) (PurpleAccount *account, \
67 glib.gboolean succeeded, void *user_data)
69 ctypedef enum PurpleAccountRequestType:
70 PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0
72 ctypedef struct PurpleAccountUiOps:
73 void (*notify_added) (PurpleAccount *account, char *remote_user, \
74 char *id, char *alias, char *message)
75 void (*status_changed) (PurpleAccount *account, PurpleStatus *status)
76 void (*request_add) (PurpleAccount *account, char *remote_user, \
77 char *id, char *alias, char *message)
78 void *(*request_authorize) (PurpleAccount *account, \
79 char *remote_user, char *id, char *alias, \
80 char *message, glib.gboolean on_list, \
81 PurpleAccountRequestAuthorizationCb authorize_cb, \
82 PurpleAccountRequestAuthorizationCb deny_cb, void *user_data)
83 void (*close_account_request) (void *ui_handle)
85 ctypedef struct PurpleAccount:
91 glib.gboolean remember_pass
94 glib.gboolean disconnecting
95 glib.GHashTable *settings
96 glib.GHashTable *ui_settings
97 PurpleProxyInfo *proxy_info
101 PurplePresence *presence
102 PurpleLog *system_log
104 PurpleAccountRegistrationCb registration_cb
105 void *registration_cb_user_data
109 PurpleAccount *purple_account_new(char *username, char *protocol_id)
110 void purple_account_destroy(PurpleAccount *account)
111 void purple_account_connect(PurpleAccount *account)
112 void purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data)
113 void purple_account_register(PurpleAccount *account)
114 void purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data)
115 void purple_account_disconnect(PurpleAccount *account)
116 void purple_account_notify_added(PurpleAccount *account, \
117 char *remote_user, char *id, char *alias, \
119 void purple_account_request_add(PurpleAccount *account, \
120 char *remote_user, char *id, char *alias, \
122 void *purple_account_request_authorization(PurpleAccount *account, \
123 char *remote_user, char *id, char *alias, \
124 char *message, glib.gboolean on_list, \
125 PurpleAccountRequestAuthorizationCb auth_cb, \
126 PurpleAccountRequestAuthorizationCb deny_cb, void *user_data)
127 void purple_account_request_close_with_account(PurpleAccount *account)
128 void purple_account_request_close(void *ui_handle)
129 void purple_account_request_password(PurpleAccount *account, \
130 glib.GCallback ok_cb, glib.GCallback cancel_cb, void *user_data)
131 void purple_account_request_change_password(PurpleAccount *account)
132 void purple_account_request_change_user_info(PurpleAccount *account)
133 void purple_account_set_username(PurpleAccount *account, char *username)
134 void purple_account_set_password(PurpleAccount *account, char *password)
135 void purple_account_set_alias(PurpleAccount *account, char *alias)
136 void purple_account_set_user_info(PurpleAccount *account, char *user_info)
137 void purple_account_set_buddy_icon_path(PurpleAccount *account, char *path)
138 void purple_account_set_protocol_id(PurpleAccount *account, \
140 void purple_account_set_connection(PurpleAccount *account, \
141 PurpleConnection *gc)
142 void purple_account_set_remember_password(PurpleAccount *account, \
144 void purple_account_set_check_mail(PurpleAccount *account, \
146 void purple_account_set_enabled(PurpleAccount *account, \
147 char *ui, glib.gboolean value)
148 void purple_account_set_proxy_info(PurpleAccount *account, \
149 PurpleProxyInfo *info)
150 void purple_account_set_status_types(PurpleAccount *account, \
151 glib.GList *status_types)
152 void purple_account_set_status_list(PurpleAccount *account, \
153 char *status_id, glib.gboolean active, glib.GList *attrs)
154 void purple_account_set_status(PurpleAccount *account, \
155 char *status_id, glib.gboolean active, ...)
156 void purple_account_set_status_list(PurpleAccount *account, \
157 char *status_id, glib.gboolean active, glib.GList *attrs)
158 void purple_account_clear_settings(PurpleAccount *account)
159 void purple_account_set_int(PurpleAccount *account, char *name, \
161 void purple_account_set_string(PurpleAccount *account, char *name, \
163 void purple_account_set_bool(PurpleAccount *account, char *name, \
165 void purple_account_set_ui_int(PurpleAccount *account, char *ui, \
166 char *name, int value)
167 void purple_account_set_ui_string(PurpleAccount *account, char *ui, \
168 char *name, char *value)
169 void purple_account_set_ui_bool(PurpleAccount *account, char *ui, \
170 char *name, glib.gboolean value)
171 glib.gboolean purple_account_is_connected(PurpleAccount *account)
172 glib.gboolean purple_account_is_connecting(PurpleAccount *account)
173 glib.gboolean purple_account_is_disconnected(PurpleAccount *account)
174 char *purple_account_get_username(PurpleAccount *account)
175 char *purple_account_get_password(PurpleAccount *account)
176 char *purple_account_get_alias(PurpleAccount *account)
177 char *purple_account_get_user_info(PurpleAccount *account)
178 char *purple_account_get_buddy_icon_path(PurpleAccount *account)
179 char *purple_account_get_protocol_id(PurpleAccount *account)
180 char *purple_account_get_protocol_name(PurpleAccount *account)
181 PurpleConnection *purple_account_get_connection(PurpleAccount *account)
182 glib.gboolean purple_account_get_remember_password(PurpleAccount *account)
183 glib.gboolean purple_account_get_check_mail(PurpleAccount *account)
184 glib.gboolean purple_account_get_enabled(PurpleAccount *account, char *ui)
185 PurpleProxyInfo *purple_account_get_proxy_info(PurpleAccount *account)
186 PurpleStatus *purple_account_get_active_status(PurpleAccount *account)
187 PurpleStatus *purple_account_get_status(PurpleAccount *account, \
189 PurpleStatusType *purple_account_get_status_type(PurpleAccount *account, \
191 PurpleStatusType *purple_account_get_status_type_with_primitive( \
192 PurpleAccount *account, PurpleStatusPrimitive primitive)
193 PurplePresence *purple_account_get_presence(PurpleAccount *account)
194 glib.gboolean purple_account_is_status_active(PurpleAccount *account, \
196 glib.GList *purple_account_get_status_types(PurpleAccount *account)
197 int purple_account_get_int(PurpleAccount *account, char *name, \
199 char *purple_account_get_string(PurpleAccount *account, \
200 char *name, char *default_value)
201 glib.gboolean purple_account_get_bool(PurpleAccount *account, \
202 char *name, glib.gboolean default_value)
203 int purple_account_get_ui_int(PurpleAccount *account, \
204 char *ui, char *name, int default_value)
205 char *purple_account_get_ui_string(PurpleAccount *account, \
206 char *ui, char *name, char *default_value)
207 glib.gboolean purple_account_get_ui_bool(PurpleAccount *account, \
208 char *ui, char *name, glib.gboolean default_value)
209 PurpleLog *purple_account_get_log(PurpleAccount *account, \
210 glib.gboolean create)
211 void purple_account_destroy_log(PurpleAccount *account)
212 void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy)
213 void purple_account_add_buddies(PurpleAccount *account, \
215 void purple_account_remove_buddy(PurpleAccount *account, \
216 PurpleBuddy *buddy, PurpleGroup *group)
217 void purple_account_remove_buddies(PurpleAccount *account, \
218 glib.GList *buddies, glib.GList *groups)
219 void purple_account_remove_group(PurpleAccount *account, \
221 void purple_account_change_password(PurpleAccount *account, \
222 char *orig_pw, char *new_pw)
223 glib.gboolean purple_account_supports_offline_message( \
224 PurpleAccount *account, PurpleBuddy *buddy)
225 PurpleConnectionErrorInfo *purple_account_get_current_error( \
226 PurpleAccount *account)
227 void purple_account_clear_current_error(PurpleAccount *account)
230 void purple_accounts_add(PurpleAccount *account)
231 void purple_accounts_remove(PurpleAccount *account)
232 void purple_accounts_delete(PurpleAccount *account)
233 void purple_accounts_reorder(PurpleAccount *account, glib.gint new_index)
234 glib.GList *purple_accounts_get_all()
235 glib.GList *purple_accounts_get_all_active()
236 PurpleAccount *purple_accounts_find(char *name, char *protocol)
237 void purple_accounts_restore_current_statuses()
239 # UI Registration Functions
240 void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops)
241 PurpleAccountUiOps *purple_accounts_get_ui_ops()
244 void *purple_accounts_get_handle()
245 void purple_accounts_init()
246 void purple_accounts_uninit()