comparison libervia/backend/plugins/plugin_misc_identity.py @ 4287:ff88a807852d

plugin identity: disco identity is now added in identity metadata: rel 447
author Goffi <goffi@goffi.org>
date Mon, 29 Jul 2024 03:30:53 +0200
parents 0d7bb4df2343
children
comparison
equal deleted inserted replaced
4286:96fdf4891747 4287:ff88a807852d
731 metadata in this filter 731 metadata in this filter
732 @param use_cache: if False, cache won't be checked 732 @param use_cache: if False, cache won't be checked
733 should be True most of time, to avoid useless network requests 733 should be True most of time, to avoid useless network requests
734 @return: identity data 734 @return: identity data
735 """ 735 """
736 id_data = {} 736 identities = []
737 id_data = {"identities": identities}
737 738
738 if not metadata_filter: 739 if not metadata_filter:
739 metadata_names = self.metadata.keys() 740 metadata_names = self.metadata.keys()
740 else: 741 else:
741 metadata_names = metadata_filter 742 metadata_names = metadata_filter
742 743
743 for metadata_name in metadata_names: 744 for metadata_name in metadata_names:
744 id_data[metadata_name] = await self.get( 745 id_data[metadata_name] = await self.get(
745 client, metadata_name, entity, use_cache 746 client, metadata_name, entity, use_cache
746 ) 747 )
748
749 if entity is not None:
750 try:
751 disco_infos = await self.host.memory.disco.get_infos(client, entity)
752 except Exception as e:
753 log.exception(f"Can't get disco infos for {entity}.")
754 else:
755 for (category, type_), name in disco_infos.identities.items():
756 identities.append({"category": category, "type": type_, "name": name})
747 757
748 return id_data 758 return id_data
749 759
750 def _get_identities(self, entities_s, metadata_filter, profile): 760 def _get_identities(self, entities_s, metadata_filter, profile):
751 entities = [jid.JID(e) for e in entities_s] 761 entities = [jid.JID(e) for e in entities_s]