def discoReceived(self, user, what, node): if 'info' == what: if node is None: ids = [{'category': 'gateway', 'type': 'bitcoin', 'name':LIB_DESCRIPTION}] return {'ids': ids, 'features': [NS_DISCO_INFO, NS_DISCO_ITEMS, NS_REGISTER, NS_VERSION, NS_GATEWAY, NS_LAST]} elif 'users' == node: ids = [{'category': 'directory', 'type': 'user', 'name': _(DISCO, 'user_list')}] return {'ids': ids, 'features': [NS_DISCO_INFO, NS_DISCO_ITEMS]} elif 'items' == what: items = [] if user.isRegistered(): if node is None: items.append({'jid': user.getLocalJID(), 'name': _(DISCO, 'your_addresses'), 'node': 'addresses'}) else: items.append({'jid': self.jid, 'name': LIB_DESCRIPTION}) if user.isAdmin(): if node is None: items.append({'jid': self.jid, 'name': 'Users', 'node': 'users'}) elif 'users' == node: for jid in UserAccount.getAllMembers(): member = UserAccount(JID(jid)) name = member.username items.append({'jid': member.getLocalJID(), 'name': name}) return items