Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
        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
Ejemplo n.º 5
0
    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')
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)