Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 6 additions & 21 deletions scibot/bookmarklet.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def bookmarklet_wrapper(request, endpoint):

from scibot.extract import process_POST_request, find_rrids as finder
from scibot.check import check_already_submitted
from scibot.services import existing_tags, get_pmid, rrid_resolver_xml
from scibot.services import existing_tags, rrid_resolver_xml
from scibot.submit import annotate_doi_pmid, submit_to_h


Expand All @@ -130,35 +130,20 @@ def inner(text: str) -> Generator:

return inner


"""
def pmid_logic(doi, pmid_from_source, target_uri=None, document=None, h=None, tags=None):
# TODO move the annotation of errors out of this
if doi:
pmid_from_doi = get_pmid(doi)
else:
pmid_from_doi = None

if pmid_from_source and pmid_from_doi:
if pmid_from_source == pmid_from_doi:
pmid = pmid_from_source
else:
# TODO responses -> db
# TODO tag for marking errors explicitly without the dashboard?
r1 = annotate_doi_pmid(target_uri, document, None, pmid_from_doi, h, tags, 'ERROR\nPMID from DOI')
r2 = annotate_doi_pmid(target_uri, document, None, pmid_from_source, h, tags, 'ERROR\nPMID from source')
pmid = None
elif pmid_from_source:
if pmid_from_source:
pmid = pmid_from_source
elif pmid_from_doi:
pmid = pmid_from_doi
else:
pmid = None

return pmid
"""


def rrid_POST(request, h, logloc, URL_LOCK):
(target_uri, document, doi, pmid_from_source,
(target_uri, document, doi, pmid,
head, body, text, cleaned_text) = process_POST_request(request)
running = URL_LOCK.start_uri(target_uri)
log.info(target_uri)
Expand All @@ -168,7 +153,7 @@ def rrid_POST(request, h, logloc, URL_LOCK):

try:
tags, unresolved_exacts = existing_tags(target_uri, h)
pmid = pmid_logic(doi, pmid_from_source, target_uri, document, h, tags)
#pmid = pmid_logic(doi, pmid_from_source, target_uri, document, h, tags)
r = annotate_doi_pmid(target_uri, document, doi, pmid, h, tags) # todo r -> db with responses

# these values are defined up here as shared state that will be
Expand Down
2 changes: 1 addition & 1 deletion scibot/extract.py
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ def idPaper(self):
# scrapeIds(uri)
if doi is not None:
log.info(doi)
pmid = get_pmid(doi)
# pmid = get_pmid(doi)
log.warning('json malformed in get_pmid')
log.info(pmid)
resp = annotate_doi_pmid(url, doi, pmid, rrcu.h_curation, [])
Expand Down
2 changes: 1 addition & 1 deletion scibot/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from scibot.export import bad_tags, get_proper_citation
from scibot.submit import annotate_doi_pmid
from scibot.papers import Papers, SameDOI, SamePMID
from scibot.services import get_pmid
# from scibot.services import get_pmid
from scibot.workflow import parse_workflow
try:
breakpoint
Expand Down
16 changes: 11 additions & 5 deletions scibot/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ def existing_tags(target_uri, h):

# PMIDs

# removed as metabase already handles this codepath
"""
def get_pmid(doi): # TODO
url = f'https://www.ncbi.nlm.nih.gov/pubmed/?term={quote(doi)}[Location ID]&report=uilist&format=text'
body = requests.get(url).text
Expand All @@ -52,18 +54,22 @@ def get_pmid(doi): # TODO
params={'idtype':'auto', 'format':'json', 'ids':doi,}
endpoint = 'https://www.ncbi.nlm.nih.gov/pmc/utils/idconv/v1.0/'
resp = requests.get(endpoint, params=params)
if resp.ok:
pj = resp.json()
else:
resp.raise_for_status()
try:
if resp.ok:
pj = resp.json()
else:
resp.raise_for_status()
except HTTPError:
return

log.debug(pj)
for rec in pj['records']:
try:
return 'PMID:' + rec['pmid']
except KeyError:
pass

"""

# RRIDs

def rrid_resolver_xml(exact, found_rrids):
Expand Down