X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/918a554570309fdddb8158b963fef3b3ae3c2c2b..48acd2e1b4ad0a64661091dff97122b2a53e4685:/librarian/__init__.py diff --git a/librarian/__init__.py b/librarian/__init__.py index 52234fe..2e515dd 100644 --- a/librarian/__init__.py +++ b/librarian/__init__.py @@ -74,13 +74,16 @@ class WLURI(object): example = 'http://wolnelektury.pl/katalog/lektura/template/' _re_wl_uri = re.compile('http://wolnelektury.pl/katalog/lektura/' - '(?P[-a-z]+)(/(?P[a-z]{3})/?)?') + '(?P[-a-z0-9]+)(/(?P[a-z]{3}))?/?$') def __init__(self, uri=None): if uri is not None: + uri = unicode(uri) self.uri = uri match = self._re_wl_uri.match(uri) - assert match + if not match: + raise ValueError('Supplied URI (%s) does not match ' + 'the WL document URI template.' % uri) self.slug = match.group('slug') self.language = match.group('lang') or self.DEFAULT_LANGUAGE @@ -89,25 +92,24 @@ class WLURI(object): """Contructs an URI from slug and language code. >>> WLURI.from_slug_and_lang('a-slug', WLURI.DEFAULT_LANGUAGE).uri - 'http://wolnelektury.pl/katalog/lektura/a-slug/' + u'http://wolnelektury.pl/katalog/lektura/a-slug/' >>> WLURI.from_slug_and_lang('a-slug', 'deu').uri - 'http://wolnelektury.pl/katalog/lektura/a-slug/deu/' + u'http://wolnelektury.pl/katalog/lektura/a-slug/deu/' """ if lang is None: - lang = self.DEFAULT_LANGUAGE + lang = cls.DEFAULT_LANGUAGE uri = 'http://wolnelektury.pl/katalog/lektura/%s/' % slug if lang is not None and lang != cls.DEFAULT_LANGUAGE: uri += lang + '/' - instance = cls() - instance.slug = slug - instance.language = lang - instance.uri = uri - return instance + return cls(uri) def __unicode__(self): return self.uri + def __str__(self): + return self.uri + def __eq__(self, other): return self.slug, self.language == other.slug, other.language @@ -148,7 +150,6 @@ class DirDocProvider(DocProvider): def __init__(self, dir_): self.dir = dir_ self.files = {} - return super(DirDocProvider, self).__init__() def by_slug_and_lang(self, slug, lang=None): fname = WLURI.from_slug_and_lang(slug, lang).filename_stem() + '.xml'