Esempio n. 1
0
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
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
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
Esempio n. 5
0
 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)