示例#1
0
文件: __init__.py 项目: caimmy/horner
    def quitFromAllTalkRoom(self):
        '''
        从所有聊天室中退出
        '''
        horner_gear_handler = HornerGear().getHandler()
        talk_room_wildcard_label = "%s:%s:*" % (CacheKeys.CHATROOM_KEY, self.company_id)
        _same_company_rooms = horner_gear_handler.keys(talk_room_wildcard_label)
        for _room_id in _same_company_rooms:
            _regular_room_name = ensureString(_room_id).split(':')
            if 3 == len(_regular_room_name):
                _check_room = Chatroom(self.company_id, _regular_room_name[2])
                if _check_room.isLoadSuccess():
                    _check_room.removeRequestUuid(self.sess_id)
                    if (1 == _check_room.cntParticipates()):
                        _check_room.closeRoomNotice(self.application.getLiveRequestHandlerList())

        # 从公司大厅中删除
        self._quitFromHall()
示例#2
0
    def allPaticipatedRoom(company_id, sess_id):
        '''
        列出所有参与进的聊天室
        :param comnay_id:
        :param sess_id:
        :return: list
        '''
        ret_room_id_list = []
        match_key = "%s:%s:*" % (CacheKeys.CHATROOM_KEY, company_id)
        horner_gear_handler = HornerGear().getHandler()
        room_list = horner_gear_handler.keys(match_key)
        for _room_label in room_list:
            _regular_room_name = ensureString(_room_label).split(':')
            if (3 == len(_regular_room_name)):
                _room_key = Chatroom.getRoomKey(company_id, _regular_room_name[2])
                if (horner_gear_handler.sismember(_room_key, sess_id)):
                    ret_room_id_list.append(_regular_room_name[2])

        return ret_room_id_list