"""Represents a WL URI. Extracts slug from it."""
slug = None
- example = 'http://edukacjamedialna.edu.pl/'
- _re_wl_uri = re.compile(r'http://(www\.)?edukacjamedialna.edu.pl/'
+ example = 'http://edukacjamedialna.edu.pl/lekcje/template'
+ _re_wl_uri = re.compile(r'http://(www\.)?edukacjamedialna.edu.pl/lekcje/'
'(?P<slug>[-a-z0-9]+)/?$')
def __init__(self, uri):
"""Contructs an URI from slug.
>>> WLURI.from_slug('a-slug').uri
- u'http://wolnelektury.pl/katalog/lektura/a-slug/'
+ u'http://edukacjamedialna.edu.pl/lekcje/a-slug/'
"""
- uri = 'http://prawokultury.pl/publikacje/%s/' % slug
+ uri = 'http://edukacjamedialna.edu.pl/lekcje/%s/' % slug
return cls(uri)
def __unicode__(self):
def __str__(self):
return self.uri
+ def canonical(self):
+ return type(self).from_slug(self.slug)
+
def __eq__(self, other):
return self.slug == other.slug
"""
def by_slug(self, slug):
- """Should return a file-like object with a WL document XML."""
+ """Should return an IOFile 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."""
+ """Should return an IOFile object with a WL document XML."""
wluri = wluri(uri)
return self.by_slug(wluri.slug)
def by_slug(self, slug):
fname = slug + '.xml'
- return open(os.path.join(self.dir, fname))
+ return IOFile.from_filename(os.path.join(self.dir, fname))
import lxml.etree as etree