Fix compilation error using python2.7
[python-purple] / account_cbs.pxd
index 2ca1414..06cd2ca 100644 (file)
@@ -17,8 +17,6 @@
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-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"):
-        (<object> account_cbs["notify-added"])("notify-added: TODO")
 
-cdef void status_changed(account.PurpleAccount *account, \
-        status.PurpleStatus *status):
+    if alias:
+        remote_alias = <char *> alias
+    else:
+        remote_alias = None
+
+    if id:
+        username = <char *> 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 = <char *> c_message
+    else:
+        message = None
+
+    if "notify-added" in account_cbs:
+        (<object> account_cbs["notify-added"])( \
+            (<char *> 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"):
-        (<object> 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:
+        (<object> 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"):
-        (<object> account_cbs["request-add"])("request-add: TODO")
+
+    if alias:
+        remote_alias = <char *> alias
+    else:
+        remote_alias = None
+
+    if id:
+        username = <char *> 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 = <char *> c_message
+    else:
+        message = None
+
+    if "request-add" in account_cbs:
+        (<object> account_cbs["request-add"])( \
+            (<char *> 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:
         (<object> account_cbs["request-authorize"])( \
-                (<char *> remote_user, remote_alias), \
-                (username, protocol_id), \
-                message, on_list, \
-                call_authorize_cb, call_deny_cb)
+            (<char *> 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:
         (<object> account_cbs["close-account-request"])()