X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=account_cbs.pxd;h=06cd2cafd0586be0de017eb7c76244aee63333f4;hb=HEAD;hp=2ca1414f5b42bb8e1feb622834a64d95478b3c38;hpb=2a0862580362384e379dc404be98b8a6619e32d3;p=python-purple diff --git a/account_cbs.pxd b/account_cbs.pxd index 2ca1414..06cd2ca 100644 --- a/account_cbs.pxd +++ b/account_cbs.pxd @@ -17,8 +17,6 @@ # along with this program. If not, see . # -cimport purple - cdef extern from *: ctypedef char const_char "const char" @@ -50,35 +48,93 @@ def call_deny_cb(): c_request_authorize_deny_cb = NULL c_request_authorize_user_data = NULL -cdef void notify_added(account.PurpleAccount *account, \ +cdef void notify_added(account.PurpleAccount *c_account, \ const_char *remote_user, const_char *id, const_char *alias, \ - const_char *message): + const_char *c_message): """ A buddy who is already on this account's buddy list added this account to their buddy list. """ + cdef connection.PurpleConnection *gc = \ + account.purple_account_get_connection(c_account) + debug.purple_debug_info("account", "%s", "notify-added\n") - if account_cbs.has_key("notify-added"): - ( account_cbs["notify-added"])("notify-added: TODO") -cdef void status_changed(account.PurpleAccount *account, \ - status.PurpleStatus *status): + if alias: + remote_alias = alias + else: + remote_alias = None + + if id: + username = id + elif connection.purple_connection_get_display_name(gc) != NULL: + username = connection.purple_connection_get_display_name(gc) + else: + username = account.purple_account_get_username(c_account) + + protocol_id = account.purple_account_get_protocol_id(c_account) + + if c_message: + message = c_message + else: + message = None + + if "notify-added" in account_cbs: + ( account_cbs["notify-added"])( \ + ( remote_user, remote_alias), \ + (username, protocol_id), message) + +cdef void status_changed(account.PurpleAccount *c_account, \ + status.PurpleStatus *c_status): """ This account's status changed. """ debug.purple_debug_info("account", "%s", "status-changed\n") - if account_cbs.has_key("status-changed"): - ( account_cbs["status-changed"])("status-changed: TODO") -cdef void request_add(account.PurpleAccount *account, \ + username = account.purple_account_get_username(c_account) + protocol_id = account.purple_account_get_protocol_id(c_account) + + status_id = status.purple_status_get_id(c_status) + status_name = status.purple_status_get_name(c_status) + + if "status-changed" in account_cbs: + ( account_cbs["status-changed"])( \ + (username, protocol_id), status_id, status_name) + +cdef void request_add(account.PurpleAccount *c_account, \ const_char *remote_user, const_char *id, const_char *alias, \ - const_char *message): + const_char *c_message): """ Someone we don't have on our list added us; prompt to add them. """ + cdef connection.PurpleConnection *gc = \ + account.purple_account_get_connection(c_account) + debug.purple_debug_info("account", "%s", "request-add\n") - if account_cbs.has_key("request-add"): - ( account_cbs["request-add"])("request-add: TODO") + + if alias: + remote_alias = alias + else: + remote_alias = None + + if id: + username = id + elif connection.purple_connection_get_display_name(gc) != NULL: + username = connection.purple_connection_get_display_name(gc) + else: + username = account.purple_account_get_username(c_account) + + protocol_id = account.purple_account_get_protocol_id(c_account) + + if c_message: + message = c_message + else: + message = None + + if "request-add" in account_cbs: + ( account_cbs["request-add"])( \ + ( remote_user, remote_alias), \ + (username, protocol_id), message) cdef void *request_authorize(account.PurpleAccount *c_account, \ const_char *remote_user, const_char *id, const_char *alias, \ @@ -124,12 +180,12 @@ cdef void *request_authorize(account.PurpleAccount *c_account, \ else: message = None - if account_cbs.has_key("request-authorize"): + if "request-authorize" in account_cbs: ( account_cbs["request-authorize"])( \ - ( remote_user, remote_alias), \ - (username, protocol_id), \ - message, on_list, \ - call_authorize_cb, call_deny_cb) + ( remote_user, remote_alias), \ + (username, protocol_id), \ + message, on_list, \ + call_authorize_cb, call_deny_cb) cdef void close_account_request (void *ui_handle): """ @@ -140,5 +196,5 @@ cdef void close_account_request (void *ui_handle): request.purple_request_close(request.PURPLE_REQUEST_ACTION, ui_handle) - if account_cbs.has_key("close-account-request"): + if "close-account-request" in account_cbs: ( account_cbs["close-account-request"])()