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))
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))