Ejemplo n.º 1
0
def query_orcid_one_email(db_id, email):
    email_search_url = ORCID_BASE_URL + 'email:{}'.format(email)
    orcid_data = requests.get(email_search_url, headers={'Accept': 'application/orcid+json'}).json()
    if orcid_data['orcid-search-results']['num-found'] == 1:
        contributor = GatheredContributor.objects.get(id=db_id)

        contributor.id_orcid = orcid_data['orcid-search-results']['orcid-search-result'][0]['orcid-profile']['orcid-identifier']['uri']
        contributor.raw_orcid = orcid_data['orcid-search-results']['orcid-search-result']
        contributor.save()

        if db_id % 1000 == 0:
            logger.info('Last queried person id: {}'.format(db_id))
Ejemplo n.º 2
0
def query_orcid_one_id(db_id, orcid):
    orcid_number = furl.furl(orcid).pathstr[1:]
    orcid_search_url = ORCID_BASE_URL + 'orcid:{}'.format(orcid_number)

    orcid_data = requests.get(orcid_search_url, headers={'Accept': 'application/orcid+json'}).json()
    if orcid_data['orcid-search-results']['num-found'] == 1:
        contributor = GatheredContributor.objects.get(id=db_id)

        email = None
        contact_details = orcid_data['orcid-search-results']['orcid-search-result'][0]['orcid-profile']['orcid-bio'].get('contact-details')
        if contact_details:
            email_list = contact_details['email']
            for email in email_list:
                if email['current']:
                    email = email['value']

        contributor.id_email = email
        contributor.raw_orcid = orcid_data['orcid-search-results']['orcid-search-result']
        contributor.save()

    if db_id % 1000 == 0:
        logger.info('Last queried person id: {}'.format(db_id))