cdef void __group_node_cb(blist.PurpleBlistNode *node, object callback):
cdef blist.PurpleGroup *group = <blist.PurpleGroup *>node
- cdef char *name = NULL
+ cdef char *c_name = NULL
- name = <char *> blist.c_purple_group_get_name(group)
- if name == NULL:
- name = ""
+ c_name = <char *> blist.c_purple_group_get_name(group)
+ if c_name == NULL:
+ name = None
+ else:
+ name = c_name
currentsize = blist.c_purple_blist_get_group_size(group, False)
totalsize = blist.c_purple_blist_get_group_size(group, True)
cdef void __contact_node_cb(blist.PurpleBlistNode *node, object callback):
cdef blist.PurpleContact *contact = <blist.PurpleContact *>node
- cdef char *alias = NULL
+ cdef char *c_alias = NULL
- alias = <char *> blist.c_purple_contact_get_alias(contact)
- if alias == NULL:
- alias = ""
+ c_alias = <char *> blist.c_purple_contact_get_alias(contact)
+ if c_alias == NULL:
+ alias = None
+ else:
+ alias = c_alias
try:
callback(node.type, alias, contact.totalsize, contact.currentsize, \
cdef void __buddy_node_cb(blist.PurpleBlistNode *node, object callback):
cdef blist.PurpleBuddy *buddy = <blist.PurpleBuddy *>node
- cdef char *name = NULL
- cdef char *alias = NULL
+ cdef char *c_name = NULL
+ cdef char *c_alias = NULL
- name = <char *> blist.c_purple_buddy_get_name(buddy)
- if name == NULL:
- name = ""
- alias = <char *> blist.c_purple_buddy_get_alias_only(buddy)
- if alias == NULL:
- alias = ""
+ c_name = <char *> blist.c_purple_buddy_get_name(buddy)
+ if c_name == NULL:
+ name = None
+ else:
+ name = c_name
+
+ c_alias = <char *> blist.c_purple_buddy_get_alias_only(buddy)
+ if c_alias == NULL:
+ alias = None
+ else:
+ alias = c_alias
try:
callback(node.type, name, alias)
cdef void __chat_node_cb(blist.PurpleBlistNode *node, object callback):
cdef blist.PurpleChat *chat = <blist.PurpleChat *>node
- cdef char *name = NULL
+ cdef char *c_name = NULL
- name = <char *> blist.c_purple_chat_get_name(chat)
- if name == NULL:
- name = ""
+ c_name = <char *> blist.c_purple_chat_get_name(chat)
+ if c_name == NULL:
+ name = None
+ else:
+ name = c_name
try:
callback(node.type, name)
return status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(self.c_buddy))
online = property(__get_online)
- def new_buddy(self, acc, char *scr, char *alias):
+ def new_buddy(self, acc, name, alias):
self.__acc = acc
+ cdef char *c_name = NULL
+ cdef char *c_alias = NULL
+
+ if name is not None:
+ c_name = name
+
+ if alias is not None:
+ c_alias = alias
+
self.c_buddy = blist.c_purple_buddy_new(<account.PurpleAccount *>\
- self.__acc.c_account, scr, alias)
+ self.__acc.c_account, c_name, c_alias)
cdef void create_conversation (conversation.PurpleConversation *conv):
debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation",
"create_conversation\n")
+ cdef char *c_name = NULL
+
+ c_name = <char *> conversation.c_purple_conversation_get_name(conv)
+ if c_name == NULL:
+ name = None
+ else:
+ name = c_name
+
+ type = conversation.c_purple_conversation_get_type(conv)
+
try:
- (<object>conversation_cbs["create_conversation"])(conv.name, conv.type)
+ (<object>conversation_cbs["create_conversation"])(name, type)
except KeyError:
pass
const_char *message, conversation.PurpleMessageFlags flags,
time_t mtime):
debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "write_im\n")
+ cdef account.PurpleAccount *acc = conversation.c_purple_conversation_get_account(conv)
+ cdef char *c_username = NULL
+
+ c_username = <char *> account.c_purple_account_get_username(acc)
+ if c_username == NULL:
+ username = None
+ else:
+ username = c_username
+
if who:
sender = <char *> who
else:
sender = None
+
try:
- (<object>conversation_cbs["write_im"])(conv.account.username, sender, <char *> message)
+ (<object>conversation_cbs["write_im"])(username, sender, <char *> message)
except KeyError:
pass
void c_purple_conversations_set_ui_ops "purple_conversations_set_ui_ops" (PurpleConversationUiOps *ops)
PurpleConvIm *c_purple_conversation_get_im_data "purple_conversation_get_im_data" (PurpleConversation *conv)
char *c_purple_conversation_get_name "purple_conversation_get_name" (PurpleConversation *conv)
+ PurpleConversationType c_purple_conversation_get_type "purple_conversation_get_type" (PurpleConversation *conv)
account.PurpleAccount *c_purple_conversation_get_account "purple_conversation_get_account" (PurpleConversation *conv)
void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, char *message)
void c_purple_conversation_destroy "purple_conversation_destroy" (PurpleConversation *conv)
if callable(cb):
self.quit_cb = cb
- def _write_im_cb(self, name, who, message):
- if who:
- w = who.split("/")[0]
- self.txt_area.text += w + ": " + str(message) + "<br> "
+ def _write_im_cb(self, sender, alias, message):
+ if alias:
+ self.txt_area.text += alias + ": " + message + "<br> "
else:
- self.txt_area.text += str(name) + ": " + str(message) + "<br> "
+ self.txt_area.text += sender + ": " + message + "<br> "
self._window.show_all()
self.buddies = {} #all buddies
self.conversations = {}
self.protocol_id = "prpl-jabber"
+ self.account = None
self.accs = None
self.window.add_account_cb(self.add_account)
self.window.init_window()
- def _purple_update_blist_cb(self, type, name=None, alias=None, totalsize=None,\
- currentsize=None, online=None):
- if type == 2:
+ def _purple_update_blist_cb(self, type, name=None, alias=None, \
+ totalsize=None, currentsize=None, \
+ online=None):
+ if self.account and name != None and type == 2:
if not self.buddies.has_key(name):
b = purple.Buddy()
b.new_buddy(self.account, name, alias)
elif self.buddies[name].online:
self.window.new_buddy(name)
- def _purple_signal_sign_off_cb(self, name, bname):
- if self.buddies.has_key(bname):
- self.buddies[bname] = None
- self.buddies.pop(bname)
+ def _purple_signal_buddy_signed_off_cb(self, name, alias):
+ if self.buddies.has_key(name):
+ self.buddies[name] = None
+ self.buddies.pop(name)
print "[DEBUG]: Buddy removed!"
- self.window.remove_buddy(bname)
+ self.window.remove_buddy(name)
def _purple_create_conv_cb(self, name, type):
bname = name.split("/")[0]
self.account.set_enabled("carman-purple-python", True)
self.account.password = password
self.p.connect()
- self.p.signal_connect("buddy-signed-off", self._purple_signal_sign_off_cb)
+ self.p.signal_connect("buddy-signed-off", self._purple_signal_buddy_signed_off_cb)
def add_account(self):
username = "carmanplugintest@gmail.com"
signal_cbs = {}
cdef void signal_buddy_signed_off_cb (blist.PurpleBuddy *buddy):
- if buddy.server_alias:
- name = buddy.server_alias
- elif buddy.alias:
- name = buddy.alias
+ cdef char *c_name = NULL
+ cdef char *c_alias = NULL
+
+ c_name = <char *> blist.c_purple_buddy_get_name(buddy)
+ if c_name == NULL:
+ name = None
+ else:
+ name = c_name
+
+ c_alias = <char *> blist.c_purple_buddy_get_alias_only(buddy)
+ if c_alias == NULL:
+ alias = None
else:
- name = buddy.name
+ alias = c_alias
try:
- (<object> signal_cbs["buddy-signed-off"])(name, buddy.name)
+ (<object> signal_cbs["buddy-signed-off"])(name, alias)
except KeyError:
pass
char **sender, char **message, conversation.PurpleConversation *conv,
conversation.PurpleMessageFlags *flags):
cdef blist.PurpleBuddy *buddy = blist.c_purple_find_buddy(account, sender[0])
+ cdef char *c_alias = NULL
- if buddy.server_alias:
- name = buddy.server_alias
- elif buddy.alias:
- name = buddy.alias
+ c_alias = <char *> blist.c_purple_buddy_get_alias_only(buddy)
+ if c_alias == NULL:
+ alias = None
else:
- name = buddy.name
+ alias = c_alias
stripped = util.c_purple_markup_strip_html(message[0])
try:
- return (<object> signal_cbs["receiving-im-msg"])(sender[0], name, stripped)
+ return (<object> signal_cbs["receiving-im-msg"])(sender[0], alias, stripped)
except KeyError:
return False