- # def getRecord(self, **kw):
- # """Returns (header, metadata, about) for given record."""
- # slug = self.identifier_to_slug(kw['identifier'])
- # try:
- # book = Book.objects.get(slug=slug)
- # return self.record_for_book(book)
- # except Book.DoesNotExist:
- # book_type = ContentType.objects.get_for_model(Book)
- # try:
- # deleted_book = Deleted.objects.get(content_type=book_type,
- # slug=slug)
- # except:
- # raise error.IdDoesNotExistError("No item for this identifier")
- # return self.record_for_book(deleted_book)
-
- # def validate_kw(self, kw):
- # if 'resumptionToken' in kw:
- # raise error.BadResumptionTokenError("No resumption token support at this point")
- # if 'metadataPrefix' in kw and not self.metadata_registry.hasWriter(kw['metadataPrefix']):
- # raise error.CannotDisseminateFormatError("This format is not supported")
-
- # def identifier_to_slug(self, ident):
- # return ident.split(':')[-1]
-
- # def slug_to_identifier(self, slug):
- # return self.oai_id % slug
-
- # def listIdentifiers(self, **kw):
- # self.validate_kw(kw)
- # records = [self.record_for_book(book, headers_only=True) for
- # book in self.books(None,
- # kw.get('from_', None),
- # kw.get('until', None))]
- # return records, None
-
- # def listRecords(self, **kw):
- # """
- # can get a resumptionToken kw.
- # returns result, token
- # """
- # self.validate_kw(kw)
- # records = [self.record_for_book(book) for
- # book in self.books(None,
- # kw.get('from_', None),
- # kw.get('until', None))]
- #
- # return records, None
-
- # def listMetadataFormats(self, **kw):
- # formats = [
- # ('oai_dc',
- # 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
- # server.NS_OAIDC),
- # ('qdc',
- # 'http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd',
- # NS_DCTERMS)]
- # if 'identifier' in kw:
- # slug = self.identifier_to_slug(kw['identifier'])
- # try:
- # b = Book.objects.get(slug=slug)
- # return formats
- # except:
- # try:
- # d = Deleted.objects.get(slug=slug)
- # return []
- # except:
- # raise error.IdDoesNotExistError("This id does not exist")
- # else:
- # return formats
-
- # def listSets(self, **kw):
- # raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
- # # tags = []
- # # for category in Catalogue.TAG_CATEGORIES:
- # # for tag in Tag.objects.filter(category=category):
- # # tags.append(("%s:%s" % (tag.category, tag.slug),
- # # tag.name,
- # # tag.description))
- # # return tags, None
+ def getRecord(self, **kw):
+ """Returns (header, metadata, about) for given record."""
+ slug = self.identifier_to_slug(kw['identifier'])
+ try:
+ book = Book.objects.get(slug=slug)
+ return self.record_for_book(book)
+ except Book.DoesNotExist:
+ book_type = ContentType.objects.get_for_model(Book)
+ try:
+ deleted_book = Deleted.objects.get(content_type=book_type, slug=slug)
+ except:
+ raise error.IdDoesNotExistError("No item for this identifier")
+ return self.record_for_book(deleted_book)
+
+ def validate_kw(self, kw):
+ if 'resumptionToken' in kw:
+ raise error.BadResumptionTokenError("No resumption token support at this point")
+ if 'metadataPrefix' in kw and not self.metadata_registry.hasWriter(kw['metadataPrefix']):
+ raise error.CannotDisseminateFormatError("This format is not supported")
+
+ def identifier_to_slug(self, ident):
+ return ident.split(':')[-1]
+
+ def slug_to_identifier(self, slug):
+ return self.oai_id % slug
+
+ def listIdentifiers(self, **kw):
+ self.validate_kw(kw)
+ records = [self.record_for_book(book, headers_only=True) for
+ book in self.books(None, kw.get('from_'), kw.get('until'))]
+ return records, None
+
+ def listRecords(self, **kw):
+ """
+ can get a resumptionToken kw.
+ returns result, token
+ """
+ self.validate_kw(kw)
+ records = [self.record_for_book(book) for
+ book in self.books(None,
+ kw.get('from_', None),
+ kw.get('until', None))]
+
+ return records, None
+
+ def listMetadataFormats(self, **kw):
+ formats = [
+ ('oai_dc',
+ 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
+ server.NS_OAIDC),
+ ('qdc',
+ 'http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd',
+ NS_DCTERMS)]
+ if 'identifier' in kw:
+ slug = self.identifier_to_slug(kw['identifier'])
+ try:
+ Book.objects.get(slug=slug)
+ return formats
+ except Book.DoesNotExist:
+ try:
+ Deleted.objects.get(slug=slug)
+ return []
+ except Deleted.DoesNotExist:
+ raise error.IdDoesNotExistError("This id does not exist")
+ else:
+ return formats
+
+ def listSets(self, **kw):
+ raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
+ # tags = []
+ # for category in Catalogue.TAG_CATEGORIES:
+ # for tag in Tag.objects.filter(category=category):
+ # tags.append(("%s:%s" % (tag.category, tag.slug),
+ # tag.name,
+ # tag.description))
+ # return tags, None