def get_app(self): cfg = Config(SECURITY_KEY='ACME-SEC') server_params = ServerParameters(None, None, None, None, None, None) server_params.gifsicle_path = which('gifsicle') cfg.DETECTORS = [ 'thumbor.detectors.face_detector', 'thumbor.detectors.profile_detector', 'thumbor.detectors.glasses_detector', 'thumbor.detectors.feature_detector', ] cfg.STORAGE = 'thumbor.storages.no_storage' cfg.LOADER = 'thumbor.loaders.file_loader' cfg.FILE_LOADER_ROOT_PATH = os.path.join(os.path.dirname(__file__), 'imgs') cfg.ENGINE = getattr(self, 'engine', None) cfg.USE_GIFSICLE_ENGINE = True cfg.FFMPEG_PATH = which('ffmpeg') cfg.ENGINE_THREADPOOL_SIZE = 10 cfg.OPTIMIZERS = [ 'thumbor.optimizers.gifv', ] if not cfg.ENGINE: return None importer = Importer(cfg) importer.import_modules() ctx = Context(server_params, cfg, importer) application = ThumborServiceApp(ctx) return application
def get_context(self): cfg = Config(SECURITY_KEY='ACME-SEC') cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = '/tmp/path/that/does/not/exist' cfg.RESULT_STORAGE = 'thumbor.result_storages.file_storage' cfg.RESULT_STORAGE_EXPIRATION_SECONDS = 60 cfg.RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = self.root_path cfg.FFMPEG_PATH = which('ffmpeg') cfg.USE_GIFSICLE_ENGINE = True cfg.AUTO_WEBP = True cfg.OPTIMIZERS = [ 'thumbor.optimizers.gifv', ] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, 'localhost', 'thumbor.conf', None, 'info', None) server.security_key = 'ACME-SEC' ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which('gifsicle') return ctx
def get_context(self): cfg = Config(SECURITY_KEY="ACME-SEC") cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = "/path/that/does/not/exist" cfg.RESULT_STORAGE = "thumbor.result_storages.file_storage" cfg.RESULT_STORAGE_EXPIRATION_SECONDS = 60 cfg.RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = self.root_path cfg.FFMPEG_PATH = which("ffmpeg") cfg.USE_GIFSICLE_ENGINE = True cfg.AUTO_WEBP = True cfg.OPTIMIZERS = [ "thumbor.optimizers.gifv", ] importer = Importer(cfg) importer.import_modules() server = ServerParameters( 8889, "localhost", "thumbor.conf", None, "info", None ) server.security_key = "ACME-SEC" ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which("gifsicle") return ctx
def get_context(self): conf = Config() conf.STATSD_HOST = '' conf.FFMPEG_PATH = which('ffmpeg') ctx = Context(config=conf) ctx.request = RequestParameters() ctx.request.filters.append('gifv') return ctx
def get_context(self): conf = Config() conf.STATSD_HOST = "" conf.FFMPEG_PATH = which("ffmpeg") ctx = Context(config=conf) ctx.request = RequestParameters() ctx.request.filters.append("gifv") return ctx
def get_context(self): cfg = Config(SECURITY_KEY="ACME-SEC") cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = self.loader_path cfg.FFMPEG_PATH = which("ffmpeg") cfg.OPTIMIZERS = ["thumbor.optimizers.gifv"] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, "localhost", "thumbor.conf", None, "info", None) server.security_key = "ACME-SEC" ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which("gifsicle") return ctx
def get_context(self): cfg = Config(SECURITY_KEY='ACME-SEC') cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = self.loader_path cfg.FFMPEG_PATH = which('ffmpeg') cfg.OPTIMIZERS = [ 'thumbor.optimizers.gifv', ] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, 'localhost', 'thumbor.conf', None, 'info', None) server.security_key = 'ACME-SEC' ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which('gifsicle') return ctx
def get_context(self): cfg = Config(SECURITY_KEY="ACME-SEC") cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = self.loader_path cfg.FFMPEG_PATH = which("ffmpeg") cfg.OPTIMIZERS = [ "thumbor.optimizers.gifv", ] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, "localhost", "thumbor.conf", None, "info", None) server.security_key = "ACME-SEC" ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which("gifsicle") return ctx
def get_context(self): cfg = Config(SECURITY_KEY="ACME-SEC") cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = "/tmp/path/that/does/not/exist" cfg.RESULT_STORAGE = "thumbor.result_storages.file_storage" cfg.RESULT_STORAGE_EXPIRATION_SECONDS = 60 cfg.RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = self.root_path cfg.FFMPEG_PATH = which("ffmpeg") cfg.USE_GIFSICLE_ENGINE = True cfg.AUTO_WEBP = True cfg.OPTIMIZERS = ["thumbor.optimizers.gifv"] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, "localhost", "thumbor.conf", None, "info", None) server.security_key = "ACME-SEC" ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which("gifsicle") return ctx
def get_context(self): cfg = Config(SECURITY_KEY='ACME-SEC') cfg.LOADER = "thumbor.loaders.file_loader" cfg.FILE_LOADER_ROOT_PATH = self.loader_path cfg.RESULT_STORAGE = 'thumbor.result_storages.file_storage' cfg.RESULT_STORAGE_EXPIRATION_SECONDS = 60 cfg.RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = self.root_path cfg.USE_GIFSICLE_ENGINE = True cfg.FFMPEG_PATH = which('ffmpeg') cfg.AUTO_WEBP = True cfg.OPTIMIZERS = [ 'thumbor.optimizers.gifv', ] importer = Importer(cfg) importer.import_modules() server = ServerParameters(8889, 'localhost', 'thumbor.conf', None, 'info', None) server.security_key = 'ACME-SEC' ctx = Context(server, cfg, importer) ctx.server.gifsicle_path = which('gifsicle') return ctx
def get_config(self): cfg = Config(SECURITY_KEY='ACME-SEC') cfg.STORAGE = 'thumbor.storages.no_storage' cfg.LOADER = 'wikimedia_thumbor.loader.file' cfg.LOADER_EXCERPT_LENGTH = 4096 cfg.HTTP_LOADER_REQUEST_TIMEOUT = 60 cfg.HTTP_LOADER_TEMP_FILE_TIMEOUT = 20 cfg.FILE_LOADER_ROOT_PATH = os.path.join( os.path.dirname(__file__), 'originals' ) cfg.ENGINE = 'wikimedia_thumbor.engine.proxy' cfg.RESPECT_ORIENTATION = True cfg.FFMPEG_PATH = which('ffmpeg') cfg.EXIFTOOL_PATH = which('exiftool') cfg.VIPS_PATH = which('vips') cfg.FFPROBE_PATH = which('ffprobe') cfg.XCF2PNG_PATH = which('xcf2png') cfg.GHOSTSCRIPT_PATH = which('gs') cfg.DDJVU_PATH = which('ddjvu') cfg.RSVG_CONVERT_PATH = which('rsvg-convert') cfg.THREED2PNG_PATH = which('3d2png') cfg.XVFB_RUN_PATH = which('xvfb-run') cfg.CONVERT_PATH = which('convert') cfg.CWEBP_PATH = which('cwebp') timeout = which( 'gtimeout' if platform.system() == 'Darwin' else 'timeout' ) cfg.SUBPROCESS_TIMEOUT_PATH = timeout cfg.SUBPROCESS_USE_TIMEOUT = True cfg.SUBPROCESS_TIMEOUT = 60 cfg.CHROMA_SUBSAMPLING = '4:2:0' cfg.QUALITY = 79 cfg.QUALITY_LOW = 40 cfg.DEFAULT_FILTERS_JPEG = 'conditional_sharpen(0.0,0.8,1.0,0.0,0.85)' cfg.MAX_ANIMATED_GIF_AREA = 500 * 200 * 60 cfg.COMMUNITY_EXTENSIONS = [ 'wikimedia_thumbor.handler.images', 'wikimedia_thumbor.handler.core' ] cfg.EXIF_FIELDS_TO_KEEP = ['Artist', 'Copyright', 'ImageDescription'] cfg.EXIF_TINYRGB_PATH = os.path.join( os.path.dirname(__file__), 'tinyrgb.icc' ) cfg.EXIF_TINYRGB_ICC_REPLACE = 'sRGB IEC61966-2.1' cfg.VIPS_ENGINE_MIN_PIXELS = 20000000 cfg.PROXY_ENGINE_ENGINES = [ ('wikimedia_thumbor.engine.xcf', ['xcf']), ('wikimedia_thumbor.engine.djvu', ['djvu']), ('wikimedia_thumbor.engine.vips', ['tiff', 'png']), ('wikimedia_thumbor.engine.tiff', ['tiff']), ('wikimedia_thumbor.engine.ghostscript', ['pdf']), ('wikimedia_thumbor.engine.gif', ['gif']), ('wikimedia_thumbor.engine.stl', ['stl']), # SVG should alwayd be the one before last, because of how broad it is (trying all XML documents) ('wikimedia_thumbor.engine.svg', ['svg']), # Imagemagick should always be last, to act as a catch-all since Thumbor defaults to assuming JPG when the document is unknown ('wikimedia_thumbor.engine.imagemagick', ['jpg', 'png', 'webp']), ] cfg.FILTERS = [ 'wikimedia_thumbor.filter.conditional_sharpen', 'wikimedia_thumbor.filter.format', 'wikimedia_thumbor.filter.lang', 'wikimedia_thumbor.filter.page', 'wikimedia_thumbor.filter.crop', 'wikimedia_thumbor.filter.flip', 'thumbor.filters.quality', 'thumbor.filters.rotate' ] return cfg
def get_config(self): cfg = Config(SECURITY_KEY='ACME-SEC') cfg.STORAGE = 'thumbor.storages.no_storage' cfg.LOADER = 'wikimedia_thumbor.loader.file' cfg.LOADER_EXCERPT_LENGTH = 4096 cfg.HTTP_LOADER_REQUEST_TIMEOUT = 60 cfg.HTTP_LOADER_TEMP_FILE_TIMEOUT = 20 cfg.FILE_LOADER_ROOT_PATH = os.path.join( os.path.dirname(__file__), 'originals' ) cfg.ENGINE = 'wikimedia_thumbor.engine.proxy' cfg.RESPECT_ORIENTATION = True cfg.FFMPEG_PATH = which('ffmpeg') cfg.EXIFTOOL_PATH = which('exiftool') cfg.VIPS_PATH = which('vips') cfg.FFPROBE_PATH = which('ffprobe') cfg.XCF2PNG_PATH = which('xcf2png') cfg.GHOSTSCRIPT_PATH = which('gs') cfg.DDJVU_PATH = which('ddjvu') cfg.RSVG_CONVERT_PATH = which('rsvg-convert') cfg.THREED2PNG_PATH = which('3d2png.js') cfg.XVFB_RUN_PATH = which('xvfb-run') cfg.CONVERT_PATH = which('convert') cfg.CWEBP_PATH = which('cwebp') timeout = which( 'gtimeout' if platform.system() == 'Darwin' else 'timeout' ) cfg.SUBPROCESS_TIMEOUT_PATH = timeout cfg.SUBPROCESS_USE_TIMEOUT = True cfg.SUBPROCESS_TIMEOUT = 60 cfg.CHROMA_SUBSAMPLING = '4:2:0' cfg.QUALITY = 79 cfg.QUALITY_LOW = 40 cfg.DEFAULT_FILTERS_JPEG = 'conditional_sharpen(0.0,0.8,1.0,0.0,0.85)' cfg.MAX_ANIMATED_GIF_AREA = 500 * 200 * 60 cfg.COMMUNITY_EXTENSIONS = [ 'wikimedia_thumbor.handler.multi', 'wikimedia_thumbor.handler.images', 'wikimedia_thumbor.handler.core' ] cfg.EXIF_FIELDS_TO_KEEP = ['Artist', 'Copyright', 'ImageDescription'] cfg.EXIF_TINYRGB_PATH = os.path.join( os.path.dirname(__file__), 'tinyrgb.icc' ) cfg.EXIF_TINYRGB_ICC_REPLACE = 'sRGB IEC61966-2.1' cfg.VIPS_ENGINE_MIN_PIXELS = 20000000 cfg.PROXY_ENGINE_ENGINES = [ ('wikimedia_thumbor.engine.xcf', ['xcf']), ('wikimedia_thumbor.engine.djvu', ['djvu']), ('wikimedia_thumbor.engine.vips', ['tiff', 'png']), ('wikimedia_thumbor.engine.tiff', ['tiff']), ('wikimedia_thumbor.engine.ghostscript', ['pdf']), ('wikimedia_thumbor.engine.gif', ['gif']), ('wikimedia_thumbor.engine.stl', ['stl']), # SVG should alwayd be the one before last, because of how broad it is (trying all XML documents) ('wikimedia_thumbor.engine.svg', ['svg']), # Imagemagick should always be last, to act as a catch-all since Thumbor defaults to assuming JPG when the document is unknown ('wikimedia_thumbor.engine.imagemagick', ['jpg', 'png', 'webp']), ] cfg.FILTERS = [ 'wikimedia_thumbor.filter.conditional_sharpen', 'wikimedia_thumbor.filter.format', 'wikimedia_thumbor.filter.lang', 'wikimedia_thumbor.filter.page', 'wikimedia_thumbor.filter.crop', 'wikimedia_thumbor.filter.flip', 'thumbor.filters.quality', 'thumbor.filters.rotate' ] return cfg