@@ -11,9 +11,11 @@
1111 More info on api: https://www.ncbi.nlm.nih.gov/books/NBK25501/
1212"""
1313
14+from flask_babel import gettext
1415from lxml import etree
1516from datetime import datetime
16−from searx.url_utils import urlencode, urlopen
17+from searx.url_utils import urlencode
18+from searx.poolrequests import get
1719
1820
1921categories = ['science']
@@ -46,12 +48,7 @@ def response(resp):
4648 pubmed_retrieve_api_url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?'\
4749 + 'db=pubmed&retmode=xml&id={pmids_string}'
4850
49− # handle Python2 vs Python3 management of bytes and strings
50− try:
51− pmids_results = etree.XML(resp.text.encode('utf-8'))
52− except AttributeError:
53− pmids_results = etree.XML(resp.text)
54−
51+ pmids_results = etree.XML(resp.content)
5552 pmids = pmids_results.xpath('//eSearchResult/IdList/Id')
5653 pmids_string = ''
5754
@@ -62,7 +59,7 @@ def response(resp):
6259
6360 retrieve_url_encoded = pubmed_retrieve_api_url.format(**retrieve_notice_args)
6461
65− search_results_xml = urlopen(retrieve_url_encoded).read()
62+ search_results_xml = get(retrieve_url_encoded).content
6663 search_results = etree.XML(search_results_xml).xpath('//PubmedArticleSet/PubmedArticle/MedlineCitation')
6764
6865 for entry in search_results:
@@ -74,12 +71,12 @@ def response(resp):
7471 try:
7572 content = entry.xpath('.//Abstract/AbstractText')[0].text
7673 except:
77− content = 'No abstract is available for this publication.'
74+ content = gettext('No abstract is available for this publication.')
7875
7976 # If a doi is available, add it to the snipppet
8077 try:
8178 doi = entry.xpath('.//ELocationID[@EIdType="doi"]')[0].text
82− content = 'DOI: ' + doi + ' Abstract: ' + content
79+ content = 'DOI: {doi} Abstract: {content}'.format(doi=doi, content=content)
8380 except:
8481 pass
8582