diff --git a/modules/bibformat/lib/elements/bfe_references.py b/modules/bibformat/lib/elements/bfe_references.py index 2fed3ee41..ed24925d4 100755 --- a/modules/bibformat/lib/elements/bfe_references.py +++ b/modules/bibformat/lib/elements/bfe_references.py @@ -1,70 +1,72 @@ # -*- coding: utf-8 -*- """BibFormat element - Prints references""" import re from invenio.messages import gettext_set_language def format(bfo): """ Print host (Order: Name of publisher, place of publication and date of publication). """ _ = gettext_set_language(bfo.lang) output = [] epflid = bfo.field('037__a', escape=2).strip() if epflid: output.append(epflid) doi = bfo.field('0247_a', escape=2).strip() if doi: doi_re = re.compile(r'(10.(\d)+/(\S)+)') if doi_re.search(doi): output.append('doi:%s' % (doi, doi)) # show patent search ? if bfo.field('013__a'): if bfo.lang == 'fr': url = "http://worldwide.espacenet.com/searchResults?compact=false&PN=%s&ST=advanced&locale=fr_EP&DB=EPODOC" % str(bfo.field('013__a', escape=2)) else: url = "http://worldwide.espacenet.com/searchResults?compact=false&PN=%s&ST=advanced&locale=en_EP&DB=EPODOC" % str(bfo.field('013__a', escape=2)) output.append('%s' % (url, _("Search for this record at the European Patent Office"))) external = bfo.fields('035__a') control_nb_re = re.compile(r'(?P[\w:_,.\-_/]+)\s*\((?P[a-z\s]+)\)', re.I) for ext in external: match = control_nb_re.match(ext) if match: extra_id = match.group('id') cataloger = match.group('cataloger') - if cataloger == 'ISI': - url = 'http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:ut/%s' % extra_id - output.append('%s' % (url, _("View record in Web of Science"))) - elif cataloger == 'Scopus': - url = 'http://www.scopus.com/scopus/openurl/link.url?ctx_ver=Z39.88-2004&rfr_id=http://infoscience.epfl.ch&rft_id=info:eid/%s' % extra_id - output.append('%s' % (url, _("View record in Scopus"))) - elif cataloger == 'PMID': - url = 'http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Retrieve&db=PubMed&list_uids=%s&dopt=Abstract' % extra_id - output.append('%s' % (url, _("View record in PubMed"))) - elif cataloger == 'arXiv': - url = 'http://www.arxiv.org/openurl-resolver?rft_id=%s&url_ver=Z39.88-2004' % extra_id - output.append('%s' % (url, _("View record in arXiv"))) - elif cataloger == 'EV': - pass - elif cataloger == 'SzZuIDS NEBIS': - if bfo.lang == 'fr': - url = 'http://library.epfl.ch/nebis-redir/?record=%s' % extra_id - else: - url = 'http://library.epfl.ch/en/nebis-redir/?record=%s' % extra_id - - output.append('%s' % (url, _("Print copy in library catalog"))) + + if extra_id and cataloger: + if cataloger == 'ISI': + url = 'http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:ut/%s' % extra_id + output.append('%s' % (url, _("View record in Web of Science"))) + elif cataloger == 'Scopus': + url = 'http://www.scopus.com/scopus/openurl/link.url?ctx_ver=Z39.88-2004&rfr_id=http://infoscience.epfl.ch&rft_id=info:eid/%s' % extra_id + output.append('%s' % (url, _("View record in Scopus"))) + elif cataloger == 'PMID': + url = 'http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Retrieve&db=PubMed&list_uids=%s&dopt=Abstract' % extra_id + output.append('%s' % (url, _("View record in PubMed"))) + elif cataloger == 'arXiv': + url = 'http://www.arxiv.org/openurl-resolver?rft_id=%s&url_ver=Z39.88-2004' % extra_id + output.append('%s' % (url, _("View record in arXiv"))) + elif cataloger == 'EV': + pass + elif cataloger == 'SzZuIDS NEBIS': + if bfo.lang == 'fr': + url = 'http://library.epfl.ch/nebis-redir/?record=%s' % extra_id + else: + url = 'http://library.epfl.ch/en/nebis-redir/?record=%s' % extra_id + + output.append('%s' % (url, _("Print copy in library catalog"))) return ''.join(['
  • %s
  • ' % elem for elem in output]) def escape_values(bfo): """ Called by BibFormat in order to check if output of this element should be escaped. """ return 0