diff --git a/sru/almasru.py b/sru/almasru.py index f089822cd5d2fcdcf6b8b89d3bbdb575be639df8..41d0e17ac3e52c878cc9587687f827a2d3cf35bd 100644 --- a/sru/almasru.py +++ b/sru/almasru.py @@ -72,7 +72,7 @@ class RecordRetriever: } def get_unique(self, alma_query: str) -> Element: - """Return one MARC XML record for a specific query. + """Return one MARC XML record for a query by unique ID. :param alma_query: URI-parameter query for SRU request :return: XML as etree-Element @@ -82,7 +82,7 @@ class RecordRetriever: :raises SruDiagnostics: if SRU returns an error """ - startrecord = 0 + startrecord = 1 sru_url = self._create_url(alma_query, startrecord) sru_xml = self._response_to_xml(sru_url) @@ -95,7 +95,7 @@ class RecordRetriever: return xml_list[0] def get_multiple(self, alma_query: str) -> list: - """Return one MARC XML record for a specific query. + """Return list ofo MARC XML records for a specific query. :param alma_query: URI-parameter query for SRU request :return: XML as list of etree-Elements @@ -104,7 +104,7 @@ class RecordRetriever: :raises SruDiagnostics: if SRU returns an error """ - startrecord = 0 + startrecord = 1 sru_url = self._create_url(alma_query, startrecord) sru_xml = self._response_to_xml(sru_url) @@ -118,17 +118,17 @@ class RecordRetriever: for i in range(num_pages): - startrecord = i*10 + startrecord = (i+1)*10+1 sru_url = self._create_url(alma_query, startrecord) sru_xml = self._response_to_xml(sru_url) - xml_list.append(self._extract_marc_xml(sru_xml)) + xml_list.extend(self._extract_marc_xml(sru_xml)) return xml_list def _create_url(self, alma_query: str, startrecord: int) -> str: self.url_query['startRecord'] = str(startrecord) - self.url_query['maximumRecords'] = '1' + self.url_query['maximumRecords'] = '10' self.url_query['query'] = alma_query url_query_string = parse.urlencode(self.url_query) sru_url = self.url_base + url_query_string