Skip to content
Snippets Groups Projects
Commit 77f54621 authored by gabriele-h's avatar gabriele-h
Browse files

onbsru: Split regex for pid url

parent e3da1db8
No related branches found
No related tags found
No related merge requests found
...@@ -6,8 +6,6 @@ from . import almasru ...@@ -6,8 +6,6 @@ from . import almasru
class OnbRecordRetriever(almasru.RecordRetriever): class OnbRecordRetriever(almasru.RecordRetriever):
dtl_re = re.compile(r'dtl\/\d*')
pid_re = re.compile(r'\d+')
def __init__(self, def __init__(self,
subdomain: str = 'obv-at-oenb', subdomain: str = 'obv-at-oenb',
...@@ -21,6 +19,9 @@ class OnbRecordRetriever(almasru.RecordRetriever): ...@@ -21,6 +19,9 @@ class OnbRecordRetriever(almasru.RecordRetriever):
'marc': 'http://www.loc.gov/MARC21/slim' 'marc': 'http://www.loc.gov/MARC21/slim'
} }
self.dtl_re = re.compile(r'dtl\/\d*')
self.pid_re = re.compile(r'\d+')
# Create alias for querying AC-numbers # Create alias for querying AC-numbers
def by_ac_num(self, ac_num: str): def by_ac_num(self, ac_num: str):
return self.by_marc_009(ac_num) return self.by_marc_009(ac_num)
...@@ -41,16 +42,12 @@ class OnbRecordRetriever(almasru.RecordRetriever): ...@@ -41,16 +42,12 @@ class OnbRecordRetriever(almasru.RecordRetriever):
for datafield in datafields: for datafield in datafields:
if datafield.attrib == {'tag': '856', 'ind1': '4', 'ind2': '2'}: if datafield.attrib == {'tag': '856', 'ind1': '4', 'ind2': '2'}:
marc_856_u = self._get_subfield(datafield, 'u') marc_856_url = self._get_subfield(datafield, 'u').text
marc_856_url = marc_856_u.text marc_856_note = self._get_subfield(datafield, 'x').text
marc_856_x = self._get_subfield(datafield, 'x')
marc_856_note = marc_856_x.text
if 'ONB-DTL' in marc_856_note: if 'ONB-DTL' in marc_856_note:
dtl_suffix = self.dtl_re.findall(marc_856_url)[0] dtl_suffix = self.dtl_re.findall(marc_856_url)[0]
print(dtl_suffix) pids.append(self.pid_re.findall(dtl_suffix)[-1])
pids.append(self.pid_re.findall(dtl_suffix))
return pids return pids
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment