예제 #1
0
    def _add_theme_assets(self, book):
        """Copy all the assets from the theme to the sandbox directory.

        :Args:
          - book: EPUB book object
        """

        assets = read_theme_assets(self.theme_name, self.name)

        def _write(name, content):
            try:
                os.makedirs('{}/assets/'.format(self.sandbox_path))
            except:
                pass

            if os.path.normpath('{}/assets/{}'.format(
                    self.sandbox_path, name)).startswith(self.sandbox_path):
                try:
                    f = open('{}/assets/{}'.format(self.sandbox_path, name),
                             'wb')
                    f.write(content)
                    f.close()
                except IOError:
                    pass

        for asset_type, asset_list in assets.iteritems():
            if asset_type == 'images':
                for image_name in asset_list:
                    name = os.path.basename(image_name)
                    content = read_theme_asset_content(self.theme_name,
                                                       image_name)

                    _write(name, content)
            elif asset_type == 'fonts':
                for font_name in asset_list:
                    name = os.path.basename(font_name)
                    content = read_theme_asset_content(self.theme_name,
                                                       font_name)

                    _write(name, content)
예제 #2
0
    def _add_theme_assets(self, epub_book):
        import uuid
        assets = read_theme_assets(self.theme_name, self.name)

        for asset_type, asset_list in assets.iteritems():
            if asset_type == 'images':
                for image_name in asset_list:
                    name = os.path.basename(image_name)
                    content = read_theme_asset_content(self.theme_name,
                                                       image_name)

                    if content:
                        image = ebooklib.epub.EpubImage()
                        image.file_name = "{}/{}".format(IMAGES_DIR, name)
                        image.id = 'theme_image_%s' % uuid.uuid4().hex[:5]
                        image.set_content(content)

                        epub_book.add_item(image)
            elif asset_type == 'fonts':
                for font_name in asset_list:
                    name = os.path.basename(font_name)
                    extension = os.path.splitext(font_name)[-1].lower()
                    content = read_theme_asset_content(self.theme_name,
                                                       font_name)

                    if content:
                        font = ebooklib.epub.EpubItem()
                        font.file_name = "{}/{}".format(FONTS_DIR, name)
                        font.set_content(content)

                        # try to set the right font media type
                        # http://www.idpf.org/epub/301/spec/epub-publications.html#sec-core-media-types
                        if extension in self.OPENTYPE_FONTS:
                            font.media_type = 'application/vnd.ms-opentype'
                        elif extension in self.WOFF_FONTS:
                            font.media_type = 'application/font-woff'

                        epub_book.add_item(font)
예제 #3
0
    def _add_theme_assets(self, book):
        """Copy all the assets from the theme to the sandbox directory.

        :Args:
          - book: EPUB book object
        """

        assets = read_theme_assets(self.theme_name, self.name)

        def _write(name, content):
            try:
                os.makedirs('{}/assets/'.format(self.sandbox_path))
            except:
                pass

            if os.path.normpath('{}/assets/{}'.format(self.sandbox_path, name)).startswith(self.sandbox_path):
                try:
                    f = open('{}/assets/{}'.format(self.sandbox_path, name), 'wb')
                    f.write(content)
                    f.close()
                except IOError:
                    pass

        for asset_type, asset_list in assets.iteritems():
            if asset_type == 'images':
                for image_name in asset_list:
                    name = os.path.basename(image_name)
                    content = read_theme_asset_content(self.theme_name, image_name)

                    _write(name, content)
            elif asset_type == 'fonts':
                for font_name in asset_list:
                    name = os.path.basename(font_name)
                    content = read_theme_asset_content(self.theme_name, font_name)

                    _write(name, content)
예제 #4
0
    def _add_theme_assets(self, epub_book):
        import uuid
        assets = read_theme_assets(self.theme_name, self.name)

        for asset_type, asset_list in assets.iteritems():
            if asset_type == 'images':
                for image_name in asset_list:
                    name = os.path.basename(image_name)
                    content = read_theme_asset_content(self.theme_name, image_name)

                    if content:
                        image = ebooklib.epub.EpubImage()
                        image.file_name = "{}/{}".format(IMAGES_DIR, name)
                        image.id = 'theme_image_%s' % uuid.uuid4().hex[:5]
                        image.set_content(content)

                        epub_book.add_item(image)
            elif asset_type == 'fonts':
                for font_name in asset_list:
                    name = os.path.basename(font_name)
                    extension = os.path.splitext(font_name)[-1].lower()
                    content = read_theme_asset_content(self.theme_name, font_name)

                    if content:
                        font = ebooklib.epub.EpubItem()
                        font.file_name = "{}/{}".format(FONTS_DIR, name)
                        font.set_content(content)

                        # try to set the right font media type
                        # http://www.idpf.org/epub/301/spec/epub-publications.html#sec-core-media-types
                        if extension in self.OPENTYPE_FONTS:
                            font.media_type = 'application/vnd.ms-opentype'
                        elif extension in self.WOFF_FONTS:
                            font.media_type = 'application/font-woff'

                        epub_book.add_item(font)
예제 #5
0
 def _get_theme_assets(self):
     return read_theme_assets(self.theme_name, self._theme_suffix)
예제 #6
0
 def _get_theme_assets(self):
     return read_theme_assets(self.theme_name, self._theme_suffix)
예제 #7
0
 def _get_theme_images(self):
     theme_assets = read_theme_assets(self._converter.theme_name,
                                      self._converter.name)
     return [os.path.basename(x) for x in theme_assets.get('images', [])]
 def _get_theme_images(self):
     theme_assets = read_theme_assets(self._converter.theme_name, self._converter.name)
     return [os.path.basename(x) for x in theme_assets.get('images', [])]
예제 #9
0
 def _get_theme_images(self):
     from booktype.apps.themes.utils import read_theme_assets
     theme_assets = read_theme_assets(self._converter.theme_name,
                                      self._converter.name)
     return [os.path.basename(x) for x in theme_assets.get('images', [])]
예제 #10
0
 def _get_theme_assets(self):
     return read_theme_assets(self.theme_name, self.name)
예제 #11
0
    def _get_theme_assets(self):
        """Return theme assets

        Reading theme assets for "epub" file.
        """
        return read_theme_assets(self.theme_name, 'epub')