- def _purple_blist_new_cb(self, pointer):
- """ FIXME: Hack! to fill blist on UI """
- buddies = self.account.get_buddies_online()
- for i in buddies:
- if i not in self.buddies:
- self.buddies.append(i)
- self.window.new_buddy(i)
-
- def set_protocol(self, protocol):
- for p in self.p.get_protocols():
- if p.get_name() == protocol:
- self.protocol = p
- return
-
- def connect(self):
- self.set_protocol("XMPP")
- self.account = purple.Account(self.username, self.protocol.get_id())
- self.account.set_password(self.password)
-
- self.account.proxy.set_type(purple.ProxyInfoType().HTTP)
- self.account.proxy.set_host("172.18.216.211")
- self.account.proxy.set_port(8080)
-
- self.account.get_protocol_options()
-
- self.account.set_enabled("carman-purple-python", True)
- self.p.connect()
- self.p.attach_signals(signal_cbs)
+ 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)
+ self.buddies[name] = b
+ elif self.buddies[name].online:
+ self.window.new_buddy(name)
+
+ 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(name)
+
+ def _purple_create_conv_cb(self, name, type):
+ bname = name.split("/")[0]
+ if bname in self.buddies and not self.conversations.has_key(name):
+ conv = purple.Conversation()
+ conv.initialize(self.account, "IM", bname)
+ self.conversations[bname] = conv
+
+ def connect(self, password):
+ username_acc = self.window.selected_accs()
+ if username_acc:
+ self.account = self.p.account_verify(username_acc)
+ self.account.get_protocol_options()
+ 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_buddy_signed_off_cb)
+
+ def add_account(self):
+ username = "carmanplugintest@gmail.com"
+ host = "172.18.216.211"
+ port = 8080
+ self.p.account_add(username, self.protocol_id, host, port)
+ self.accs = self.p.accounts
+ for acc in self.accs.keys():
+ self.window.new_account(acc)
+
+ def send_msg(self, name, msg):
+ if not self.conversations.has_key(name):
+ conv = purple.Conversation()
+ conv.initialize(self.account, "IM", name)
+ self.conversations[name] = conv
+ self.conversations[name].write(msg)