#!/usr/bin/python3

import os
import sys
import tempfile
import zipfile
import gi

gi.require_version("XApp", "1.0")
from gi.repository import XApp, GdkPixbuf

import XappThumbnailers
t = XappThumbnailers.Thumbnailer()

# https://www.openraster.org/baseline/file-layout-spec.html
# OpenRaster files are normal zip files, with a pre-generated thumbnail file you can extract.
try:
    with zipfile.PyZipFile(t.args.input) as z:
        with tempfile.TemporaryDirectory(dir=XApp.get_tmp_dir(), prefix="xapp-ora-thumbnailer-") as tempd:
            z.extract("Thumbnails/thumbnail.png", path=tempd)
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(tempd, "Thumbnails", "thumbnail.png"), t.args.size, t.args.size)
            pixbuf.savev(t.args.output, "png")
except Exception as e:
    print("Could not generate thumbnail for '%s': %s" % (t.args.input, e), file=sys.stderr, flush=True)
    sys.exit(1)

sys.exit(0)
