diff --git a/edugain_contacts.py b/edugain_contacts.py index 298d2e8ace0e6d2338122f9efe9e5cadf009b510..545eff574b9860427f0b6f7cd8787ebff5f417fb 100644 --- a/edugain_contacts.py +++ b/edugain_contacts.py @@ -57,21 +57,12 @@ for entity in entities: contact_txt = '"{}" <{}>'.format(name, mail) else: contact_txt = mail - doms = entity.findall('./md:IDPSSODescriptor/md:Extensions/mdui:DiscoHints/mdui:DomainHint', ns) + \ - entity.findall('./md:IDPSSODescriptor/md:Extensions/shibmd:Scope[@regexp="false"]', ns) - doms = {strip_start(dom.text, 'www.') for dom in doms} - if len(doms) == 0: - orgurl = entity.find('./md:Organization/md:OrganizationURL', ns) - if orgurl is None: - continue - baseurl = strip_start(urlparse(orgurl.text).netloc, 'www.') - if ':' in baseurl: - baseurl = baseurl.split(':')[0] - doms = {baseurl} + doms = entity.findall('./md:IDPSSODescriptor/md:Extensions/shibmd:Scope[@regexp="false"]', ns) for domain in doms: - if domain not in seen_doms: - seen_doms.add(domain) - contacts.add('{},{},{}'.format(domain, contact_txt, orgname)) + domain_text = domain.text + if domain_text not in seen_doms: + seen_doms.add(domain_text) + contacts.add('{},{},{}'.format(domain_text, contact_txt, orgname)) for contact in sorted(contacts): print(contact)