def successAddFriend(self, friend, head): newitem = QTreeWidgetItem() newitem.setSizeHint(0, QSize(self.treeWidget.width(), 55)) friendName = friend['name'] friendId = friend['id'] ishide = friend['ishide'] buddy = Buddy(friendName, str(friendId), head, ishide) userdic = { 'user': newitem, 'username': friendName, 'userid': friendId, 'head': head, 'ishide': ishide } for k, v in self.temp.items(): if k == friend['id']: comboxinfo = self.temp.pop(k) break cindex = self.searchgroup(comboxinfo) group = self.grouplist[cindex]['group'] groupname = self.grouplist[cindex]['groupname'] self.grouplist[cindex]['childcount'] += 1 self.userslist.append(userdic) group.addChild(newitem) self.treeWidget.setItemWidget(newitem, 0, buddy) self.treeWidget.setCurrentItem(newitem) user = {'username': friendName, 'userid': friendId, 'ishide': 0} self.groupInfo[groupname].append(user)
def incoming_call(self, prm): call = Call(self.acc, call_id=prm.callId) call_prm = pj.CallOpParam() # Ringing State call_prm.statusCode = pj.PJSIP_SC_RINGING call.answer(call_prm) # Set uri call.uri = call.getInfo().remoteUri iid = call.uri.split(':')[1].split('@')[0] if msg.askquestion('Incoming Call', 'Accept call from ' + iid + ' ?', default=msg.YES): # If not exist current buddy, then create if iid not in self.buddy_list: # Initialize buddy bud = Buddy(self, iid) # Initialize configuration of buddy bud_cfg = pj.BuddyConfig() bud_cfg.uri = 'sip:' + iid + '@' + self.domain # Create buddy bud.cfg = bud_cfg bud.create(self.acc, bud.cfg) bud.subscribePresence(True) # Push into buddy_list self.buddy_list[iid] = bud self.update_buddy(bud) # If not exist current chat dialog, then create if iid not in self.chat_list: self.chat_list[iid] = Chat(self.acc, self.buddy_list[iid], self) # Inform the corresponding chat self.chat_list[iid].receive_call(call) else: call.hangup(call_prm)
def test(): root = tk.Tk() acc = Account(None) bud = Buddy(None, '1002') bud_cfg = pj.BuddyConfig() bud_cfg.uri = 'sip:[email protected]' Chat(acc, bud, root) root.mainloop()
def load_buddies(self): try: self.buddies = [] b = config.get('Room1', 'name') c = config.get('Room1', 'uri') x = config.getint('Room1', 'subscribed') d = Buddy(b, c, None) if x == 1: d.subscribed = True self.buddies.append(d) e = config.get('Room2', 'name') f = config.get('Room2', 'uri') y = config.getint('Room2', 'subscribed') g = Buddy(e, f, None) if y == 1: g.subscribed = True self.buddies.append(g) except Exception, e: return False
def _add_buddy(self, event): iid = self.buddy.get() if iid not in self.buddy_list: # Initialize buddy bud = Buddy(self, iid) # Initialize configuration of buddy bud_cfg = pj.BuddyConfig() bud_cfg.uri = 'sip:' + iid + '@' + self.domain # Create buddy bud.cfg = bud_cfg bud.create(self.acc, bud.cfg) bud.subscribePresence(True) # Push into buddy_list self.buddy_list[iid] = bud self.update_buddy(bud) self.buddy.delete(0, 'end')
def creategroup(self): self.groupInfo = groupInfo = self.client.dealInitGroupInfo() for groupname in groupInfo.keys(): hidernum = 0 group = QTreeWidgetItem(self.treeWidget) groupdic = { 'group': group, 'groupname': groupname, 'childcount': 0, 'childhide': 0 } icon = self.searchIcon(groupname) group.setIcon(0, icon) for friend in groupInfo[groupname]: child = QTreeWidgetItem() child.setSizeHint(0, QSize(self.treeWidget.width(), 55)) friendName = friend['username'] friendId = friend['userid'] ishide = friend['ishide'] head = self.client.dealGetHead(friendId) buddy = Buddy(friendName, str(friendId), head, ishide) userdic = { 'user': child, 'username': friendName, 'userid': friendId, 'head': head, 'ishide': ishide } self.userslist.append(userdic) if friend['ishide'] == 1: hidernum += 1 userdic['ishide'] = 1 group.addChild(child) self.treeWidget.setItemWidget(child, 0, buddy) childnum = group.childCount() lastchildnum = childnum - hidernum groupdic['childcount'] = childnum groupdic['childishide'] = hidernum groupname += ' ' + str(lastchildnum) + '/' + str(childnum) group.setText(0, groupname) group.setExpanded(True) self.grouplist.append(groupdic)
def dealBeAdded(self, widget): reply = QMessageBox.question( self, 'Friend add Prompt', '%s(%s)Add you as a friend' % (widget.name, widget.id), QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) if reply == QMessageBox.No: self.client.dealRefuseAdded(widget.id) else: info = ['my good friend', widget.name] dialog = Add_Dialog(info) for g in self.grouplist: dialog.comboBox.addItem(g['groupname']) dialog.exec_() self.client.dealAcceptAdded(widget.id) newitem = QTreeWidgetItem() newitem.setSizeHint(0, QSize(self.treeWidget.width(), 55)) head = widget.data.split('\n'.encode('utf-8'), 1)[1] buddy = Buddy(info[1], str(widget.id), head, 0) userdic = { 'user': newitem, 'username': info[1], 'userid': widget.id, 'head': head, 'ishide': 0 } cindex = self.searchgroup(info[0]) group = self.grouplist[cindex]['group'] self.grouplist[cindex]['childcount'] += 1 self.userslist.append(userdic) group.addChild(newitem) self.treeWidget.setItemWidget(newitem, 0, buddy) self.treeWidget.setCurrentItem(newitem) user = {'username': info[1], 'userid': widget.id, 'ishide': 0} self.groupInfo[info[0]].append(user)
def add(self, group, items): gindex = self.searchgroup(group) gname = self.grouplist[gindex]['groupname'] for item in items: aindex = self.searchuser(item) ishide = self.userslist[aindex]['ishide'] userid = self.userslist[aindex]['userid'] username = self.userslist[aindex]['username'] head = self.userslist[aindex]['head'] if ishide == 1: self.grouplist[gindex]['childishide'] += 1 self.grouplist[gindex]['childcount'] += 1 else: self.grouplist[gindex]['childcount'] += 1 buddy = Buddy(username, str(userid), head, ishide) group.addChild(item) self.treeWidget.setItemWidget(item, 0, buddy) self.treeWidget.itemWidget(item, 0).show() self.treeWidget.setCurrentItem(item) user = {'username': username, 'userid': userid, 'ishide': 0} self.groupInfo[gname].append(user)