#
# Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
#
# This file is part of python-purple.
#
# python-purple is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# python-purple is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
cimport purple
cdef extern from *:
ctypedef char const_char "const char"
account_cbs = {}
cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_authorize_cb = NULL
cdef account.PurpleAccountRequestAuthorizationCb c_request_authorize_deny_cb = NULL
cdef void *c_request_authorize_user_data = NULL
def call_authorize_cb():
global c_request_authorize_authorize_cb
global c_request_authorize_deny_cb
global c_request_authorize_user_data
if c_request_authorize_authorize_cb:
c_request_authorize_authorize_cb(c_request_authorize_user_data)
c_request_authorize_authorize_cb = NULL
c_request_authorize_deny_cb = NULL
c_request_authorize_user_data = NULL
def call_deny_cb():
global c_request_authorize_authorize_cb
global c_request_authorize_deny_cb
global c_request_authorize_user_data
if c_request_authorize_deny_cb:
c_request_authorize_deny_cb(c_request_authorize_user_data)
c_request_authorize_authorize_cb = NULL
c_request_authorize_deny_cb = NULL
c_request_authorize_user_data = NULL
cdef void notify_added(account.PurpleAccount *c_account, \
const_char *remote_user, const_char *id, const_char *alias, \
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 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 account_cbs.has_key("notify-added"):
(