cosic.rescue
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

cosic.py
text/x-python

Download raw (1.7 KB)

import subprocess
import tempfile

from bottle import (run, template, get, post, request, response)


@get('/')
def form():
    return template("templates/form")

@get('/logo.<filetype:re:(png|eps)>')
def preview(filetype):
    download = request.query.get('download')
    thickness = request.query.get('thickness', 0.7)
    period = request.query.get('period', 2.1)
    color = request.query.get('color')

    if color:
        red = float(int(color[1:3], 16)) / 255
        green = float(int(color[3:5], 16)) / 255
        blue = float(int(color[5:7], 16)) / 255
    else:
        red = 0
        green = 0
        blue = 0

    context = dict(red=red, green=green, blue=blue, period=period, thickness=thickness)

    if filetype == "png":
        f = tempfile.NamedTemporaryFile(delete=True, suffix=".eps")
        f.write(template("templates/logo", **context))
        f.seek(0)

        args = [
            "gs",
            "-q",
            "-dNOPAUSE", "-dBATCH", "-dSAFER",
            "-dEPSCrop",
            "-sDEVICE=png16m",
            "-dGraphicsAlphaBits=4",
            "-dTextAlphaBits=4",
            "-sOutputFile=-",
            "-"
            ]

        output = subprocess.check_output(args, stdin=f)
        f.close()

        if download:
            response.headers["Content-Disposition"] = "attachment; filename=\"logo.png\""
        response.content_type = 'image/png'
    else:
        output = template("templates/logo", **context)

        if download:
            response.headers["Content-Disposition"] = "attachment; filename=\"logo.eps\""
        response.content_type = 'image/x-eps'

    return output


if __name__ = "__main__":
    run(host='localhost', port=8080, reloader=False)