示例#1
0
 def to_json(self):
     j = super().to_json()
     j.update({
         'group_key_id': self.group_key_id,
         'label': my_keys.get_label(self.group_key_id),
         'creator': self.group_creator_idurl,
         'active_broker_id': self.active_broker_id,
     })
     return j
示例#2
0
 def to_json(self):
     return {
         'key_id': self.key_id,
         'alias': self.glob_id['key_alias'],
         'label': my_keys.get_label(self.key_id),
         'creator': self.customer_idurl,
         'state': self.state,
         'suppliers': self.known_suppliers_list,
         'ecc_map': self.known_ecc_map,
     }
 def to_json(self):
     j = super().to_json()
     j.update({
         'key_id':
         self.key_id,
         'alias':
         self.glob_id['key_alias'],
         'label':
         my_keys.get_label(self.key_id),
         'creator':
         self.customer_idurl.to_id(),
         'suppliers':
         [id_url.idurl_to_id(s) for s in self.known_suppliers_list],
         'ecc_map':
         self.known_ecc_map,
     })
     return j
示例#4
0
def build_json_conversation(**record):
    conv = {
        'key_id': '',
        'label': '',
        'state': 'OFFLINE',
        'index': None,
        'id': None,
        'name': None,
        'repr': None,
        'events': None,
    }
    conv.update(record)
    if conv['type'] == 'private_message':
        local_key_id1, _, local_key_id2 = conv['conversation_id'].partition(
            '&')
        try:
            local_key_id1 = int(local_key_id1)
            local_key_id2 = int(local_key_id2)
        except:
            lg.exc()
            return None
        usr1 = my_keys.get_local_key(local_key_id1)
        usr2 = my_keys.get_local_key(local_key_id2)
        if not usr1 or not usr2:
            # lg.warn('%r %r : not found sender or recipient key_id for %r' % (usr1, usr2, conv, ))
            return None
        usr1 = usr1.replace('master$', '')
        usr2 = usr2.replace('master$', '')
        idurl1 = global_id.glob2idurl(usr1, as_field=True)
        idurl2 = global_id.glob2idurl(usr2, as_field=True)
        conv_key_id = None
        conv_label = None
        user_idurl = None
        if (id_url.is_cached(idurl1) and idurl1 == my_id.getIDURL()
            ) or usr1.split('@')[0] == my_id.getIDName():
            user_idurl = idurl2
            conv_key_id = global_id.UrlToGlobalID(idurl2, include_key=True)
            conv_label = conv_key_id.replace('master$', '').split('@')[0]
        if (id_url.is_cached(idurl2) and idurl2 == my_id.getIDURL()
            ) or usr2.split('@')[0] == my_id.getIDName():
            user_idurl = idurl1
            conv_key_id = global_id.UrlToGlobalID(idurl1, include_key=True)
            conv_label = conv_key_id.replace('master$', '').split('@')[0]
        if conv_key_id:
            conv['key_id'] = conv_key_id
        if conv_label:
            conv['label'] = conv_label
        else:
            conv['label'] = conv_key_id
        if user_idurl:
            on_st = online_status.getInstance(user_idurl, autocreate=False)
            if on_st:
                conv.update(on_st.to_json())
    elif conv['type'] == 'group_message' or conv['type'] == 'personal_message':
        local_key_id, _, _ = conv['conversation_id'].partition('&')
        try:
            local_key_id = int(local_key_id)
        except:
            lg.exc()
            return None
        key_id = my_keys.get_local_key(local_key_id)
        if not key_id:
            # lg.warn('key_id was not found for %r' % conv)
            return None
        conv['key_id'] = key_id
        conv['label'] = my_keys.get_label(key_id) or key_id
        gm = group_member.get_active_group_member(key_id)
        if gm:
            conv.update(gm.to_json())
    return conv