Skip to content

Commit 29e544c

Browse files
committed
Merge branch 'hotfix/2.4.4'
2 parents 188c82b + 26d2826 commit 29e544c

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

share/harvest/harvester.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ def __init__(self, app_config):
6161
self.config = app_config
6262
self.rate_limit = getattr(self.config, 'rate_limit', self.rate_limit)
6363
self.allowance = self.rate_limit[0]
64-
self.requests = RateLimittedProxy(requests, *self.rate_limit)
64+
# TODO Add custom user agent
65+
self.requests = RateLimittedProxy(requests.Session(), *self.rate_limit)
6566

6667
@cached_property
6768
def source(self):

share/harvest/oai.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
logger = logging.getLogger(__name__)
1212

1313

14+
class OAIHarvestException(Exception):
15+
pass
16+
17+
1418
class OAIHarvester(Harvester, metaclass=abc.ABCMeta):
1519

1620
metadata_prefix = 'oai_dc'
@@ -84,6 +88,10 @@ def fetch_page(self, url: furl, token: str=None) -> (list, str):
8488

8589
parsed = etree.fromstring(resp.content, parser=etree.XMLParser(recover=True))
8690

91+
error = parsed.xpath('//ns0:error', namespaces=self.namespaces)
92+
if error:
93+
raise OAIHarvestException(error[0].get('code'), error[0].text)
94+
8795
records = parsed.xpath('//ns0:record', namespaces=self.namespaces)
8896
token = (parsed.xpath('//ns0:resumptionToken/node()', namespaces=self.namespaces) + [None])[0]
8997

0 commit comments

Comments
 (0)