X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/721dffe62ca6a37e6b496907af4eb007d59bff1c..1f9c252b0da609f7dff02ab74b60f39f57dd2e3d:/src/librarian/__init__.py diff --git a/src/librarian/__init__.py b/src/librarian/__init__.py index 95ea3fe..68afe74 100644 --- a/src/librarian/__init__.py +++ b/src/librarian/__init__.py @@ -86,46 +86,6 @@ PLMETNS = XMLNamespace("http://dl.psnc.pl/schemas/plmet/") WLNS = EmptyNamespace() -@six.python_2_unicode_compatible -class WLURI(object): - """Represents a WL URI. Extracts slug from it.""" - slug = None - - example = 'http://wolnelektury.pl/katalog/lektura/template/' - _re_wl_uri = re.compile( - r'http://(www\.)?wolnelektury.pl/katalog/lektur[ay]/' - '(?P[-a-z0-9]+)/?$' - ) - - def __init__(self, uri): - uri = six.text_type(uri) - self.uri = uri - self.slug = uri.rstrip('/').rsplit('/', 1)[-1] - - @classmethod - def strict(cls, uri): - match = cls._re_wl_uri.match(uri) - if not match: - raise ValidationError(u'Invalid URI (%s). Should match: %s' % ( - uri, cls._re_wl_uri.pattern)) - return cls(uri) - - @classmethod - def from_slug(cls, slug): - """Contructs an URI from slug. - - >>> print(WLURI.from_slug('a-slug').uri) - http://wolnelektury.pl/katalog/lektura/a-slug/ - - """ - uri = 'http://wolnelektury.pl/katalog/lektura/%s/' % slug - return cls(uri) - - def __str__(self): - return self.uri - - def __eq__(self, other): - return self.slug == other.slug class DocProvider(object): @@ -138,11 +98,6 @@ class DocProvider(object): """Should return a file-like object with a WL document XML.""" raise NotImplementedError - def by_uri(self, uri, wluri=WLURI): - """Should return a file-like object with a WL document XML.""" - wluri = wluri(uri) - return self.by_slug(wluri.slug) - class DirDocProvider(DocProvider): """ Serve docs from a directory of files in form .xml """ @@ -157,6 +112,7 @@ class DirDocProvider(DocProvider): from . import dcparser +from .meta.types.wluri import WLURI DEFAULT_BOOKINFO = dcparser.BookInfo(