def aliases(self, aliases, provider_url_template=None, cache_enabled=True): # have reported all of these to mendeley, ie http://support.mendeley.com/customer/en/portal/questions/11307109-wrong-pmid?new=11307109 bad_mendeley_aliases = [ ("pmid", "19016882"), # http://www.mendeley.com/catalog/scientific-workflow-management-kepler-system-1/ ("pmid", "22170219"), #http://www.mendeley.com/catalog/social-network-analysis-animal-behaviour-promising-tool-study-sociality-1/ ("pmid", "20433197") #http://support.mendeley.com/customer/en/portal/questions/11494864-wrong-pmid?new=11494864 ] doc = self._get_doc(aliases) new_aliases = [] if doc: if doc.identifiers: from totalimpactwebapp.aliases import alias_dict_from_tuples aliases_dict = alias_dict_from_tuples(aliases) for namespace in doc.identifiers: if namespace in ["doi", "arxiv", "pmid", "scopus"] and (namespace not in aliases_dict): new_alias = normalize_alias_tuple(namespace, doc.identifiers[namespace]) if new_alias and new_alias not in bad_mendeley_aliases: new_aliases += [new_alias] new_aliases += [("url", doc.link)] new_aliases += [("mendeley_uuid", doc.id)] new_aliases = [alias for alias in new_aliases if alias not in aliases] return new_aliases
def create_products_from_alias_tuples(profile_id, alias_tuples): tiid_alias_mapping = {} clean_aliases = [normalize_alias_tuple(ns, nid) for (ns, nid) in alias_tuples] tiids_to_update = [] new_products = [] for alias_tuple in clean_aliases: new_product = Product(profile_id=profile_id) (ns, nid) = alias_tuple if ns=="biblio": new_product = put_biblio_in_product(new_product, nid, provider_name="bibtex") else: new_product = put_aliases_in_product(new_product, [alias_tuple]) new_product.set_last_refresh_start() new_products += [new_product] tiids_to_update += [new_product.tiid] db.session.add_all(new_products) commit(db) # has to be after commits to database start_product_update(profile_id, tiids_to_update, "high") return new_products