class TWikiChapter(BaseChapter): image_cache = ImageCache() def __init__(self, server, book, chapter_name, html, use_cache=False, cache_dir=None): self.server = server self.book = book self.name = chapter_name self.use_cache = use_cache if cache_dir: self.image_cache = ImageCache(cache_dir) self._loadtree(html) def localise_links(self): """Find image links, convert them to local links, and fetch the images from the net so the local links work""" images = [] def localise(oldlink): fragments = urlsplit(oldlink) if '.' not in fragments.path: log('ignoring %s' % oldlink) return oldlink base, ext = fragments.path.rsplit('.', 1) ext = ext.lower() if (not fragments.scheme.startswith('http') or (fragments.netloc != self.server and 'flossmanuals.net' not in fragments.netloc) or ext not in ('png', 'gif', 'jpg', 'jpeg', 'svg', 'css', 'js') or '/pub/' not in base): log('ignoring %s' % oldlink) return oldlink newlink = self.image_cache.fetch_if_necessary( oldlink, use_cache=self.use_cache) if newlink is not None: images.append(newlink) return newlink log("can't do anything for %s -- why?" % (oldlink, )) return oldlink self.tree.rewrite_links( localise, base_href=('http://%s/bin/view/%s/%s' % (self.server, self.book, self.name))) return images
def __init__(self, server, book, chapter_name, html, use_cache=False, cache_dir=None): self.server = server self.book = book self.name = chapter_name self.use_cache = use_cache if cache_dir: self.image_cache = ImageCache(cache_dir) self._loadtree(html)
class TWikiChapter(BaseChapter): image_cache = ImageCache() def __init__(self, server, book, chapter_name, html, use_cache=False, cache_dir=None): self.server = server self.book = book self.name = chapter_name self.use_cache = use_cache if cache_dir: self.image_cache = ImageCache(cache_dir) self._loadtree(html) def localise_links(self): """Find image links, convert them to local links, and fetch the images from the net so the local links work""" images = [] def localise(oldlink): fragments = urlsplit(oldlink) if '.' not in fragments.path: log('ignoring %s' % oldlink) return oldlink base, ext = fragments.path.rsplit('.', 1) ext = ext.lower() if (not fragments.scheme.startswith('http') or (fragments.netloc != self.server and 'flossmanuals.net' not in fragments.netloc) or ext not in ('png', 'gif', 'jpg', 'jpeg', 'svg', 'css', 'js') or '/pub/' not in base ): log('ignoring %s' % oldlink) return oldlink newlink = self.image_cache.fetch_if_necessary(oldlink, use_cache=self.use_cache) if newlink is not None: images.append(newlink) return newlink log("can't do anything for %s -- why?" % (oldlink,)) return oldlink self.tree.rewrite_links(localise, base_href=('http://%s/bin/view/%s/%s' % (self.server, self.book, self.name))) return images
def __init__(self, lang, book, chapter_name, text, author, email, date, server=None, use_cache=False, cache_dir=None): self.lang = lang self.book = book self.name = chapter_name self.author = Author(author, email) self.date = date if server is None: server = '%s.flossmanuals.net' % lang self.server = server self.use_cache = use_cache if cache_dir: self.image_cache = ImageCache(cache_dir) #XXX is text html-wrapped? self._loadtree(text)