def _osi_pages(pub): alt_id = pub.crossref_alternative_id if alt_id: url = u'https://www.sciencedirect.com/science/article/pii/{}'.format(alt_id) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)] else: return []
def _cegh_pages(pub): """ Clinical Epidemiology and Global Health urls can often be guessed from an alternative ID present in Crossref metadata. e.g. S2213398418300927 -> https://www.ceghonline.com/article/S2213-3984(18)30092-7/fulltext """ alt_id = pub.crossref_alternative_id if alt_id and len(alt_id) == 17: url = 'https://www.ceghonline.com/article/{}/fulltext'.format(_format_alt_id(alt_id)) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)] else: return []
def _nnw_pages(pub): # pdf url looks like 10.14311/nnw.2016.26.006 -> http://nnw.cz/doi/2016/NNW.2016.26.006.pdf try: year = pub.id.split('.')[2] suffix = pub.id.split('/')[1].upper() except IndexError: return [] if year and suffix: url = u'http://nnw.cz/doi/{}/{}.pdf'.format( year, suffix ) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)] return []
def _pdj_pages(pub): # pdf url looks like https://www.jstage.jst.go.jp/article/pdj/15/1/15_1_120/_pdf try: volume = int(pub.crossref_api_raw['volume']) issue = int(pub.crossref_api_raw['issue']) page_no = int(pub.crossref_api_raw['page'].split('-')[0]) except (KeyError, ValueError, TypeError): # don't try too hard, give up if anything was missing or looks weird return [] if volume and issue and page_no: url = u'https://www.jstage.jst.go.jp/article/pdj/{}/{}/{}_{}_{}/_pdf'.format( volume, issue, volume, issue, page_no ) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)] return []
def _publisher_page(url, doi): return page.PageDoiMatch(url=url, doi=doi, pmh_id=publisher_equivalent_pmh_id, endpoint_id=publisher_equivalent_endpoint_id)
def _tacs_pages(pub): url = u'https://journals.lww.com/jtrauma/fulltext/{}'.format(pub.id) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)]
def _cjcatal_pages(pub): url = u'http://www.cjcatal.org/EN/{}'.format(pub.id) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)]
def _scichina_pages(pub): url = u'http://engine.scichina.com/doi/{}'.format(pub.id) return [page.PageDoiMatch(url=url, doi=pub.id, pmh_id=publisher_equivalent_pmh_id)]